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ếngAnh và một số ngôn ngữ khác.. Sơ lược v
Trang 1TP Hồ Chí Minh, 28 Tháng 02 Năm 2021
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:
Trang 2Trong 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ếngAnh và một số ngôn ngữ khác Đã có nhiều công trình nghiên cứu về lĩnh vựcnhậ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 Goldcủa hãng IBM, Dragon Natural Speaking của Dragon System, Speech SDK củaMicrosoít, Triển khai những công trình nghiên cứu và đưa vào thực tế ứngdụ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ệphoá, hiện đại hoá 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ệnthờ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ể 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
Trang 3I GIỚI THIỆU VỀ CÔNG NGHỆ NHẬN DIỆN GIỌNG NÓI 5
1 Giới thiệu về nền công nghiệp 4.0 và tầm ảnh hưởng 5
2 Sơ lược về lịch sử công nghệ nhận diện giọng nói 5
3 Giới thiệu về công nghệ nhận diện giọng nói 7
a Công nghệ nhận diện giọng nói là gì?7
b Cách thức hoạt động của công nghệ nhận diện giọng nói 8
c Ưu, nhược điểm của công nghệ nhận diện giọng nói 8
d Một số thư viện hỗ trợ cho công nghệ nhận diện giọng nói 9
II TỔNG QUAN VỀ CÔNG NGHỆ NHẬN DIỆN GIỌNG NÓI 10
1 Mô hình triển khai công nghệ nhận diện giọng nói 10
2 Các kỹ thuật được áp dụng trong công nghệ nhận diện giọng nói 10
a Kỹ thuật xử lý ngôn ngữ tự nhiên (Natural Language Processing) 11
b Chuyển âm thanh thành số 12
c Kỹ thuật tiền xử lý dữ liệu mẫu âm thanh 13
d Kỹ thuật nhận diện ký tự từ đoạn âm ngắn 16
e Áp dụng Machine Learning tự xây dựng hệ thống nhận diện giọng nói
18
f Giao diện giọng nói người dùng (Voice user interíace)18
3 Công dụng của công nghệ nhận diện giọng nói _18
4 Sự cần thiết của công nghệ nhận diện giọng nói trong cuộc sống 19
5 Ngôn ngữ lập trình được sử dụng cho nhận diện giọng nói 19
a Ngôn ngữ C#19
b Ngôn ngữ Java 20
c Ngôn ngữ PHP 20
d Ngôn ngữ Perl _20 III MỘT SỐ ỨNG DỤNG VỀ CÔNG NGHỆ NHẬN DIỆN GIỌNG NÓI
21
IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 23
Trang 4TÀI LIỆU THAM KHẢO 24
DANH SÁCH HÌNH ẢNH
Hình 1 Mô hình công nghệ nhận diện giọng nói 11
Hình 2 Input và output của Công nghệ nhận diện giọng nói 12
Hình 3 Ví dụ về lấy mẫu sampling 1 13
Hình 4 Ví dụ về lấy mẫu sampling 2 13
Hình 5 Ví dụ về lấy mẫu sampling 3 14
Hình 6 Ví dụ về lấy mẫu sampling 4 14
Hình 7 320 mẫu âm thanh trong 20ms 15
Hình 8 Âm thanh gốc trong chu kỳ 20ms 15
Hình 9 Bảng số thể hiện độ năng lượng của mỗi khoảng tần số 16
Hình 10 Đồ thị thể hiện độ năng lượng của mỗi khoảng tần số 16
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 16
Trang 5I 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 toàn mới với sự trợ giúp của kết nối thông qua Internetvạ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ônggian 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 Nó kết nối vật lý với kỹ thuật số và cho phépcộ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
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ệutứ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 Trongtương lai, khoa học và công nghệ tiếp tục phát triển và đóng vai trò ngày càngquan 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 đẩymạnh đầu tư phát triển khoa học và công nghệ nhằm ứng dụng thành tựu khoahọ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ôngnghiệ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ểncủ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úngchỉ là những câu chuyện trong khoa học viễn tưởng Nhưng viễn tưởng này đangdầ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 giaodiệ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ôngnghệ
Trang 6ị- 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
-I- 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ởimột giọng nói duy nhất Mặc dù thiết bị có thể nhận ra đầu vào bằnggiọng nói với độ chính xác 97-99% nhưng chính vì kích thước lớn, chiphí cao và thiết bị điện tử phức tạp nên nó đã không thể trở thành mộtsả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ụccho 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
-I- 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
-I- Từ những năm 1971 - 1976, Bộ Quốc phòng Mỹ đã tài trợ cho chươngtrình DARPA SUR (Nghiên cứu hiểu về lời nói), dẫn đến sự phát triểncủ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 đượcSpeechWorks 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 conngườ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ìmthờ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 muathuố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ămsóc và hỗ trợ khách hàng ngày nay
-I- Năm 1992, Apple cũng sản xuất hệ thống nhận dạng giọng nói liên tụctheo 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ùngtương tác với các máy sử dụng giọng nói Sau đó, Google đã giới thiệumộ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
-I- Đến năm 2008, Google nổi lên với ứng dụng Google Voice Searchdành cho Iphone
Trang 7-I- Năm 2010, Google đã giới thiệu và nhận dạng được cá nhân hoá, cácthiết bị Android sẽ ghi lại các truy vấn giọng nói của người dùng khácnhau để phát triển một mô hình giọng nói nâng cao Nó bao gồm 230 tỷ
-I- Năm 2015, Microsoít đã 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ấtWindows Phone vào hệ điều hành nói chung
-I- 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ôngminh, được ra mắt lần đầu tại hội nghị nhà phát triển của hãng Khôngnhư Google Now, Trợ lý Google có thể tham gia các cuộc trò chuyệnhai chiều Trợ lý Google được đưa vào ứng dụng nhắn tin Google Allo,
và loa thông minh Google Home
-I- 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ôngminh Các chức năng của Assistant cũng có thể được bổ sung bởi cácnhà 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
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ăngnhậ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ủamột cá nhân nào đó, tương tự một phương pháp nhận diện sinh trắc học
Trang 8ị- 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.
Để 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ảithự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ữngrung độ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ằngcách đo chính xác sóng âm ở các khoảng thời gian gần nhau, sau đó lọc âmthanh đã đượ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 conngườ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àiphần trăm giây, thậm chí là phần ngàn giây trong trường hợp có phụ âm cuốikhó phân biệt như "p" hoặc "t") Chương trình sau đó đặt những phần âm thanhnà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 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
> Ư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ốngchuyể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ỉnhsử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ôngchí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
Trang 9- Tốc độ nhanh: Phần mềm nhận dạng giọng nói có thể nắm bắt giọng nóicủ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ậytố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 và "dạy": Mặc dù tất cả phần mềm nhận dạng giọng nói hiệnnay đều hứa hẹn có thể hoạt động sau vài phút thiết lập, nhưng thực sự quá trìnhghi 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ó đôichú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ắtngườ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ầnmề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ọnghay 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ợpphầ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ạnggiọng nói hiện nay
-I- Nuance là cái tên được nhắc đến nhiều nhất trong việc cung cấp thư việngiọ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ềuthờ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àicá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ộtnăm về trước Ngoài ra, Apple, Google cũng có cung cấp các hàm APIgiúp app của lập trình viên biết nói chỉ với vài dòng mã nguồn
Trang 10II 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ônngữ sẽ diễn ra trên máy chủ của các công ty cung cấp dịch vụ Phươngphá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 luônkết nối với Internet Độ trễ trong quá trình gửi giọng nói từ máy lênserver rồi trả kết quả từ server về lại máy cũng là những thứ đáng cânnhắc
ị- Tích hợp thẳng vào app: Với phương thức này, quá 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 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ảikế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ảnxuất sẽ phải cập nhật lại cả một app, trong khi với phương thức đámmây thì những thay đổi đó chỉ cần làm ở phía server Kích thước ứngdụng cũng sẽ tăng lên, có thể lên tới cả vài trăm MB
Trang 112 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 caothì 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ếtnhữ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ònnhiề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 tachỉ 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 âmthanh 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ácnhau 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êmmột vài bước vào mạng deep learning
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là tập hợpcủ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
Trang 121 2
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 khimuố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âunhư "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à
Microsoít đề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êncứ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ềnsó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ệncho độ 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