Tải bản đầy đủ (.docx) (23 trang)

Tiểu luận môn công nghệ phần mềm tìm hiểu công nghệ nhận diện giọng nói

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (789.42 KB, 23 trang )

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP. HCM
KHOA: CÔNG NGHỆ THÔNG TIN

MÔN HỌC: CÔNG NGHỆ PHẦN MỀM

Đề tài:
TÌM HIỂU CƠNG NGHỆ NHẬN DIỆN GIỌNG NĨI
Giảng viên hướng dẫn: Mạnh Thiên Lý
Sinh viên thực hiện:
Võ Trương Minh Nhật
Phan Mai Như Ý
Trần Thị Kim Nhiên
Nguyễn Thị Thu Bích
Nguyễn Thị Khánh Kiều
Tan Thị Minh Thư

2001181238
2001181437
2001180178
2001180384
2001181170
2001181350

TP. Hồ Chí Minh, 28 Tháng 02 Năm 2021


LỜI MỞ ĐẦU
Ngày nay, công nghệ thông tin ngày càng phát triển cùng với những tiến bộ
vượt bậc của khoa học kỹ thuật nói chung, có rất nhiều cơng nghệ mới được cho


ra mắt.
Hơn một thập kỷ qua, với sự phát triển mạnh mẽ của công nghệ thông tin,
công nghệ xử lý tiếng nói như mã hố, nhận dạng tiếng nói, chuyển lời nói thành
văn bản, chuyển chữ viết thành lời nói, … đã trở thành vấn đề nghiên cứu trọng
điểm được nhiều nhà khoa học quan tâm ở nhiều lĩnh vực khác nhau như: tin
học, toán học, điều khiển, điện tử, sinh học, …
Trong thời gian gần đây, các nhà nghiên cứu đang tập trung vào công nghệ
nhận dạng giọng nói và đã có một số thành cơng đối với việc nhận dạng tiếng
Anh và một số ngôn ngữ khác. Đã có nhiều cơng trình nghiên cứu về lĩnh vực
nhận dạng giọng nói (Speech recognition) trên cơ sở lý thuyết các hệ thống
thông minh nhân tạo, nhiều kết quả đã trở thành sản phẩm như Via Voice Gold
của hãng IBM, Dragon Natural Speaking của Dragon System, Speech SDK của
Microsoft, … Triển khai những cơng trình nghiên cứu và đưa vào thực tế ứng
dụng vấn đề này là một việc làm hết sức có ý nghĩa trong giai đoạn cơng nghiệp
hố, hiện đại hố của nước nhà.
Vì thế, nhóm em đã chọn đề tài “Tìm hiểu Cơng nghệ nhận diện giọng nói”
để tìm hiểu và trình bày về nội dung cũng như tổng quan về công nghệ. Tuy đã
rất cố gắng học hỏi và tìm hiểu tài liệu từ nhiều nguồn thông tin nhưng điều kiện
thời gian và khả năng có hạn nên cũng khơng tránh được thiếu sót. Kính mong
được sự đóng góp ý kiến từ cơ và các bạn để nhóm em có thể hồn thiện hơn về
bài báo cáo cơng nghệ này.

Nhóm em xin chân thành cảm ơn.

Thành phố Hồ Chí Minh, ngày 28 tháng 02 năm 2021
2


MỤC LỤC


DANH SÁCH HÌNH ẢNH

3


I. GIỚI THIỆU VỀ CƠNG NGHỆ NHẬN DIỆN
GIỌNG NĨI
1. Giới thiệu về nền công nghiệp 4.0 và tầm ảnh hưởng
Công nghiệp 4.0 tập trung vào công nghệ kỹ thuật số từ những thập kỷ gần
đây lên một cấp độ hoàn tồn mới với sự trợ giúp của kết nối thơng qua Internet
vạn vật, truy cập dữ liệu thời gian thực và giới thiệu các hệ thống vật lý không
gian mạng. Cơng nghiệp 4.0 cung cấp một cách tiếp cận tồn diện hơn, liên kết
và toàn diện hơn cho sản xuất. Nó kết nối vật lý với kỹ thuật số và cho phép
cộng tác và truy cập tốt hơn giữa các bộ phận, đối tác, nhà cung cấp, sản phẩm
và con người. Công nghiệp 4.0 trao quyền cho các chủ doanh nghiệp kiểm sốt
và hiểu rõ hơn mọi khía cạnh hoạt động của họ và cho phép họ tận dụng dữ liệu
tức thời để tăng năng suất, cải thiện quy trình và thúc đẩy tăng trưởng.
Công nghiệp 4.0 cho phép các nhà máy thông minh, sản phẩm thông minh
và chuỗi cung ứng cũng thông minh, và làm cho các hệ thống sản xuất và dịch
vụ trở nên linh hoạt, linh hoạt và đáp ứng khách hàng hơn. Các thuộc tính của hệ
thống sản xuất và dịch vụ với Công nghiệp 4.0 đã được nêu bật và những lợi ích
mà Cơng nghiệp 4.0 mang lại cho các doanh nghiệp đã được thảo luận. Trong
tương lai, khoa học và công nghệ tiếp tục phát triển và đóng vai trị ngày càng
quan trọng đối với quá trình phát triển kinh tế xã hội của mỗi quốc gia. Tri thức
được xác định là lực lượng sản xuất trực tiếp và là động lực phát triển hàng đầu
đối với mọi quốc gia. Để phát triển bền vững, các quốc gia phải tiếp tục đẩy
mạnh đầu tư phát triển khoa học và công nghệ nhằm ứng dụng thành tựu khoa
học và công nghệ vào sản xuất, đặc biệt là những thành tựu của cách mạng công
nghiệp lần thứ tư nhằm tạo ra các sản phẩm và công nghệ sản xuất mới. Tới đó
cơng nghệ nhận diện và giả lập giọng nói được ra đời để đáp nhu cầu phát triển

