Tiểu luận Tìm hiểu Công nghệ nhận diện giọng nói

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:  
Trương Minh Nhật  
Phan Mai Như Ý  
Trần Thị Kim Nhiên  
Nguyễn Thị Thu Bích  
2001181238  
2001181437  
2001180178  
2001180384  
Nguyễn Thị Khánh Kiều 2001181170  
Tan Thị Minh Thư 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ử tiếng nói như mã hoá, 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à đã 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. Đã 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ở 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 đư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  
hoá, hiện đại hoá của nước nhà.  
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 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ể hoà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  
3
 
I. GIỚI THIỆU VCÔ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 toà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 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 toàn diện hơn, liên kết  
và toàn diện hơn cho sản xuất. kết nối vật 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 soát  
hiểu 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  
chuỗi cung ứng cũng thông minh, và làm cho các hệ thống sản xuất dịch  
vụ trở nên linh hoạt, linh hoạt đáp ứng khách hàng hơn. Các thuộc tính của hệ  
thống sản xuất dịch vụ với Công nghiệp 4.0 đã được nêu bật 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 đóng vai trò ngày càng  
quan trọng đối với quá trình phát triển kinh tế hội của mỗi quốc gia. Tri thức  
được xác định 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 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 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ỉ 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 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ệ.  
5
     
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 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 thiết bị 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, 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 sphá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 thực hiện các nhiệm vụ được giao cho chúng.  
Bất cứ ai có điện thoại đều 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ứ chxoay 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, 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 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  
6
Năm 2010, Google đã giới thiệu 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ợ ả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ủ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 đã đ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 thể được bsung 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 khả năng  
nhận dịch (hoặc hiểu thực hiện) các lệnh thu được từ giọng nói con người.  
được sử dụng rất nhiều trong lĩnh vực trí tuệ nhân tạo (AI), Google Assistant  
một dụ điển hình. Đây một bộ máy hoặc hệ thống khả năng nhận và  
dịch (hoặc hiểu 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.  
7
   
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.  
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 quá 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-to-  
Digital 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ố hoá để 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 độ nnhau 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 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ị 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 hoà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 quá 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 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 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ử văn bản chuẩn. Đương nhiên mọi thứ skhông  
chính xác 100% nhưng phần mềm thể nhận diện xử phần lớn lỗi chính  
tả, ngữ pháp.  
8
   
- 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:  
- Thiết lập "dạy": Mặc tất cả phần mềm nhận dạng giọng nói hiện  
nay đều hứa hẹn thể hoạt động sau vài phút thiết lập, nhưng thực sự quá trình  
ghi nhận, làm quen với giọng nói, âm điệu tốc độ nói của người dùng có đôi  
chút phức tạp 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 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 sẵn.  
Đó đ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  
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 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 một thư viện khác nhưng thuộc dạng nguồn mở và  
hoạt động offline, hạn chế chỉ hỗ trợ tiếng Anh và Tây Ban Nha. Vài  
cái tên khác có thể kể đến nIvona, iSpeech, Vocalkit and Acapela.  
Một cách khác mà nhiều phần mềm hiện cũng đang xài đó tận dụng bộ  
nguồn nhận dạng 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. Ngoà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.  
9
 
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  
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 lại thì thiết bị ở phía người dùng phải luôn  
kết nối với Internet. Độ trễ trong quá 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 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, quá trình xử 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 ngoà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 đó 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.  
10  
     
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ệ 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 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 để 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ế. Đó 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 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 đào tạo để tạo ra "bản dịch",  
đó cũng điều 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 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  
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ử 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  
11  
     
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ỉ 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 đơ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 nguồn lực để thể đưa NLP lên  
đến mức tiến bộ như hiện nay. Mặc 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 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  
12  
     
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 xso với sóng âm, bởi vì nó chỉ đọc dữ liệu  
theo từng khoảng. 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 toá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ử 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  
13  
     
giải quyết vấn đề dễ hơn bằng cách tiền xử 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 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ử 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 đó nhvào việc sử dụng Fourier transform trong toá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 thuyết Nyquist trên, sóng âm đã trở thành một dải liên  
tục. 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 toán bởi thuật toán Fourier) để tìm ra tổng năng  
lượng ở từng note.  
14  
   
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 scao. Đây một giọng nam điển hình. Nếu chúng ta lặp lại quá  
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 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 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 tổng quát hóa: như trong  
15  
     
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 hạn chế ảnh hưởng  
từ nhiễu. Chú ý là nếu quá tổng quát hóa thì lại 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 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 đoán quá khứ ảnh hưởng tới kết quả tiên đoán trong tương  
lai. Đó bởi vì các ký tự sự liên quan đến nhau. Ví dụ chúng ta đã tìm ra  
"HEL", thì rất 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 tự khả năng được nói cao nhất. Đây bản đồ kết nối của  
từ "HELLO":  
16  
   
Hình 13. Bản đồ kết nối của từ "HELLO"  
Mạng nơron trên dự đoán từ được nói là “HHHEE_LL_LLLOOO”, nhưng  
cũng nghĩ 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 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 dự đoán từng 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. 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 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 ngoài thực tế 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, đây  
chính là bản phiên âm chúng ta lựa chọn.  
17  
 
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 toá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 đào tạo tcá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ữ 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ử 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 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 hoà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 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 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 độ đ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  
18  
     
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 dụ điển hình.  
Ngoà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ị 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 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ả 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 độ của bạn thể rất nhanh và chính xác, nhưng cũng 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ỉ 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 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 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 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ọ 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 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ế hoàn toàn bàn phím ảo/vật 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 hoà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 toá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 sngôn ngữ sau:  
a. Ngôn ngữ C#  
C# là ngôn ngữ nguồn mở 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 thể hữu ích để xây dựng khung và thư viện phụ trợ và  
trung cấp. hỗ trợ khả năng tương tác ngôn ngữ, nghĩa là C# có thể truy cập  
đượ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  
19  
     
tảng máy tính khác nhau để nhà phát triển 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ử chỉ thị tiền xử 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ử 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 yê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  
thể xử mọi tình huống không được hỗ trợ một cách lưu loá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 thể chạy trên  
bất kỳ bộ xlý 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 phổ biến. PHP là ngôn  
ngữ cấp cao và cú pháp của tương tự như ngôn ngữ C, vì vậy rất ddà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ỗ trtrê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 nguồn mở 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 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 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ử 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 quản 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.  
20  
     
Tải về để xem bản đầy đủ
docx 24 trang yennguyen 30/03/2022 10560
Bạn đang xem 20 trang mẫu của tài liệu "Tiểu luận Tìm hiểu Công nghệ nhận diện giọng nói", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docxtieu_luan_tim_hieu_cong_nghe_nhan_dien_giong_noi.docx