của con người.
2. Sơ lược về lịch sử cơng nghệ nhận diện giọng nói
Trước đây, việc điều khiển một cỗ máy bằng cách nói chuyện với chúng chỉ
là những câu chuyện trong khoa học viễn tưởng. Nhưng viễn tưởng này đang
dần trở thành hiện thực với sự phát triển vượt bậc về công nghệ, đặc biệt là sự
phát triển của Trí tuệ nhân tạo (AI) và những nền tảng khác để tạo ra một giao
diện người dùng cho phép sử dụng giọng nói để điều khiển các thiết bị công
nghệ.

4
















Năm 1877, ứng dụng nhận diện giọng nói đầu tiên được tạo ra khi
Thomas Edison phát minh ra máy ghi âm, thiết bị đầu tiên ghi và tái tạo
âm thanh.
Năm 1952, các kỹ sư tại Bell Labs đã phát triển một bộ nhận dạng chữ

số tự động có tên Audrey. Audrey cao 6 feet, có nhiều tín hiệu tương tự
với tụ điện, bộ khuếch đại và bộ lọc, chỉ nhận ra 10 chữ số được nói bởi
một giọng nói duy nhất. Mặc dù thiết bị có thể nhận ra đầu vào bằng
giọng nói với độ chính xác 97-99% nhưng chính vì kích thước lớn, chi
phí cao và thiết bị điện tử phức tạp nên nó đã khơng thể trở thành một
sản phẩm được thương mại hóa. Tuy nhiên, thiết bị Audrey này cũng đã
đánh dấu sự khởi đầu của công nghệ nhận dạng giọng nói và tiếp tục
cho những nghiên cứu sau đó. Hệ thống Audrey cịn được xem là thiết
bị nhận dạng giọng nói đầu tiên.
Năm 1962, máy Shoe box được IBM phát triển, có thể nhận ra 16 từ
tiếng anh, 10 chữ số và 6 lệnh số học
Từ những năm 1971 – 1976, Bộ Quốc phòng Mỹ đã tài trợ cho chương
trình DARPA SUR (Nghiên cứu hiểu về lời nói), dẫn đến sự phát triển
của Harpy tạo ra bởi Carnegie Mellon có thể hiểu được 1011 từ.
Vào năm 1984, Cơng nghệ nhận dạng giọng nói thế hệ đầu tiên được
SpeechWorks và Nuance giới thiệu thông qua các hệ thống tổng đài trả
lời tự động (IVR). Những IVR này có thể nhận ra giọng nói của con
người qua cuộc gọi và thực hiện các nhiệm vụ được giao cho chúng.
Bất cứ ai có điện thoại đều có thể nhận được tất cả thơng tin như tìm
thời gian chiếu phim địa phương, nghe thông tin giao thông, báo giá cổ
phiếu, đặt chuyến bay máy bay, chuyển tiền giữa các tài khoản, đặt mua
thuốc theo toa,.. Mọi thứ chỉ xoay quanh chiếc điện thoại cầm tay và
giọng nói của con người. Các hệ thống IVR đã trở thành xu hướng chủ
đạo trong những năm 2000 và là một phần chính của các dịch vụ chăm
sóc và hỗ trợ khách hàng ngày nay.
Năm 1992, Apple cũng sản xuất hệ thống nhận dạng giọng nói liên tục
theo thời gian thực hiện, có thể nhận ra lên đến 20.000 từ.
Năm 2006, Apple đã giới thiệu khái niệm về Siri, cho phép người dùng
tương tác với các máy sử dụng giọng nói. Sau đó, Google đã giới thiệu
một nghiên cứu hỗ trợ giọng nói vào năm 2007. Những gã khổng lồ

công nghệ như Microsoft, Apple và Google sau đó đã tung ra trợ lý
giọng nói cho thiết bị di động.
Đến năm 2008, Google nổi lên với ứng dụng Google Voice Search dành
cho Iphone

5













Năm 2010, Google đã giới thiệu và nhận dạng được cá nhân hoá, các
thiết bị Android sẽ ghi lại các truy vấn giọng nói của người dùng khác
nhau để phát triển một mơ hình giọng nói nâng cao. Nó bao gồm 230 tỷ
từ tiếng anh
Năm 2011, cuối cùng Siri của Apple đã được triển khai trong Iphone
4S, cũng dựa trên điện toán đám mây
Năm 2014 Amazon đã giới thiệu Amazon Echo, một loa thơng minh
tích hợp với trợ lý ảo (Alex, Siri...). Những lời này có thể được kết hợp
với các ứng dụng di động thông qua kỹ năng Alexa. Tương tự, các đối
thủ cạnh tranh để giới thiệu Google home, Apple Homepod để cải thiện
trải nghiệm người dùng khi họ ở văn phịng, nhà hoặc thậm chí tại trung

tâm mua sắm.
Năm 2015, Microsoft đã cơng bố sự sẵn có của Cortana cho máy tính
để bàn và thiết bị di động Windows 10 như một phần của việc hợp nhất
Windows Phone vào hệ điều hành nói chung.
Vào tháng 5 năm 2016, Trợ lý Google (Google Assistant) là một trợ lý
cá nhân ảo được phát triển bởi Google cho thiết bị di động và nhà thông
minh, được ra mắt lần đầu tại hội nghị nhà phát triển của hãng. Không
như Google Now, Trợ lý Google có thể tham gia các cuộc trò chuyện
hai chiều. Trợ lý Google được đưa vào ứng dụng nhắn tin Google Allo,
và loa thông minh Google Home.
năm 2017, Google Assistant đã và đang được tiếp tục mở rộng hỗ trợ
cho một lượng lớn thiết bị, bao gồm cả xe hơi và các thiết bị nhà thông
minh. Các chức năng của Assistant cũng có thể được bổ sung bởi các
nhà phát triển bên thứ ba.

3. Giới thiệu về cơng nghệ nhận diện giọng nói
a. Cơng nghệ nhận diện giọng nói là gì?
Cơng nghệ nhận diện giọng nói là một bộ máy hoặc hệ thống có khả năng
nhận và dịch (hoặc hiểu và thực hiện) các lệnh thu được từ giọng nói con người.
Nó được sử dụng rất nhiều trong lĩnh vực trí tuệ nhân tạo (AI), Google Assistant
là một ví dụ điển hình. Đây là một bộ máy hoặc hệ thống có khả năng nhận và
dịch (hoặc hiểu và thực hiện) các lệnh thu được từ giọng nói con người.
Nhận diện giọng nói gồm 2 thuật ngữ: Voice recognition và Speech
recognition.
Voice recognition liên quan đến việc xác định giọng nói chính xác của
một cá nhân nào đó, tương tự một phương pháp nhận diện sinh trắc học.
Speech recognition là việc xác định những từ ngữ trong câu nói rồi dịch
chúng sang ngơn ngữ máy tính.
6



b. Cách thức hoạt động của công nghệ nhận diện giọng nói
Để chuyển giọng nói sang văn bản hoặc câu lệnh máy tính, hệ thống phải
thực hiện một q trình gồm nhiều bước phức tạp. Khi nói, bạn sẽ tạo ra những
rung động trong khơng khí. Bộ chuyển đổi tín hiệu tương tự sang số (Analog-toDigital Converter, ADC) chuyển các sóng tương tự (analog) này thành dữ liệu
mà máy tính có thể hiểu được.
Để làm điều này, hệ thống thu thập các mẫu (hoặc số hóa) âm thanh bằng
cách đo chính xác sóng âm ở các khoảng thời gian gần nhau, sau đó lọc âm
thanh đã được số hố để loại bỏ tiếng ồn, đôi khi tách chúng thành các dải tần số
khác nhau. Nó cũng "bình thường hóa" hoặc tinh chỉnh âm thanh đến một mức
âm lượng không thay đổi hoặc sắp xếp theo thời gian. Không phải lúc nào con
người cũng nói với tốc độ như nhau nên âm thanh phải được điều chỉnh cho phù
hợp với tốc độ mà âm thanh mẫu được ghi nhận trong bộ nhớ máy.
Tiếp theo, tín hiệu được chia thành nhiều phần nhỏ (thời gian khoảng vài
phần trăm giây, thậm chí là phần ngàn giây trong trường hợp có phụ âm cuối
khó phân biệt như "p" hoặc "t"). Chương trình sau đó đặt những phần âm thanh
này vào các âm vị có sẵn trong ngơn ngữ thích hợp.
Với sự phát triển của cơng nghệ, ứng dụng nhận dạng giọng nói ngày càng
được hồn thiện với tính chính xác cao hơn. Thay vì nhận dạng từng chữ cái,
cơng nghệ này cịn có khả năng nhận dạng được theo ngữ nghĩa của câu nói để
giảm thiểu sai sót trong q trình nhận dạng.
c. Ưu, nhược điểm của cơng nghệ nhận diện giọng nói
 Ưu điểm của phần mềm nhận diện giọng nói:
- Khả năng truy cập: Đây là một thuận lợi đối với người khuyết tất khi họ
khơng thể dùng chuột hay bàn phím, nhưng có thể dùng giọng nói để hệ thống
chuyển thành văn bản, giúp nhập liệu hay điều khiển một cách dễ dàng.
- Kiểm tra chính tả: Người dùng có thể truy cập vào các công cụ chỉnh
sửa tương tự một giải pháp xử lý văn bản chuẩn. Đương nhiên mọi thứ sẽ khơng
chính xác 100% nhưng phần mềm có thể nhận diện và xử lý phần lớn lỗi chính
tả, ngữ pháp.

- Tốc độ nhanh: Phần mềm nhận dạng giọng nói có thể nắm bắt giọng nói
của người dùng với tốc độ nhanh hơn so với khi nhập liệu bằng bàn phím, vì vậy
tốc độ khi nhập liệu bằng giọng nói sẽ cải thiện đáng kể.


Nhược điểm của phần mềm nhận diện giọng nói:
7


- Thiết lập và "dạy": Mặc dù tất cả phần mềm nhận dạng giọng nói hiện
nay đều hứa hẹn có thể hoạt động sau vài phút thiết lập, nhưng thực sự q trình
ghi nhận, làm quen với giọng nói, âm điệu và tốc độ nói của người dùng có đơi
chút phức tạp và tốn thời gian. Một số phần mềm nhận dạng giọng nói cịn bắt
người dùng nói lại, thậm chí khơng thể nhận diện được bạn đang nói gì.
- Chưa thực sự ổn định: Việc đang nói mà bị ngắt giữa chừng có thể khiến
người dùng cảm thấy khó chịu. Đặc biệt, một số người khơng thích phần mềm
nhận dạng giọng nói vì nó gây bối rối cho người dùng khi lên xuống giọng hay
bỗng dưng nói nhỏ lại.
- Kho từ vựng hạn chế: Người dùng phải sẵn sàng chấp nhận trường hợp
phần mềm xử lý quá lâu vì những từ vừa nói khơng nằm trong từ điển có sẵn.
Đó là điều các nhà nghiên cứu đang cố gắng cải tiến ở phần mềm nhận dạng
giọng nói hiện nay.
d. Một số thư viện hỗ trợ cho công nghệ nhận diện giọng nói
• Nuance là cái tên được nhắc đến nhiều nhất trong việc cung cấp thư viện
giọng nói cho app di động. Chính nhờ vào những thư viện như thế này
mà lập trình viên khơng cần phải tự mình thiết kế hệ thống nhận dạng,
phiên dịch cho app mà chỉ cần xài lại cái có sẵn, tiết kiệm được nhiều
thời gian, cơng sức và tiện bạc. Nuance có hỗ trợ cho tiếng Việt trong
ứng dụng Dragon Dictation do chính hãng này phát triển.
• OpenEars cũng là một thư viện khác nhưng nó thuộc dạng nguồn mở và

hoạt động offline, hạn chế là chỉ hỗ trợ tiếng Anh và Tây Ban Nha. Vài
cái tên khác có thể kể đến như Ivona, iSpeech, Vocalkit and Acapela.
• Một cách khác mà nhiều phần mềm hiện cũng đang xài đó là tận dụng bộ
nguồn nhận dạng có sẵn trên các hệ điều hành di động. Người dùng có
thể kích hoạt tính năng này ở những chỗ cần nhập văn bản. Từ iOS 7 về
trước thì tính năng này khơng hỗ trợ tiếng Việt, phải lên iOS 8 mới có.
Google thì bắt đầu hỗ trợ nhập liệu tiếng Việt cho Android khoảng một
năm về trước. Ngồi ra, Apple, Google cũng có cung cấp các hàm API
giúp app của lập trình viên biết nói chỉ với vài dòng mã nguồn.

8


II. TỔNG QUAN VỀ CƠNG NGHỆ NHẬN DIỆN
GIỌNG NĨI
1. Mơ hình triển khai cơng nghệ nhận diện giọng nói

Hình 1. Mơ hình cơng nghệ nhận diện giọng nói

Có nhiều cách thức mà các công ty hiện nay đang triển khai, có thể kể đến
2 phương pháp phổ biến như sau:




Điện toán đám mây: Trong trường hợp này, việc nhận dạng, xử lý ngôn
ngữ sẽ diễn ra trên máy chủ của các công ty cung cấp dịch vụ. Phương
pháp đám mây giúp việc nhận dạng được chính xác hơn, ứng dụng thì
có dung lượng nhỏ, nhưng bù lại thì thiết bị ở phía người dùng phải ln
kết nối với Internet. Độ trễ trong q trình gửi giọng nói từ máy lên

server rồi trả kết quả từ server về lại máy cũng là những thứ đáng cân
nhắc.
Tích hợp thẳng vào app: Với phương thức này, q trình xử lý giọng nói
sẽ diễn ra trong nội bộ ứng dụng, không cần giao tiếp với bên ngồi,
chính vì thế tốc độ sẽ nhanh hơn. Người dùng cũng không bắt buộc phải
kết nối vào mạng thường trực. Tuy nhiên, giải pháp này gặp nhược điểm
đó là khi có cập nhật hoặc thay đổi gì đó về bộ máy nhận dạng, nhà sản
xuất sẽ phải cập nhật lại cả một app, trong khi với phương thức đám
mây thì những thay đổi đó chỉ cần làm ở phía server. Kích thước ứng
dụng cũng sẽ tăng lên, có thể lên tới cả vài trăm MB.
9


2. Các kỹ thuật được áp dụng trong công nghệ nhận diện giọng nói
Thoạt nhìn thì việc triển khai cơng nghệ nhận dạng giọng nói khá đơn giản,
nhưng thực chất thì khơng phải như thế:
- Thứ nhất, các nhà phát triển phải xây dựng nên một cơng nghệ có thể lắng
nghe, phân tích và phiên dịch một cách chính xác giọng nói của người dùng.
Nếu khơng thì làm sao app biết bạn đang nói gì, cịn nếu độ chính xác khơng cao
thì cũng như khơng.
- Thứ hai, vấn đề bản địa hóa (localization) cũng là một chuyện làm đau
đầu các lập trình viên. Mỗi quốc gia sẽ có ngơn ngữ của riêng mình, vấn đề đó là
làm thế nào để có thể hỗ trợ càng nhiều ngơn ngữ càng tốt. Hiện nay hầu hết
những dịch vụ giọng nói đều hỗ trợ tiếng Anh, Google Voice Input trong
Android và Voice Dictation trong iOS 8 thì có hỗ trợ tiếng Việt nhưng cũng cịn
nhiều hạn chế. Đó là chưa nói đến việc mỗi vùng miền lại có cách nói, giọng
điệu khác nhau mặc dù họ sử dụng cùng một ngôn ngữ.
Tuy nhiên, với cách các máy dịch thuật hiện nay đang hoạt động, chúng ta
chỉ cần truyền đoạn ghi âm vào mạng nơron và đào tạo nó để tạo ra "bản dịch",
đó cũng là điều mà nhận diện giọng nói với deep learning hướng tới:


Hình 2. Input và output của Cơng nghệ nhận diện giọng nói

Vấn đề lớn nhất chính là tốc độ nói biến thiên. Một người có thể nói
"Hello" rất nhanh và người khác nói "heeeellllllloooooo!" cực chậm, tạo ra âm
thanh dài hơn với nhiều dữ liệu hơn. Cả 2 âm đều nên được nhận dạng chính xác
là từ một - "hello!". Tự động chỉnh file âm thanh với nhiều biến thể độ dài khác
nhau của từng từ để tạo ra văn bản đồng nhất lại khá khó.
Để xử lý vấn đề này, chúng ta sẽ sử dụng một số kỹ thuật đặc biệt và thêm
một vài bước vào mạng deep learning.
a. Kỹ thuật xử lý ngôn ngữ tự nhiên (Natural Language Processing)
Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) là tập hợp
của nhiều thuận toán phức tạp nhằm phân tích mệnh lệnh của người dùng nhưng
10


khơng bắt buộc họ phải nói theo một cấu trúc câu định sẵn. Nhiều năm trước khi
muốn điều khiển bằng giọng nói, bạn chỉ có thể nói những thứ như "Mở bản đồ,
"Báo thức lúc 5 giờ sáng". Còn bây giờ thì nhờ có NLP, ta có thể nói các câu
như "Siri, hãy đánh thức tôi lúc 5 giờ sáng ngày mai".
NLP cũng không phải là đơn giản để phát triển. Cả Apple, Google và
Microsoft đều phải đầu tư rất nhiều tiền bạc và nguồn lực để có thể đưa NLP lên
đến mức tiến bộ như hiện nay. Mặc dù vậy, các công ty vẫn phải tiếp tục nghiên
cứu để cải thiện độ chính xác cũng như hỗ trợ thêm nhiều ngôn ngữ khác nhau.
b. Chuyển âm thanh thành số
Bước đầu tiên trong nhận diện giọng nói khá rõ ràng - chúng ta cần truyền
sóng âm vào máy tính, xem hình ảnh là tập hợp giá trị, với mỗi giá trị đại diện
cho độ sáng của điểm ảnh, để truyền vào mạng nơron. Sóng âm có một chiều dữ
liệu. Ở mỗi thời điểm, chúng có một giá trị cao độ. Để chuyển sóng âm thành số,
chúng ta chỉ cần ghi lại độ cao của sóng ở từng khoảng:


Hình 3. Ví dụ về lấy mẫu sampling 1

Hình 4. Ví dụ về lấy mẫu sampling 2

11


Hình 5. Ví dụ về lấy mẫu sampling 3

Hình 6. Ví dụ về lấy mẫu sampling 4

Phương pháp này gọi là sampling - lấy mẫu. Chúng ta đọc mẫu mỗi
1/1000s và ghi lại con số đại diện chiều cao cùa sóng âm. Đây chính là file .wav
khi khơng bị nén. Những âm thanh chất lượng tốt được ghi ở tần số 44.1khz
(44,100 lần đọc mỗi giây). Nhưng với nhận diện giọng nói, tốc độ lấy mẫu ở
16khz (16,000 mẫu mỗi giây) là quá đủ.
Lấy mẫu chỉ tạo ra đồ thị xấp xỉ so với sóng âm, bởi vì nó chỉ đọc dữ liệu
theo từng khoảng. Vì thế, để tránh bị mất dữ liệu mỗi lần đọc, ta áp dụng lý
thuyết Nyquist, chúng ta có thể sử dụng tốn học để tái tạo chính xác sóng âm
gốc từ những mẫu tách biệt - miễn là chúng ta lấy mẫu với tần số gấp đôi tần số
âm chúng ta muốn ghi lại. Không phải cứ lấy mẫu với tần số càng cao thì chất
lượng âm thanh càng tốt.
c. Kỹ thuật tiền xử lý dữ liệu mẫu âm thanh
Ta có thể truyền những số này vào mạng nơron, nhưng cố gắng nhận diện
cấu trúc âm thanh trực tiếp bằng những mẫu này rất khó. Thay vào đó, chúng ta
12


giải quyết vấn đề dễ hơn bằng cách tiền xử lý dữ liệu. Đầu tiên, hãy bắt đầu

nhóm mẫu âm thanh trong khoảng 20ms:

Hình 7. 320 mẫu âm thanh trong 20ms

Ghi lại những con số này trong đồ thị giúp chúng ta có ước lượng xấp xỉ về
âm thanh gốc trong chu kỳ 20ms:

Hình 8. Âm thanh gốc trong chu kỳ 20ms

Bản ghi âm này chỉ khoảng 1/50s. Nhưng thậm chí một đoạn ghi âm rất
ngắn là một mớ hỗn độn cao độ âm khác nhau. Có những âm thấp, âm trung và
thậm chí cả âm cao. Nhưng cùng với nhau, những âm này tạo lên giọng nói.
Để giúp mạng nơron xử lý dữ liệu dễ hơn, ta tách sóng âm phức tạp này
thành từng phần: phần chứa âm thấp, âm cao hơn, cao hơn nữa... Sau đó, ta tính
tổng năng lượng ở những những dải tần số (từ thấp đến cao) và kết nối lại tạo ra
fingerprint - nhận dạng duy nhất cho từng đoạn trích âm thanh.
Chúng ta làm điều đó nhờ vào việc sử dụng Fourier transform trong tốn
học. Nó chia nhỏ những sóng âm phức tạp thành sóng âm đơn tạo ra nó, và ta có
thể tính tổng năng lượng ở mỗi đơn âm.
Sau khi sử dụng lý thuyết Nyquist ở trên, sóng âm đã trở thành một dải liên
tục. Và sử dụng Fourier transform, chúng ta lại tách dải liên tục đó ra thành các
notes riêng biệt (được tính tốn bởi thuật tốn Fourier) để tìm ra tổng năng
lượng ở từng note.

13


Kết quả cuối cùng là một bảng số thể hiện độ năng lượng của mỗi khoảng
tần số, từ âm thấp tới âm cao. Mỗi số dưới đây đại diện cho năng lượng dải 50hz
trong clip 20ms:


Hình 9. Bảng số thể hiện độ năng lượng của mỗi khoảng tần số

Nhưng sẽ dễ dàng hơn nhiều khi ta biểu diễn dãy số trên trên đồ thị:

Hình 10. Đồ thị thể hiện độ năng lượng của mỗi khoảng tần số

Ta có thể thấy dài tần số này có rất nhiều năng lượng tần số thấp, và ít năng
lượng tần số cao. Đây là một giọng nam điển hình. Nếu chúng ta lặp lại q
trình trên cho mỗi khoảng 20ms, chúng ta sẽ có quang phổ (mỗi cột từ trái qua
phải là một khoảng 20ms):

Hình 11. Quang phổ cho năng lượng của mỗi khoảng tần số khi lặp lại quá trình

Tạo ra quang phổ giúp chúng ta thực sự nhìn thấy âm thanh và cấu trúc độ
cao của nó. Mạng nơron có thể tìm những cấu trúc trong dữ liệu này dễ dàng
hơn so với sóng âm thơ. Do đó, đây chính là đặc trưng mà ta truyền vào mạng
nơron.
Qua đó ta thấy, hầu hết dữ liệu thơ đều chứa nhiều nhiễu và khó xử lý trong
cả ảnh và âm thanh. Một cách giúp hạn chế nhiễu là tổng quát hóa: như trong
14


mạng CNN là trích lọc đặc trưng thơng qua convolution - tích chập và max
pooling - tách lọc lớn nhất, hay ở trong xử lý âm thanh là lấy tổng năng lượng
theo từng âm. Việc tổng quát hóa giúp giảm chiều dữ liệu và hạn chế ảnh hưởng
từ nhiễu. Chú ý là nếu q tổng qt hóa thì lại có thể làm tiêu biến đặc trưng,
khiến học máy không thể tìm ra lời giải.
d. Kỹ thuật nhận diện ký tự từ đoạn âm ngắn
Ta truyền từng dải âm 20ms vào mạng nơron đa lớp. Với mỗi mảng cắt âm

thanh, chúng ta cố gắng tìm ra ký tự đại diện cho âm thanh phát ra.

Hình 12. Mơ hình trạng thái

Chúng ta sử dụng Recurrent Neural Network - RNN - mạng nơron hồi
quy: kết quả tiên đốn q khứ có ảnh hưởng tới kết quả tiên đốn trong tương
lai. Đó là bởi vì các ký tự có sự liên quan đến nhau. Ví dụ chúng ta đã tìm ra
"HEL", thì rất có khả năng chúng ta sẽ nói tiếp "LO". Vì thế, những dự đoán
trong quá khứ sẽ giúp dự đoán tương lai được tốt hơn.
Sau khi chạy toàn bộ âm thanh thông qua mạng nơron, chúng ta kết nối mỗi
dải âm với một ký tự có khả năng được nói cao nhất. Đây là bản đồ kết nối của
từ "HELLO":

15


Hình 13. Bản đồ kết nối của từ "HELLO"

Mạng nơron trên dự đốn từ được nói là “HHHEE_LL_LLLOOO”, nhưng
nó cũng nghĩ có khả năng từ đó là “HHHUU_LL_LLLOOO”, hoặc thậm chí là
“AAAUU_LL_LLLOOO”.
Chúng ta có thêm một vài bước để làm sạch kết quả. Đầu tiên, chúng ta bỏ
đi những ký tự bị lặp, rồi bỏ đi khoảng trống:




HHHEE_LL_LLLOOO => HE_L_LO => HELLO
HHHUU_LL_LLLOOO => HU_L_LO => HULLO
AAAUU_LL_LLLOOO => AU_L_LO => AULLO


Như vậy, ta có 3 khả năng phân âm là "Hello", "Hullo" và "Aullo". Nếu ta
nói chúng thật to, cả 3 đều nghe giống với "Hello". Bởi vì dự đốn từng ký tự
một, mạng nơron tìm ra cách đọc các âm chứ khơng phải cách viết. Ví dụ: nếu ta
nói "He would not go", máy có thể dịch là "He wud net go".
Thủ thuật ở đây là kết hợp những dự đoán phiên âm này với khả năng xuất
hiện trong các văn bản (sách, bài bảo...). Ta sẽ loại bỏ đi những phiên âm ít có
khả năng ngồi thực tế và giữ phiên âm thực tế nhất. Và trong 3 từ "Hello",
Hullo" và "Aullo". Rõ ràng, "Hello" có tần xuất cao hơn rất rất nhiều, và đây
chính là bản phiên âm chúng ta lựa chọn.

16


e. Áp dụng Machine Learning tự xây dựng hệ thống nhận diện giọng nói
Machine learning sử dụng các thuật tốn lặp để học từ dữ liệu và cho phép
máy tính tìm thấy những thơng tin, giá trị ẩn sâu mà khơng được lập trình một
cách rõ ràng nơi để tìm. Khía cạnh lặp lại của Machine learning là quan trọng
bởi khi các mơ hình này được tiếp xúc với dữ liệu mới thì chúng có thể thích
ứng một cách độc lập. Các hệ thống Machine Learning có thể nhanh chóng áp
dụng kiến thức và đào tạo từ các bộ dữ liệu lớn để thực hiện các công việc về
nhận diện giọng nói một cách xuất sắc.
Nhận diện ngơn ngữ là một vấn đề khó, ta phải chấp nhận những vấn đề
như: chất lượng micro kém, môi trường ghi âm ồn, tiếng dội lại, giọng điệu khác
nhau... Tất cả những vấn đề này hiện hữu trong quá trình đào tạo, khiến mạng
nơron khơng có độ chính xác cao. Và để xử lý tiếng ồn, ta cần dữ liệu đào tạo
giống như khi mà mọi người đang gào thét vào mặt người nói. Để xây dựng hệ
thống nhận diện âm thanh đạt tới trình độ của Siri, Google Now! hay Alexa, ta
cần rất nhiều dữ liệu. Không một ai muốn hệ thống nhận diện chỉ đạt 80% độ
chính xác. Vì vậy, chỉ cần cho máy tự động lưu và học (train data) một lượng lớn

dữ liệu do người dùng tự cung cấp. Ta sẽ tạo lên hệ thống nhận diện giọng nói
hồn chỉnh.
f. Giao diện giọng nói người dùng (Voice user interface)
Giao diện giọng nói người dùng (Tiếng anh: Voice user interface, viết tắt:
VUI) là cơng nghệ nhận dạng giọng nói, cho phép người dùng tương tác với hệ
thống và các thiết bị như máy tính, điện thoại thơng minh và các thiết bị khác
thơng qua các lệnh thoại hoặc giọng nói. Điều làm nên sự độc đáo của VUI là nó
sử dụng giọng nói làm tương tác chính, khơng dùng tay hay mắt và trái ngược
với sự tương tác giữa bàn phím - chuột - màn hình hoặc màn hình cảm ứng.
Cách tiếp cận bằng giọng nói này có thể cho phép người dùng bắt đầu các thao
tác dịch vụ tự động và thực hiện các tác vụ hàng ngày của họ theo cách nhanh
hơn hơn trong khi vẫn có thể tập trung làm việc khác.
3. Công dụng của công nghệ nhận diện giọng nói
Tốc độ là điều đầu tiên người ta nhắc đến khi được đề cập đến câu hỏi này.
Thay vì phải ngồi nhập tay email, soạn văn bản, đặt lịch hẹn, … trên điện thoại
hoặc máy tính gây tốn thời gian, thậm chí sai sót. Giờ đây chúng ta có thể sử
dụng giọng nói như một phương thức để nhập liệu. Nó nhanh chóng, đơn giản,
thuận tiện và vô cùng dễ dàng.
Không chỉ dừng lại ở việc nhập liệu, nhận dạng giọng nói cịn được ứng
dụng như một hệ thống điều khiển trong hệ sinh thái smarthome. Nhận diện
17


giọng nói cịn được sử dụng rất nhiều trong lĩnh vực trí tuệ nhân tạo (Artificial
Intelligence). Siri hay Google Assistant là những ví dụ điển hình.
Ngồi ra, cơng nghệ nhận dạng giọng nói cũng được đánh giá là một sản
phẩm tuyệt vời dành cho người khiếm thị. Những người khiếm thị có thể tận
hưởng những tiến bộ cơng nghệ tương tự như những gì mà một người bình
thường có thể làm, khơng cịn khoảng cách xuất hiện do những khiếm khuyết về
giác quan.

4. Sự cần thiết của công nghệ nhận diện giọng nói trong cuộc sống
Có cả trăm, cả nghìn ứng dụng cho phép người dùng tìm kiếm, viết email,
ghi chú và đặt lịch hẹn trên smartphone. Thế nhưng, với một số người, việc sử
dụng bàn phím nhỏ xíu trên điện thoại là khơng tiện lợi, thậm chí là rất khó chịu.
Tốc độ gõ của bạn có thể rất nhanh và chính xác, nhưng cũng có những người
như nổi điên lên khi phải xóa đi viết lại chỉ một chữ duy nhất chỉ vì họ bấm
nhầm sang những phím bên cạnh.
Giọng nói là giải pháp hợp lý nhất tính đến thời điểm hiện tại. Người dùng
khơng chỉ xài giọng nói của mình như một phương thức nhập liệu mà chính bản
thân thiết bị cũng có thể xài giọng nói để đọc ra những thơng tin cần thiết. Đó là
chưa kể đến lợi ích to lớn mà những phần mềm dựa trên giọng nói có thể mang
lại cho những người khiếm thị. Họ có thể tận hưởng những tiến bộ cơng nghệ
tương tự như những gì mà một người bình thường có thể làm, khơng cịn khoảng
cách xuất hiện do những khiếm khuyết về giác quan.
Tất nhiên, hiện nay công nghệ giọng nói vẫn chỉ mới ở giai đoạn đầu chứ
chưa thể nào thay thế hồn tồn bàn phím ảo/vật lý hoặc các nút trên màn hình.
Tuy nhiên, chúng ta đang dần tiến đến một kỉ nguyên hiện đại hơn, các ứng
dụng giọng nói cũng dần dần được hồn thiện.
5. Ngơn ngữ lập trình được sử dụng cho nhận diện giọng nói
Thuật tốn nhận dạng giọng nói hoạt động thơng qua mơ hình âm thanh và
ngơn ngữ. Mơ hình âm thanh được đặc trưng bởi sự kết hợp của các đơn vị ngơn
ngữ của tín hiệu giọng nói và âm thanh. Mơ hình ngơn ngữ khớp các âm với
trình tự của một từ để giúp phân biệt giữa các từ có âm tương tự. Để nhận dạng
một mẫu thời gian trong lời nói và để cải thiện độ chính xác của hệ thống, ta
dùng Mơ hình Markov ẩn cùng với một số ngôn ngữ sau:
a. Ngôn ngữ C#
C# là ngôn ngữ mã nguồn mở và chạy trên Windows, Mac và Linux. Ngôn
ngữ này giúp phát triển ứng dụng cửa hàng Windows, ứng dụng Android và ứng
dụng IOS. Nó cũng có thể hữu ích để xây dựng khung và thư viện phụ trợ và
trung cấp. Nó hỗ trợ khả năng tương tác ngơn ngữ, nghĩa là C# có thể truy cập

mã được viết bằng bất kỳ ngôn ngữ tuân thủ .NET nào. C# chạy trên nhiều nền
18


tảng máy tính khác nhau để nhà phát triển có thể dễ dàng thực hiện tái sử dụng
mã hóa. C# hỗ trợ nạp chồng toán tử và chỉ thị tiền xử lý sẽ giúp cho ngữ pháp
nhận dạng giọng nói. Với ngơn ngữ này, ta có thể dễ dàng xử lý sự kiện nhận
dạng giọng nói.
b. Ngơn ngữ Java
Java là ngơn ngữ lập trình hướng đối tượng được u cầu cao. Nó có nhu
cầu cao vì các tính năng mở rộng của nó. Để phát triển khái niệm nhận dạng
giọng nói, Java tạo ra một API Java Speech. Nó là tập hợp các lớp trừu tượng và
giao diện sử dụng mà nhà phát triển Java tạo ra một khung nhìn của cơng cụ lời
nói. Nó có khả năng tuyệt vời để học các mẫu giọng nói của bạn và cơng cụ này
có thể xử lý mọi tình huống khơng được hỗ trợ một cách lưu lốt. Vì Java hỗ trợ
tính năng tuyệt vời là trung lập về kiến trúc nên nhà phát triển có thể chạy trên
bất kỳ bộ xử lý nào có sẵn trong thế giới thực mà khơng cần nghĩ đến việc phát
triển và biên dịch.
c. Ngôn ngữ PHP
PHP là một ngơn ngữ lập trình hướng tính năng và phổ biến. PHP là ngôn
ngữ cấp cao và cú pháp của nó tương tự như ngơn ngữ C, vì vậy rất dễ dàng cho
người mới bắt đầu tạo phần mềm nhận dạng giọng nói. PHP được hỗ trợ trên
nhiều hệ điều hành nên nhà phát triển sẽ dễ dàng di chuyển ứng dụng được viết
bằng PHP từ máy chủ Windows gốc sang máy chủ Linux mà không cần sửa đổi.
PHP hỗ trợ một số lớp mã nguồn mở có thể hữu ích cho việc tạo ứng dụng nhận
dạng giọng nói và do đó ta cũng có thể cung cấp ứng dụng đã tạo miễn phí. Việc
tạo ứng dụng 'chuyển lời nói thành văn bản' hoặc 'chuyển văn bản thành giọng
nói' rất dễ dàng vì giao diện ứng dụng và dịch vụ lưu trữ web rẻ.
d. Ngôn ngữ Perl
Perl là một ngơn ngữ lập trình đa nền tảng ổn định ban đầu được sử dụng

để xử lý văn bản nhưng ngày nay việc sử dụng ngơn ngữ này lập trình viên có
thể phát triển ứng dụng web và ứng dụng mạng. Vì ngơn ngữ này có chức năng
và class tuyệt vời nên việc phát triển, ứng dụng nhận dạng giọng nói trở nên dễ
dàng đối với nhà phát triển. Trong nhiều ngôn ngữ, các khoảng trắng thừa tạo ra
lỗi, nhưng ngơn ngữ lập trình Perl khơng quan tâm đến các khoảng trắng để
người dùng có thể dễ dàng tạo một chương trình. Ngơn ngữ lập trình Perl thực
hiện nhập dữ liệu tự động và quản lý bộ nhớ tự động nên việc tạo ứng dụng nhận
dạng giọng nói trở nên đơn giản.

19


III. MỘT SỐ ỨNG DỤNG VỀ CÔNG NGHỆ NHẬN
DIỆN GIỌNG NĨI
-Phần

mềm nhận dạng giọng nói Gboard:

Hình 14. Phần mềm Gboard

Phần mềm nhận dạng giọng nói Gboard có tên gọi trước đây là Google
Keyboard. Phần mềm này hỗ trợ trên 120 ngơn ngữ khác nhau và được tích hợp
khá nhiều tính năng mạnh mẽ như nhập liệu bằng giọng nói, biểu tượng cảm
xúc, tìm kiếm ảnh động (GIF), tra cứu thơng tin, dịch thuật nội dung tin nhắn
ngay trên bàn phím…
Nếu đang sử dụng các thiết bị iOS, sau khi cài đặt xong, bàn phím xuất hiện
người dùng chỉ cần nhấn giữ lên biểu tượng dấu phẩy và chạm vào hình Trái đất.
Cuối cùng, nhấn vào biểu tượng micro trên bàn phím và bắt đầu nói để nhập
liệu.
Người dùng laptop hoặc PC cũng có thể thực hiện sử dụng tính năng nhập liệu

văn bản bằng giọng nói thơng qua Google Docs. Nếu muốn gõ dấu chấm, phẩy,
xuống dòng… người dùng cần phải nói chậm rãi và ngắt quãng. Theo thử
nghiệm, khả năng nhận diện giọng nói (tiếng Việt) của Gboard khá tốt, nội dung
thể hiện rõ ràng và ít bị sai chính tả.
- Phần mềm nhận dạng giọng nói ListNote Speech-to-Text Notes

20


Hình 15. Phần mềm ListNote Speech-to-Text Notes

Với phần mềm nhận dạng giọng nói ListNote Speech-to-Text Notes, người dùng
có thể tạo nhanh các ghi chú bằng giọng nói. So với các ứng dụng khác,
ListNote Speech-to-Text Notes tương đối dễ sử dụng, mọi dữ liệu (ghi chú) đều
được lập chỉ mục nên việc tìm kiếm diễn ra khá nhanh… Người dùng cịn có thể
đặt mật khẩu hoặc mã hóa nội dung theo tiêu chuẩn AES nếu muốn bảo vệ tập
tin khỏi con mắt tò mò của người khác
- Phần mềm nhận dạng giọng nói Voice Text

Hình 16. Phần mềm Voice Text

Voice Text là một phần mềm nhận dạng giọng nói cho phép người dùng có thể
gửi/nhận tin nhắn bằng giọng nói, nhập văn bản mà khơng cần chạm vào điện
thoại, dự đốn nội dung, thực hiện cuộc gọi bằng giọng nói…
21


IV. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Tiềm năng của công nghệ nhận dạng giọng nói là rất lớn. Hiện nay chúng ta
chỉ mới khai thác được những bề nổi của nó chứ chưa thật sự đi sâu. Hãy nghĩ

đến một tương lai nơi ta có thể hồn tồn để điện thoại trong túi quần và thực
hiện tất cả chỉ bằng cách nói vào tai nghe Bluetooth. Nhìn rộng hơn, ta vừa về
tới nhà và nói vào chiếc điện thoại của mình: “mở máy lạnh, mở nhạc” thế là khi
mở cửa bước vào thì mọi thứ đã được thực hiện. Tính năng nhận dạng giọng nói
khơng chỉ dừng lại ở việc nhập liệu mà nó cịn mở ra cả một chân trời để chúng
ta khai thác và đơn giản hóa cuộc sống của mình.
Để AI thơng minh thì cần phải có dữ liệu để huấn luyện cho nó, cả về nhận
diện hình ảnh, văn bản, giọng nói. Google có hàng tỷ người dùng với cơng cụ
tìm kiếm, nó có thể biết được trong khoảng thời gian nào, trong từng thời điểm
người dùng quan tâm từ khóa nào, lĩnh vực nào. Đó là một cách người dùng tự
tạo dữ liệu cho AI. Cũng còn một cách là người dùng trực tiếp cung cấp dữ liệu
cho AI.
Cơng nghệ nhận dạng giọng nói là một ví dụ sống động về AI mà ta đang
trực tiếp trải nghiệm. Đi kèm với nó là những rủi ro có thể nhìn thấy được. Một
câu châm ngơn trong Định lý của Tesler nói rằng "AI là bất cứ điều gì chưa được
thực hiện". Hi vọng trong tương lai, những người làm về khoa học máy tính sẽ
nghiên cứu và phát triển những công nghệ phục vụ cho sự phát triển nhân loại.
Công nghệ được sinh ra là để làm cho cuộc sống dễ dàng hơn, và việc nhận dạng
giọng nói chắc chắn sẽ khơng phải là ngoại lệ.

22


TÀI LIỆU THAM KHẢO
[1] C. Lin, H. Nein and J. Hwu, GA-based noisy speech recogni-tion using
two-dimensional cepstrum, IEEE Transactions onSpeech and Audio Processing
8(6) (2000)
[2] J. Sun, F. Karray, O. Basir and M. Kamel, Fuzzy logic-based natural
language processing and its application tospeech recognition, Proceedings of the
5th Biannual World 13(2002), 429–434.

[3] Nguyen Dinh Tung, Nhận diện giọng nói: a/p/machinelearning-that-thu-vi-6-nhan-dien-giong-noi-1Je5E8DylnL, 08/01/2018
[4] Duy Luân, Cơng nghệ nhận dạng và xử lý giọng nói, tương lai của việc
nhập liệu trên thiết bị di động

23



×