Đề tài này mong muốn nghiên cứu về công nghệ nhận dạng tiếng nói tiếng Việt, các dịch vụ cung cấp dựa trên nền tảng điện toán đám mây của công nghệ này và ứng dụng vào một số phạm vi bài
Trang 1BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG
PHÁT TRIỂN CÔNG CỤ HỖ TRỢ TƯƠNG TÁC NGƯỜI – MÁY BẰNG TIẾNG NÓI SỬ DỤNG CÔNG NGHỆ XỬ LÝ NGÔN NGỮ TỰ NHIÊN TIẾNG VIỆT VÀ ỨNG DỤNG CHO
BẢNG THÔNG TIN ĐIỆN TỬ CÔNG CỘNG TẠI
VIỆN ĐẠI HỌC MỞ HÀ NỘI
Trang 2THAM GIA NGHIÊN CỨU ĐỀ TÀI
Trang 3DANH MỤC BẢNG BIỂU & HÌNH VẼ 4
DANH MỤC TỪ VIẾT TẮT 6
PHẦN I: MỞ ĐẦU 7
I.1 Tính cấp thiết của đề tài 7
I.2 Tình hình nghiên cứu 7
I.3 Mục đích nghiên cứu 10
I.4 Đối tượng và phạm vi nghiên cứu 10
I.5 Phương pháp nghiên cứu 11
PHẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 12
Chương 1 Phương pháp nhận dạng tiếng nói và đặc điểm tiếng nói tiếng Việt 12
1.1 Giới thiệu bài toán nhận dạng tiếng nói và ứng dụng 12
1.2 Quy trình và một số kỹ thuật cho bài toán nhận dạng tiếng nói 20
1.3 Một số đặc điểm của tiếng nói tiếng Việt 27
Chương 2 Phát triển công cụ nhận dạng tiếng nói sử dụng dịch vụ trên nền điện toán đám mây 33
2.1 Kiến trúc ứng dụng hướng dịch vụ trên nền điện toán đám mây 33
2.2 Một số dịch vụ trên nền điện toán đám mây cho nhận dạng tiếng nói 39
2.3 Mô hình ứng dụng nhận dạng tiếng nói trên nền đám mây Google 47
Chương 3 Xây dựng ứng dụng nhận dạng tiếng nói tiếng Việt sử dụng kiến trúc hướng dịch vụ trên nền điện toán đám mây và thử nghiệm 54
3.1 Một số công cụ phát triển ứng dụng 54
3.2 Mô hình và một số thiết kế cho ứng dụng 60
3.3 Thử nghiệm và đánh giá 69
PHẦN III: KẾT LUẬN & KIẾN NGHỊ 76
III.1 Kết luận 76
III.2 Kiến nghị 77
TÀI LIỆU THAM KHẢO 78
Trang 4DANH MỤC BẢNG BIỂU & HÌNH VẼ
Hình 1.1: Mô hình bài toán nhận dạng tiếng nói 13
Hình 1.2: Cấu trúc hệ thống nhận dạng tiếng nói theo mẫu 16
Hình 1.3: Tích hợp tri thức trong nhận dạng tiếng nói 18
Hình 1.4: Kiến trúc cơ bản của hệ thống nhận dạng tiếng nói 20
Hình 1.5: Minh hoạ mô hình HMM năm trạng thái từ trái sang phải 23
Bảng 1.1: Cấu trúc âm tiết tiếng Việt [?] 29
Bảng 1.2: Ví dụ cấu trúc ngữ âm của từ “chuyển” 29
Bảng 1.3: Tập âm vị ngữ âm tiếng Việt [?] 30
Hình 1.6: Các đường đặc tính của 6 thanh điệu tiếng Việt [?] 31
Hình 2.1: Các dịch vụ dựa trên kiến trúc điện toán đám mây 33
Hình 2.2: Phân cấp các loại hình điện toán đám mây 35
Hình 2.3: Mô hình triển khai của điện toán đám mây 36
Hình 2.4: Hệ sinh thái nền tảng đám mây của Google 37
Hình 2.5: Kiến trúc client/server của gRPC 37
Hình 2.6: Kết nối sử dụng Speech API từ ứng dụng 39
Hình 2.7: Luồng thực hiện chuyển đổi âm thanh thành văn bản 42
Hình 2.8: Một số dịch vụ nhận thức của Microsoft 44
Hình 2.9: Sơ đồ quá trình chung của dịch vụ Microsoft 45
Hình 2.10: Sơ đồ hoạt động của hệ thống GSA 49
Hình 2.11: Mô hình kết nối ứng dụng sử dụng dịch vụ GSA 50
Hình 2.12: Màn hình giao diện của hệ thống GCP Console 50
Hình 2.13: Sơ đồ ghi âm và gửi yêu cầu nhận dạng 52
Hình 2.14: Sơ đồ chờ tiếp nhận kết quả nhận dạng và xử lý 53
Bảng 3.1: Danh mục một số lớp đối tượng chính 55
Hình 3.1: Sơ đồ phân cấp lớp đối tượng xử lý thu âm trong Java 60
Hình 3.2: Sơ đồ tổng thể công cụ nhận dạng tiếng nói 61
Hình 3.3: Sơ đồ thu âm dựa trên hệ thống thư viện Java 62
Hình 3.4: Cơ chế cửa sổ thời gian cho rời rạc hoá tín hiệu âm thanh 63
Hình 3.5: Minh họa cơ chế cửa sổ xác định điểm dừng lời nói 64
Hình 3.6: Quy trình thực thi luồng thu âm và nhận dạng tiếng nói 64
Trang 5Hình 3.7: Sơ đồ ứng dụng nhận dạng tiếng nói vào bảng tin điện tử 66
Bảng 3.2: Định dạng danh sách tập lệnh cho bảng tin 67
Hình 3.8: Sơ đồ ứng dụng nhận dạng tiếng nói vào nhập điểm thi 68
Hình 3.9: Mô hình chuyển dữ liệu từ công cụ đến ứng dụng 68
Hình 3.10: Giao diện thiết lập tham số cho nhận dạng tiếng Việt 70
Hình 3.11: Giao diện thiết lập tham số lệnh tương tác trên bảng tin 71
Bảng 3.3: Danh sách mô tả các bảng điểm thử nghiệm 72
Hình 3.12: Bảng điểm loại dễ (chỉ có điểm chẵn) 72
Hình 3.13: Bảng điểm loại trung bình (có các điểm lẻ) 73
Hình 3.14: Bảng điểm loại khó (có hai dãy điểm và có các điểm lẻ) 73
Hình 3.15: Kết quả so sánh thời gian nhập điểm của thử nghiệm 1 74
Hình 3.16: Kết quả so sánh thời gian nhập điểm của thử nghiệm 2 74
Hình 3.17: Kết quả so sánh thời gian nhập điểm của thử nghiệm 3 74
Hình 3.18: Kết quả so sánh thời gian nhập điểm của thử nghiệm 4 75
Hình 3.19: Kết quả so sánh thời gian trung bình nhập điểm 75
Trang 6DANH MỤC TỪ VIẾT TẮT
Stt Từ viết tắt Ý nghĩa đầy đủ
1 GSA Google Speech API, thư viện cho lập trình khai thác dịch
vụ nhận dạng tiếng nói của Google
2 HMM Hidden Markov Model, mô hình Markov ẩn cho phương
pháp nhận dạng tiếng nói
3 NLP Natural Language Processing, xử lý ngôn ngữ tự nhiên
4 SaaS Software as a Service, phần mềm dưới dạng dịch vụ
5 IaaS Infrastructure as a Service, hạ tầng dưới dạng dịch vụ
6 PaaS Platform as a Service, nền tảng dưới dạng dịch vụ
7 GCP Google Cloud Platform, nền tảng dịch vụ đám mây của
8 gRPC Google Remote Procedure Call, cơ chế gọi thủ tục từ xa
của Google
9 JSON JavaScript Object Notation, cấu trúc dữ liệu mở mô tả đối
tượng trong ngôn ngữ kịch bản của Java
Trang 7PHẦN I: MỞ ĐẦU I.1 Tính cấp thiết của đề tài
Cuộc cách mạng công nghiệp lần thứ 4 đã tạo ra sức mạnh công nghệ rất mạnh mẽ và được ứng dụng sâu rộng vào cuộc sống, giúp chúng ta nâng hiệu quả công việc với cao chất lượng sản phẩm, cuộc sống ngày một nâng cao Trong đó, công nghệ xử lý ngôn ngữ tự nhiên nói chung và công nghệ tổng hợp, nhận dạng tiếng nói đã được nghiên cứu, phát triển và ứng dụng rất mạnh mẽ hiện nay tại các hãng công nghệ lớn như Google, IBM, và chính họ cũng đã cung cấp dịch vụ ứng dụng cho các nhà phát triển tiếp theo
Công nghệ nhận dạng tiếng nói giúp cho con người tương tác với các thiết bị máy móc một cách thuận tiện hơn, tự nhiên hơn và đặc biệt dần dần các thiết bị, máy móc hiểu được tiếng nói của con người trong mọi hoạt động tương tác Với công nghệ này, việc ra lệnh hoặc nhập dữ liệu cho các thiết bị và máy tính trở nên dễ dàng hơn trong khi nhu cầu trao đổi thông tin, tương tác giữa con người với các thiết bị ngày càng nhiều hơn, đa dạng hơn
Việc phát triển một công cụ tương tác người - máy bằng tiếng nói nhằm giúp cho trao đổi thông tin giữa người dùng và máy tính trở nên dễ dàng và thuận tiện, đặc biệt là một số ứng dụng mang tính công cộng như bảng thông tin điện
tử, nhập dữ liệu đa người dùng, là những nghiên cứu ứng dụng có ý nghĩa thực tiễn cao hiện nay Đề tài này mong muốn nghiên cứu về công nghệ nhận dạng tiếng nói tiếng Việt, các dịch vụ cung cấp dựa trên nền tảng điện toán đám mây của công nghệ này và ứng dụng vào một số phạm vi bài toán trong thực tiễn nhằm đem lại hiệu quả cao hơn
I.2 Tình hình nghiên cứu
a) Ngoài nước (phân tích, đánh giá tình hình nghiên cứu thuộc lĩnh vực của đề tài trên thế giới, liệt kê danh mục các công trình nghiên cứu, tài liệu có liên quan đến đề tài được trích dẫn khi đánh giá tổng quan)
Hiện nay, trên thế giới, việc nghiên cứu và phát triển công nghệ nhận dạng tiếng nói đã và đang được thực hiện rất sâu rộng và mạnh mẽ Các mô hình được đưa ra nhằm nâng cao chất lượng và hiệu quả của phương pháp, các kỹ thuật phát triển và phân phối kết quả của công nghệ dựa trên điện toán đám mây cũng được triển khai rất sôi động, giúp cho các nhà phát triển thứ ba có thể dễ dàng ứng dụng những thành tựu của các công nghệ nổi bật này vào phục vụ các bài toán ở các lĩnh vực của cuộc sống
Có thể thấy nhận dạng tiếng nói là chuyển đổi lời nói thành một chuỗi các từ trong ngôn ngữ được thể hiện bằng một chương trình máy tính Tiếng nói là
Trang 8phương thức truyền thông tự nhiên nhất cho con người, mục tiêu cao nhất về nhận dạng tiếng nói là để mọi người giao tiếp với máy tính và các thiết bị thông minh một cách tự nhiên và hiệu quả hơn Mục tiêu này đòi hỏi sự tích hợp sâu rộng với nhiều thành phần xử lý ngôn ngữ tự nhiên (NLP) và cần được nghiên cứu Hầu hết các công nghệ hiện đại này thường dựa trên các mô hình thống kê như mô hình Markov ẩn (HMMs) Một lý do tại sao HMM phổ biến là các tham
số của chúng có thể được ước lượng một cách tự động từ một lượng lớn dữ liệu,
và chúng rất đơn giản và tính khả thi về mặt tính toán
Trong thực tế, hệ thống xử lý tiếng nói thường sử dụng ngữ pháp văn phạm phi ngữ cảnh (CFG) hoặc n-gram thống kê vì lý do tương tự mà HMMs được sử dụng cho mô hình hóa âm thanh Sơ đồ quy trình tổng thể quá trình nhận dạng tiếng nói có thể được rút gọn như sau [?]:
+ Feature Extraction: thực hiện trích chọn đặc trưng tín hiệu tiếng nói (có thể bằng các phương pháp như MFCC), đồng thời thực hiện ước lượng vector các vector đặc trưng này
+ Acoustic Model: mô hình hoá âm thanh sau khi đã trích chọn được các đặc trưng Mô hình âm thanh cần để mô tả cách phát âm các từ tương ứng với âm thanh tiếng nói được phát Các mô hình âm thanh phụ thuộc rất nhiều vào loại ứng dụng (ví dụ như bài phát biểu, mệnh lệnh) Nói chung, một số khó khăn được thực hiện để các mô hình âm thanh có tính khả thi về mặt tính toán Các
mô hình âm thanh thường được sử dụng là mô hình HMM
+ Language Model: vấn đề mô hình hoá ngôn ngữ, tức là, để quyết định làm thế nào để tính xác suất tiên đoán cho một chuỗi các từ Mô hình phổ biến nhất dựa trên một giả định Markovian rằng một từ trong câu được điều kiện chỉ dựa trên N-1 từ trước đó Phương pháp mô hình hóa như vậy được gọi là N-gram
Có nhiều công trình công bố nước ngoài liên quan đến nhận dạng tiếng nói
và các công nghệ xử lý ngôn ngữ liên quan gồm:
1 Xuedong Huang and Li Deng, An Overview of Modern Speech Recognition, Microsoft Corporation, 2010
2 André Gustavo Adami, Automatic Speech Recognition: From the Beginning to the Portuguese Language, Universidade de Caxias do Sul, Centro
de Computação e Tecnologia da Informação
3 Tripti Dodiya1, Sonal Jain, Speech Recognition System for Medical Domain, International Journal of Computer Science and Information Technologies, Vol 7 (1), 2016, pp.185-189
Trang 94 Shinya Iizuka and Kosuke Tsujino, Speech Recognition Technology and Applications for Improving Terminal Functionality and Service Usability, NTT DOCOMO Technical Journal Vol 13 No 4, 2012
5 Shaikh Naziya S., R.R Deshmukh, Speech Recognition System – A Review, Journal of Computer Engineering, Volume 18, Issue 4, Ver II (Jul.-Aug 2016), pp.01-09
b) Trong nước (phân tích, đánh giá tình hình nghiên cứu thuộc lĩnh vực của đề tài ở Việt Nam, liệt kê danh mục các công trình nghiên cứu, tài liệu có liên quan đến đề tài được trích dẫn khi đánh giá tổng quan)
Ở trong nước, lĩnh vực nhận dạng tiếng nói cũng được nghiên cứu khá sôi động trong những năm gần đây Nó là một quá trình nhận dạng mẫu, với các mẫu là các đơn vị nhận dạng, có thể là các từ hoặc các âm vị Khó khăn cơ bản của bài toán này là tiếng nói luôn biến thiên theo thời gian và có sự khác biệt lớn giữa tiếng nói của những người nói khác nhau, tốc độ nói, ngữ cảnh và môi trường âm học khác nhau Các nghiên cứu về nhận dạng tiếng nói dựa trên ba nguyên tắc cơ bản [?]:
- Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong một khung thời gian ngắn (short-term amplitude spectrum) Nhờ vậy ta có thể trích ra các đặc điểm tiếng nói từ những khoảng thời gian ngắn và dùng các đặc điểm này làm dữ liệu để nhận dạng tiếng nói
- Nội dung của tiếng nói được biểu diễn dưới dạng chữ viết, là một dãy các ký hiệu ngữ âm Do đó ý nghĩa của một phát âm được bảo toàn khi chúng ta phiên âm phát âm thành dãy các ký hiệu ngữ âm
- Nhận dạng tiếng nói là một quá trình nhận thức Ngôn ngữ nói có nghĩa, do
đó thông tin về ngữ nghĩa (semantics) và ngữ dụng (pragmatics) có giá trị trong quá trình nhận dạng tiếng nói, đặc biệt khi thông tin về âm học là không rõ ràng Lĩnh vực nghiên cứu của nhận dạng tiếng nói là khá rộng liên quan đến nhiều ngành khác nhau, như xử lý tín hiệu số (digital signal proccessing), vật lý hay
âm học (acoustic), nhận dạng mẫu, lý thuyết thông tin và khoa học máy tính (information and computer science theory), ngôn ngữ học (linguistics), sinh lý học (physiology), tâm lý học ứng dụng (applied psychology) Các hệ thống nhận dạng tiếng nói có thể được phân chia thành hai loại khác nhau: hệ thống nhận dạng từ rời rạc và hệ thống nhận dạng từ liên tục Trong hệ thống nhận dạng tiếng nói liên tục, người ta lại phân biệt hệ thống nhận dạng có kích thước từ điển nhỏ và hệ thống nhận dạng với kích thước từ điển trung bình hoặc lớn Một số công trình nghiên cứu liên quan đến lĩnh vực này ở trong nước gồm:
Trang 101 Hồ Tú Bảo và Lương Chi Mai, Về xử lý tiếng Việt trong công nghệ thông
tin, Viện Công nghệThông tin, Viện Khoa học và Công nghệ tiên tiến Nhật Bản
2 Nguyễn Văn Giáp và Trần Việt Hồng, Kỹ thuật nhận dạng tiếng nói và
ứng dụng trong điều khiển, Đại học Bách Khoa TPHCM
3 Nguyễn Cao Quí, Ứng dụng mô hình Markov ẩn để nhận dạng tiếng nói
trên FPGA, Tạp chí Khoa học Trường Đại học Cần Thơ, Phần A: Khoa học Tự
nhiên, Công nghệ và Môi trường: 25 (2013): pp.1-7
4 Thái Duy Quý, Nhận dạng tiếng nói chữ số việt áp dụng trong hệ thống
nhấp điểm, Tạp chí Khoa học - Đại học Đồng Nai, Số 04 - 2017, ISSN
2354-1482
5 Nguyễn Thị Thanh, Nguyễn Hồng Quang, Trịnh Văn Loan, Phạm Ngọc
Hưng, Nhận dạng tiếng Việt nói sử dụng bộ công cụ KALDI, Tạp chí Khoa học
CNTT&TT, Số 3 - 4 (CS.01) 2016
c) Danh mục các công trình đã công bố thuộc lĩnh vực của đề tài của chủ nhiệm
và những thành viên tham gia nghiên cứu (họ và tên tác giả; bài báo; ấn phẩm; các yếu tố về xuất bản)
1 Dương Thăng Long (cn), Trần Tiến Dũng, Mai Thị Thúy Hà, Nghiên cứu
độ đo tương đồng văn bản trong tiếng Việt và ứng dụng hỗ trợ đánh giá việc sao chép bài điện tử, Đề tài NCKH cấp cơ sở tại Viện Đại học Mở Hà Nội, 2014
2 Dương Thăng Long, Trương Tiến Tùng, Trần Tiến Dũng, Phương pháp
đánh giá độ tương tự văn bản tiếng Việt, Tạp chí khoa học Đại học Mở Hà Nội,
Số 14/Tháng 10-2015, tr 70-84, 2015
I.3 Mục đích nghiên cứu
Nghiên cứu về công nghệ nhận dạng tiếng nói và dịch vụ điện toán đám mây phục vụ cho ứng dụng thực tiễn của công nghệ nhận dạng tiếng nói
Phát triển công cụ nhận dạng tiếng nói tiếng Việt dựa trên dịch vụ điện toán đám mây và ứng dụng trong nhập dữ liệu, ra lệnh và tương tác với máy tính bằng tiếng nói
Thiết kế và xây dựng hệ thống tích hợp các thiết bị tương tác bằng tiếng nói
và ứng dụng trên bảng tin điện tử của Viện
I.4 Đối tượng và phạm vi nghiên cứu
Nghiên cứu tổng quan về phương pháp nhận dạng tiếng nói nói chung và áp dụng cho đặc thù tiếng Việt nói riêng
Trang 11Nghiên cứu về điện toán đám mây, kiến trúc ứng dụng dưới dạng dịch vụ (IaaS, PaaS, SaaS) và giải pháp cung cấp, khai thác dịch vụ ứng dụng dựa trên nền điện toán đám mây nhằm phát triển mở rộng các ứng dụng cho bên thứ 3 Thiết kế và xây dựng công cụ tương tác bằng tiếng nói tiếng Việt để nhận lệnh bằng tiếng nói trong tương tác và thực thi nhiệm vụ trên máy tính
Xây dựng phần mềm ứng dụng tích hợp các thiết bị tương tác bằng tiếng nói
và thử nghiệm tại bảng tin điện tử của Viện
I.5 Phương pháp nghiên cứu
Nghiên cứu lý thuyết về các mô hình và phương pháp luận dựa trên việc khảo cứu các tài liệu, công trình có liên quan đến phạm vi đề tài nhằm xây dựng
mô hình logic cho mục tiêu đề tài
Phần thực nghiệm là thiết kế và xây dựng một hệ thống công cụ nhằm kết nối với các dịch vụ điện toán đám mây của các công nghệ hiện đại để khai thác sử dụng và cung cấp khả năng tương tác bằng tiếng nói tiếng Việt Thử nghiệm tại bảng tin điện tử công cộng của Viện
Trang 12PHẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
Chương 1 Phương pháp nhận dạng tiếng nói và đặc điểm tiếng nói tiếng Việt 1.1 Giới thiệu bài toán nhận dạng tiếng nói và ứng dụng
1.1.1 Bài toán nhận dạng tiếng nói
Nhiệm vụ nhận dạng tiếng nói là chuyển đổi lời nói thành một chuỗi các từ bằng một chương trình máy tính Là phương thức giao tiếp tự nhiên nhất cho con người, giấc mơ cuối cùng của nhận dạng tiếng nói là cho phép mọi người giao tiếp một cách tự nhiên và hiệu quả hơn Mặc dù mục tiêu dài hạn đòi hỏi sự tích hợp sâu với nhiều thành phần xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) đã được nghiên cứu rất mạnh mẽ, có rất nhiều ứng dụng đang nổi bật có thể dễ dàng triển khai với mô-đun nhận dạng tiếng nói cốt lõi được cung cấp chuyên nghiệp Một số ứng dụng điển hình này bao gồm quay số bằng tiếng nói, định tuyến cuộc gọi, nhập dữ liệu và đọc chính tả, nhận lệnh và điều khiển và học ngôn ngữ được hỗ trợ bởi máy tính Hầu hết các hệ thống hiện đại này thường dựa trên các mô hình thống kê như mô hình Markov ẩn (HMM) Lý
do HMM trở nên phổ biến trong NLP là các tham số của chúng có thể được ước tính tự động từ một lượng lớn dữ liệu, chúng đơn giản và khả thi tính toán
Nhận dạng tiếng nói là một quá trình phức tạp bao gồm nhiều khâu biến đổi Tín hiệu tiếng nói phát ra là tương tự Thực hiện lấy mẫu, lượng tử hóa và mã hóa để thu được tín hiệu số của âm thanh tiếng nói Các mẫu tín hiệu tiếng nói đầu vào được trích chọn các giá trị đặc trưng (features extraction) Kết quả thu được sau quá trình này là tập các đặc trưng âm học (acoustic features) Những giá trị đặc trưng này sẽ là đầu vào của quá trình nhận dạng Hệ thống nhận dạng
sẽ tiếp nhận các giá trị đặc trưng này và so khớp với các mẫu tham chiếu đã được huấn luyện bằng mô hình âm thanh (acoustic model) và mô hình ngôn ngữ (language model) Hệ thống nhận dạng sẽ tính toán độ tương đồng của dãy vector đặc trưng và mẫu tham chiếu Việc tính toán độ tương đồng được được thực hiện bằng cách áp dụng các thuật toán đã được chứng minh hiệu quả như thuật toán Vitertbi (trong mô hình Markov ẩn) Mẫu có độ tương đồng cao nhất là kết quả của quá trình nhận dạng
Quá trình huấn luyện mô hình, hệ thống dùng các vector đặc trưng được đưa vào để ước lượng, tính toán các tham số cho các mẫu tham chiếu Một mẫu tham chiếu chính là bản mẫu dùng để so sánh và nhận dạng, các mẫu tham chiếu này
mô phỏng cho một từ, một âm tiết, hoặc một âm vị Mô hình âm thanh thể hiện
sự tương ứng giữa các giá trị đặc trưng giọng nói và âm vị (các nguyên âm và
Trang 13phụ âm riêng lẻ), trong khi mô hình ngôn ngữ thể hiện khả năng một hình vị (morpheme) sẽ đi trước hoặc theo sau một hình vị khác
Hình 1.1: Mô hình bài toán nhận dạng tiếng nói
Độ chính xác của nhận dạng giọng nói phụ thuộc vào các điều kiện mà các
mô hình nêu trên được huấn luyện về mức độ gần với môi trường đầu vào thực
tế Nói cách khác, điều quan trọng là phản ánh các đặc trưng của người dùng thực tế khi huấn luyện mô hình âm thanh Mặt khác, nó là cần thiết để bao gồm một tiếng âm lớn để nhận ra một loạt các lời nói khi huấn luyện mô hình ngôn ngữ Vì vậy, xây dựng một mô hình ngôn ngữ với một vốn từ vựng lớn đòi hỏi phải huấn luyện với một bộ dữ liệu văn bản lớn
Các tác giả đã xây dựng một mô hình ngôn ngữ với một vốn từ vựng vài trăm nghìn từ và xác minh rằng vốn từ vựng lớn cải thiện hiệu suất nhận dạng Khi xây dựng mô hình ngôn ngữ này, một bộ dữ liệu văn bản lớn được thiết lập với sự khác biệt của các biểu thức được sử dụng, nhưng cấu trúc nó chính xác được như là ngôn ngữ sẽ là một vấn đề khó Do đó, chúng ta tăng độ chính xác bằng cách sử dụng các quy trình như tự động kiểm tra dữ liệu văn bản, tối ưu hóa ranh giới cho phân tích hình vị và gắn các phát âm vào các hình vị
Các chương trình nhận dạng tiếng nói tự động hiện nay khá nhiều và hết sức
đa dạng Tuy nhiên, chúng ta cũng có thể dựa vào một số đặc điểm để phân chúng thành một số dạng chủ yếu như:
- Nhận dạng các từ phát âm rời rạc/liên tục:
Trong các chương trình nhận dạng các từ phát âm rời rạc yêu cầu người nói phải dừng một khoảng trước khi nói từ tiếp theo Còn hệ thống nhận dạng các từ phát âm liên tục không yêu cầu điều kiện này
Trang 14- Nhận dạng tiếng nói độc lập/phụ thuộc người nói:
Đối với hệ thống nhận dạng phụ thuộc người nói đòi hỏi tiếng người nói phải
có trong cơ sở dữ liệu của hệ thống còn hệ thống nhận dạng không phụ thuộc người nói thì người nói không nhất thiết phải có mẫu trước khi nhận dạng trong
cơ sở dữ liệu
- Nhận dạng với từ điển cỡ nhỏ/vừa/lớn:
Hiệu năng của một hệ thống nhận dạng với từ điển cỡ nhỏ thường cao hơn hiệu năng của các hệ thống nhận dạng có từ điển cỡ vừa và lớn
- Nhận dạng trong môi trường nhiễu cao/thấp:
Hiệu năng của các hệ thống nhận dạng không nhiễu sẽ cao hơn hiệu năng của các hệ thống nhận dạng có nhiễu Tín hiệu tiếng nói sau khi được số hóa sẽ phân thành các khung có độ dài khoảng từ 10ms đến 45ms qua bước phân tích và xác định các đặc tính sẽ cho ta một dãy các vector đặc trưng của tiếng nói Các vector này sau đó sẽ được sử dụng để tìm kiếm các từ giống nhất trong từ điển dựa trên một số điều kiện ràng buộc nào đó về mặt âm thanh, ngữ nghĩa, từ vựng…
Do tính chất của tiếng nói phụ thuộc vào nhiều yếu tố nên việc thu nhận, phân tích các đặc trưng của tiếng nói là không dễ dàng Ở đây, chúng ta có thể nêu ra một số yếu tố khó khăn cho bài toán nhận dạng tiếng nói:
- Khi phát âm, người nói thường nói nhanh chậm khác nhau
- Các từ được nói thường dài ngắn khác nhau
- Một người cùng nói một từ nhưng ở hai lần phát âm khác nhau thì cho kết quả phân tích khác nhau
- Mỗi người có một chất giọng riêng được thể hiện thông qua độ cao của âm,
độ to của âm, cường độ âm và âm sắc
- Những yếu tố như nhiễu của môi trường, nhiễu của thiết bị thu…
1.1.2 Một số phương pháp nhận dạng tiếng nói
Hiện nay có ba phương pháp chủ yếu được sử dụng trong nhận dạng tiếng nói, đó là: Phương pháp âm học - ngữ âm học, phương pháp nhận dạng mẫu và phương pháp ứng dụng trí tuệ nhân tạo
(a) Phương pháp âm học ngữ âm học:
Hướng tiếp cận âm học và ngữ âm học dựa trên lý thuyết về âm học-ngữ âm học Theo lý thuyết này thì trong bất kỳ một ngôn ngữ nào cũng luôn tồn tại một
số hữu hạn các đơn vị ngữ âm phân biệt và những đơn vị ngữ âm đó được đặc
Trang 15trưng bởi các thuộc tính vốn có trong tín hiệu tiếng nói, hoặc trong phổ của nó thông qua thời gian Nguyên lý hoạt động của hệ thống này như sau:
Bước 1) Tín hiệu tiếng nói sau khi số hoá được đưa qua một bộ “đo” các đặc tính của tiếng nói, mục đích là nhằm biểu diễn xấp xỉ các đặc tính của tiếng nói thay đổi theo thời gian Bước này là cần thiết cho hầu hết các hệ thống nhận dạng theo các hướng tiếp cận khác nhau
Bước 2) Là bước tách các đặc tính của tiếng nói nhằm biến đổi các số đo phổ tín hiệu thành một tập các đặc trưng mô tả các đặc tính âm học của các đơn vị ngữ âm khác nhau Các đặc trưng đó có thể là: Tính chất âm mũi, âm xát, vị trí các formant…
Bước 3) Là bước phân đoạn và gán nhãn Ở bước này hệ thống nhận dạng cố gắng tìm các vùng âm thanh ổn định và gán cho mỗi vùng này một nhãn phù hợp với đặc tính của đơn vị ngữ âm Đối với một hệ thống nhận dạng theo hướng âm học ngữ âm học thì bước này là tâm điểm và khó thực hiên nhất Do đó có rất nhiều chiến lược đã được sử dụng để giới hạn phạm vi của các điểm phân đoạn
và xác xuất gán nhãn
Bước 4) Từ các khối ngữ âm thu được sau bước phân đoạn và gán nhãn, người ta dựa vào một số nguyên tắc lựa chọn để kết hợp các khối ngữ âm này thành các từ, câu nhận dạng
Có rất nhiều vấn đề đối với một hệ thống nhận dạng tiếng nói theo hướng âm học - ngữ âm học những vấn đề này bằng nhiều cách khác nhau nó ảnh hưởng tới hiệu quả của một hệ thống nhận dạng Những vấn đề đó là:
- Cần có sự hiểu biết về các đặc tính âm học của các đơn vị ngữ âm Sự hiểu biết này không thể đầy đủ cho tất cả nhưng đối với một số trường hợp đơn giản thì có thể cho kết quả tốt
- Sự chọn lựa các đặc trưng dựa của tiếng nói hầu hết tùy thuộc vào một khía cạnh cụ thể mà ta quan tâm Chúng được chọn theo trực giác không tối ưu và đầy đủ ý nghĩa
- Việc thiết kế của các hệ thống phân lớp âm thanh cũng không tối ưu và hầu hết nó đều dựa trên cây nhị phân quyết định… Không có một thủ tục tự động lựa chọn ngưỡng chính xác để làm căn cứ cho việc gán nhãn Trên thực tế không có một phương pháp lý tưởng để gán nhãn cho tập huấn luyện Từ đó, hướng tiếp cận âm học - ngữ âm học muốn áp dụng được vào thực tế cần phải có thêm nhiều nghiên cứu nữa
(b) Phương pháp nhận dạng mẫu
Trang 16Phương pháp nhận dạng mẫu sử dụng trực tiếp mẫu tiếng nói mà không cần phải xác định các đặc trưng hay phân đoạn một cách rõ ràng Trong hầu hết các
hệ thống, nhận dạng mẫu bao gồm hai bước
Bước 1) Là bước huấn luyện Ở bước này dựa trên nhiều phiên bản khác nhau của mẫu cần nhận dạng, hệ thống tạo ra các mẫu tham chiếu dùng để so sánh với mẫu cần nhận dạng ở bước sau
Bước 2) Là bước nhận dạng Ở bước này mẫu cần nhận dạng được so sánh với các mẫu tham chiếu để xác định xem nó “giống” mẫu tham chiếu nào nhất Mẫu tham chiếu giống nó nhất chính là kết quả nhận dạng
Tư tưởng của phương pháp này là nếu như có đủ các phiên bản khác nhau của mẫu cần nhận dạng thì thông qua bước huấn luyện hệ thống có thể xác định một cách chính các đặc trưng của mẫu Việc xác định các đặc trưng thông qua bước huấn luyện được gọi là phân lớp mẫu Hiện nay, có hai phương pháp nhận dạng mẫu được sử dụng rộng rãi đó là mô hình Markov ẩn và mô hình sử dụng mạng nơron Sơ đồ khối của một hệ thống nhận dạng mẫu như sau:
Hình 1.2: Cấu trúc hệ thống nhận dạng tiếng nói theo mẫu
Những bước cần thực hiện đối với một hệ thống nhận dạng mẫu là:
- Trích chọn các đặc trưng: Ở bước này dựa trên một số biện pháp phân tích
để xác định các đặc trưng của các mẫu Đối với các hệ thống nhận dạng tiếng nói
có hai phương pháp cơ bản là phương pháp phân tích hệ số phổ theo thang độ Mel (MFCC) và phương pháp phân tích mã hóa dự đoán tuyến tính (LPC)
- Huấn luyện mẫu: Ở bước này, hệ thống dựa trên các đặc trưng của các mẫu trong cùng một lớp được tạo ra ở bước trước để tạo nên các mẫu tham chiếu của
hệ thống Ví dụ trong hệ thống nhận dạng từ, để xây dựng nên một từ tham chiếu chúng ta phải thu từ đó lặp đi lặp lại nhiều lần, sau đó trích chọn các đặc trưng của những từ này nhằm tạo một từ tham chiếu cho hệ thống
Trang 17- Phân lớp mẫu: Trong bước này, mẫu cần nhận dạng được so sánh với các mẫu tham chiếu Ở đây, cần một thủ tục để tính khoảng cách cục bộ, và quy chuẩn thời gian giữa các mẫu
- Quyết định logic: Sau bước phân lớp mẫu ta có được điểm đánh giá sự
“giống” nhau giữa mẫu cần nhận dạng và mẫu tham chiếu Những thông số điểm này sẽ được sử dụng để đưa ra quyết định là mẫu nào “giống” với mẫu cần nhận dạng nhất
Đặc điểm của một hệ thống nhận dạng mẫu:
- Hiệu năng của hệ thống rất nhạy cảm với số mẫu dữ liệu có trong tập huấn luyện Thông thường, khi mà số mẫu có trong tập huấn luyện càng nhiều thì hiệu năng nhận của hệ thống càng cao
- Mẫu tham chiếu rất nhạy cảm với môi trường thu âm và đặc tính của đường truyền do đặc tính phổ của tiếng nói chịu tác động của đường truyền và nhiễu nền
- Không cần có những hiểu biết đặc biệt về ngôn ngữ chính vì vậy hệ thống này ít phụ thuộc vào kích thước từ điển, cú pháp và ngữ nghĩa
- Khối lượng tính toán trong thủ tục huấn luyện hoặc nhận dạng tỷ lệ tuyến tính với số mẫu dùng huấn luyện hoặc nhận dạng
(c) Phương pháp ứng dụng trí tuệ nhân tạo
Phương pháp này là sự lai tạo của hai phương pháp trên với mục đích khai thác tối đa ưu điểm của từng phương pháp Phương pháp này điều chỉnh thủ tục nhận dạng theo cách mà con người sử dụng trí tuệ của mình trong việc quan sát, phân tích và cuối cùng đưa ra một quyết định dựa trên các thông số đặc trưng về
âm học Những kỹ thuật thường được sử dụng cùng với các phương pháp này là:
Sử dụng hệ chuyên gia để phân đoạn và gán nhãn do đó bước chủ yếu và khó nhất được thực hiện đơn giản hơn so với một hệ thống nhận dạng chỉ dựa vào hướng tiếp cận âm học - ngữ âm học thuần tuý
Sử dụng mạng nơron để học mối quan hệ giữa các đơn vị ngữ âm và tất cả các đầu vào đã nhận biết (bao gồm âm học, ngôn ngữ học, cú pháp, ngữ nghĩa…), sau đó sử dụng mạng này để nhận dạng
Mục đích của việc sử dụng hệ chuyên gia là nhằm tận dụng các nguồn kiến thức của con người vào hệ thống nhận dạng Các nguồn kiến thức đó bao gồm:
- Kiến thức về âm học: Nhằm để phân tích phổ và xác định đặc tính âm học của các mẫu tiếng nói đầu vào
Trang 18- Kiến thức về từ vựng: Sử dụng để kết hợp các khối ngữ âm thành các từ cần nhận dạng
mã từ vựng, mô hình ngôn ngữ) theo một tiến trình tuần tự nhằm giảm việc xử lý trong mỗi tầng xuống mức nhỏ nhất có thể Sơ đồ khối của phương pháp này như vẽ sau
Hình 1.3: Tích hợp tri thức trong nhận dạng tiếng nói
1.1.3 Ứng dụng của nhận dạng tiếng nói
Những ảnh hưởng mạnh mẽ của nhận dạng tiếng nói phụ thuộc vào việc chúng ta có thể tích hợp đầy đủ các công nghệ với các ứng dụng hay không Việc tích hợp hiệu quả lời nói vào ứng dụng thường phụ thuộc vào bản chất của
Trang 19giao diện người dùng và ứng dụng Khi đề cập đến một số nguyên tắc chung và các nguyên tắc trong việc phát triển các ứng dụng ngôn ngữ nói, chúng ta phải quan tâm và xem xét kỹ lưỡng việc thiết kế giao diện người dùng
Giao diện người dùng được thiết kế tốt đòi hỏi phải phân tích cẩn thận nhóm người dùng cụ thể của ứng dụng và cung cấp một ứng dụng hoạt động hiệu quả Như nguyên tắc chung, nhu cầu cần thiết để đảm bảo rằng giao diện phải phù hợp với cách người dùng muốn thực hiện một nhiệm vụ Một đòi hỏi khác là phải sử dụng phương thức tương tác thích hợp nhất vào thời điểm thích hợp để giúp người dùng đạt được mục tiêu của mình trên các ứng dụng Một thách thức duy nhất trong các ứng dụng có áp dụng cơ chế tương tác bằng tiếng nói là nhận dạng tiếng nói (cũng như hiểu biết nhu cầu người dùng), điều này rất khó để đạt
độ hoàn hảo Ngoài ra, các lệnh được nói bởi người dùng có thể không rõ ràng nên một chiến lược đối thoại là cần thiết để làm rõ mục tiêu của người dùng Ở đây, có thể có những sai lầm mà chúng ta phải đối phó Điều quan trọng là các ứng dụng sử dụng các kỹ thuật xử lý lỗi tương tác cần thiết để giảm thiểu tác động của các lỗi này Do đó, các nhà phát triển ứng dụng nên hiểu đầy đủ các điểm mạnh và điểm yếu của công nghệ xử lý tiếng nói và xác định nơi thích hợp
để ứngd dụng nhận dạng tiếng nói một cách hiệu quả
Có ba loại ứng dụng nhận dạng tiếng nói thông dụng:
(1) Trung tâm cuộc gọi dựa trên đám mây hay phản hồi tương tác bằng tiếng nói (Interactive Voice Response - IVR) Ở đây bao gồm các ứng dụng được sử dụng rộng rãi từ quyền truy cập thông tin của Tellme qua điện thoại tới nhắn tin hợp nhất của Microsoft Exchange;
(2) Đọc chính tả, ra lệnh và điều khiển dựa trên máy tính: Có một số ứng dụng đọc chính tả trên máy tính Nó là một công cụ hữu dụng cho các tiện ích trợ năng
(3) Điều khiển lệnh dựa trên thiết bị nhúng: Có một loạt các thiết bị không có bàn phím hoặc chuột như máy tính thông thường và ứng dụng giao diện đồ họa theo cách của máy tính truyền thống không thể được mở rộng trực tiếp Điện thoại di động và tình huống ô tô cũng rất phù hợp cho các ứng dụng tiếng nói
Do kích thước vật lý của thiết bị và các ràng buộc hạn chế của mắt nhìn và tương tác bằng tay trên thiết bị, mô hình tương tác ứng dụng theo giao diện đồ họa truyền thống đòi hỏi một sự thay đổi đáng kể
Giao diện bằng tiếng nói có khả năng cung cấp một mô hình tương tác nhất quán và thống nhất trong tình huống này Sự gia tăng tính di động của xã hội chúng ta đòi hỏi phải tiếp cận thông tin và dịch vụ bất cứ lúc nào và bất cứ nơi
Trang 20đâu Cả ứng dụng hỗ trợ tiếng nói dựa trên đám mây và ứng dụng độc lập đều có thể nâng cao trải nghiệm người dùng và tối ưu hóa tiết kiệm chi phí cho thực tiễn ứng dụng
1.2 Quy trình và một số kỹ thuật cho bài toán nhận dạng tiếng nói
Các hệ thống nhận dạng tiếng nói hiện đại đã được xây dựng dựa trên các nguyên lý thống kê, tiên phong bởi công trình của Baker (1975) và Jelinek (1976) Một mô hình toán hoặc một dạng mô hình thống kê thường được sử dụng để hình thức hoá bài toán nhận dạng tiếng nói
Như đã nêu ở phần trên, một hệ thống nhận dạng tiếng nói điển hình bao gồm các thành phần cơ bản như trong Hình 1.4 Giao diện ứng dụng với bộ giải
mã để có được kết quả nhận dạng có thể được sử dụng để thích ứng với các thành phần khác trong hệ thống Các mô hình âm thanh bao gồm sự hiểu biết của
hệ thống về những gì có thể tạo thành từ, những từ nào có khả năng xảy ra đồng thời, và theo thứ tự nào Các ngữ nghĩa và chức năng liên quan đến hoạt động
mà người dùng có thể muốn thực hiện cũng có thể cần thiết cho mô hình ngôn ngữ Có tồn tại sự không chắc chắn trong các lĩnh vực này, liên quan đến đặc điểm của người nói, kiểu tiếng nói và tỷ lệ, nhận dạng các phân đoạn tiếng nói
cơ bản, từ có thể, từ giống nhau, từ không biết, biến thể ngữ pháp, nhiễu tiếng
ồn, dấu không bắt buộc và điểm tin cậy của kết quả Một hệ thống nhận dạng tiếng nói thành công phải xem xét xử lý với tất cả những điều không chắc chắn này Sự không chắc chắn về âm thanh của các điểm trọng âm và cách nói khác nhau của từng người nói được kết hợp bởi từ vựng và sự phức tạp về ngữ pháp
và các biến thể của ngôn ngữ nói, tất cả đều được thể hiện trong mô hình ngôn ngữ
Hình 1.4: Kiến trúc cơ bản của hệ thống nhận dạng tiếng nói
Trang 21Tín hiệu lời nói được xử lý trong mô-đun xử lý tín hiệu để trích xuất các vectơ đặc trưng nổi bật cho bộ giải mã Bộ giải mã sử dụng cả mô hình âm thanh
và mô hình ngôn ngữ để tạo chuỗi từ có xác suất tối đa đối với các vectơ tính năng đầu vào Nó cũng có thể cung cấp thông tin cần thiết cho thành phần thích ứng để sửa đổi hoặc là các mô hình âm thanh hoặc mô hình ngôn ngữ để có thể đạt được hiệu suất cao
Việc mô hình hóa âm thanh và ngôn ngữ được đề cập ở trên có thể được mô
tả ngắn gọn bằng phương trình cơ bản của nhận dạng tiếng nói dựa trên thống kê:
𝑾
̂ = 𝑎𝑟𝑔𝑚𝑎𝑥𝑤 𝑃(𝑾|𝑨) = 𝑎𝑟𝑔𝑚𝑎𝑥𝑤 𝑃(𝑾)𝑃(𝑨|𝑾)𝑃(𝑨) (1.1)
Trong đó, 𝑾̂ là kết quả văn bản nhận dạng được, 𝑾 là văn bản của lời nói ban đầu Chuỗi véc-tơ đặc trưng là 𝑿 = 𝑋1𝑋2… 𝑋𝑛 Mục tiêu của nhận dạng tiếng nói là tìm ra chuỗi từ tương ứng 𝑾̂ = 𝑤1𝑤2… 𝑤𝑚 sao cho tối đa hoá xác suất sau 𝑃(𝑾|𝑿) được biểu diễn ở công thức trên Vì quan sát ứng với chuỗi véc-tơ đặc trưng 𝑿 cố định, tối đa hóa xác suất này tương đương với việc tối đa hóa tử số:
𝑾
Với 𝑃(𝑾) và 𝑃(𝑿|𝑾) tạo thành các đại lượng xác suất được tính toán bởi
mô hình ngôn ngữ và các thành phần mô hình hóa âm thanh tương ứng của các
hệ thống nhận dạng tiếng nói
Thách thức thực tế là làm thế nào để xây dựng các mô hình âm thanh chính xác, 𝑃(𝑿|𝑾), và các mô hình ngôn ngữ, 𝑃(𝑾), sao cho thực sự có thể phản ánh ngôn ngữ nói được công nhận Đối với nhận dạng tiếng nói từ vựng lớn, chúng
ta cần phân tách một từ thành một chuỗi từ (thường được gọi là mô hình phát âm), vì có một số lượng lớn các từ Do đó, 𝑃(𝑿|𝑾) liên quan chặt chẽ đến mô hình ngữ âm 𝑃(𝑿|𝑾) nên tính đến các biến thể của người nói, các biến thể phát
âm, các biến thể môi trường, và các biến thể ngữ âm phụ thuộc vào ngữ cảnh Cuối cùng, nhưng không kém phần quan trọng, bất kỳ mô hình âm thanh hoặc
mô hình ngôn ngữ dưới dạng tĩnh nào đều khó đáp ứng nhu cầu của các ứng dụng thực tế Vì vậy, điều quan trọng là tự động điều chỉnh cả 𝑃(𝑾) và 𝑃(𝑿|𝑾)
để tối đa hóa 𝑃(𝑾|𝑿) trong khi sử dụng các hệ thống ngôn ngữ nói Quá trình giải mã tìm kiếm chuỗi từ phù hợp nhất, 𝑾, để phù hợp với tín hiệu tiếng nói đầu vào, 𝑿, trong hệ thống nhận dạng tiếng nói là có nhiều vấn đề nhận dạng mẫu cần được giải quyết, khi đối mặt thực tế là vô hạn các mẫu từ để tìm kiếm nhận dạng tiếng nói liên tục
Trang 22Tiếp theo, chúng ta sẽ đề cập chi tiết về hai mô hình cơ bản trong nhận dạng tiếng nói đó: mô hình âm thanh và mô hình ngôn ngữ
1.2.1 Mô hình âm thanh
Độ chính xác của nhận dạng tiếng nói tự động vẫn là một trong những thách thức nghiên cứu quan trọng nhất hiện nay sau nhiều năm nghiên cứu và phát triển Có một số yếu tố nổi bật nhằm xác định độ chính xác của hệ thống nhận dạng tiếng nói Đáng chú ý nhất phải kể đến là các biến thể ngữ cảnh, các biến thể của người nói và các biến thể môi trường Mô hình âm thanh đóng một vai trò quan trọng để cải thiện độ chính xác Có thể thấy rằng nó là phần trung tâm của bất kỳ hệ thống nhận dạng tiếng nói nào
Mô hình hóa âm thanh của lời nói thường đề cập đến quá trình thiết lập các biểu diễn thống kê cho các chuỗi véc-tơ đặc trưng được tính toán từ dạng sóng của lời nói Mô hình Markov ẩn (HMM) là một trong những loại mô hình âm thanh phổ biến nhất Các mô hình âm thanh khác bao gồm các mô hình phân đoạn, các mô hình siêu phân khúc bao gồm các mô hình động ẩn, các mạng thần kinh, các mô hình entropy cực đại và trường ngẫu nhiên có điều kiện [?]
Mô hình âm thanh cũng bao gồm “mô hình phát âm”, mô tả cách trình tự hoặc đa chuỗi các đơn vị phát biểu cơ bản được sử dụng để biểu diễn các đơn vị lời nói lớn hơn như các từ hoặc cụm từ là đối tượng nhận dạng tiếng nói Mô hình hóa âm thanh cũng có thể bao gồm việc sử dụng thông tin phản hồi từ trình nhận dạng để định hình lại vectơ tính năng của lời nói trong việc đạt được độ mạnh tiếng ồn trong nhận dạng tiếng nói
Trong nhận dạng tiếng nói, các thuộc tính thống kê của các dữ kiện âm thanh được mô tả bằng mô hình âm thanh Điểm số khả năng 𝑃(𝑿|𝑾) trong Công thức (1.1) được tính toán dựa trên mô hình âm thanh Trong hệ thống nhận dạng tiếng nói theo kiểu phân lập từ sẽ có từ vựng dạng 𝑁 − 𝑤𝑜𝑟𝑑, giả sử rằng thành phần
mô hình âm thanh tương ứng với từ thứ 𝑖, 𝑊𝑖 là 𝜆𝑖, sau đó 𝑃(𝑿|𝑊𝒊) = 𝑃(𝑿|𝜆𝑖) Trong nhận dạng tiếng nói dựa trên HMM, giả định rằng chuỗi các vectơ quan sát tương ứng với mỗi từ được tạo ra bởi một chuỗi Markov Như trong Hình 1.5, HMM là một máy hữu hạn trạng thái, thực hiện thay đổi trạng thái một lần mỗi khung thời gian, và tại mỗi khung thời gian 𝑡 khi một trạng thái 𝑗 được nhập vào, một vectơ quan sát 𝑥𝑡 được sinh ra từ phân bố xác suất phát xạ 𝑏𝑗(𝑥𝑡) Thuộc tính chuyển tiếp từ trạng thái 𝑖 sang trạng thái 𝑗 được xác định bằng xác suất chuyển tiếp 𝑎𝑖𝑗 Hơn nữa, hai trạng thái không phát xạ đặc biệt thường được
sử dụng trong một HMM bao gồm một trạng thái vào là trạng thái đạt được trước khi bắt đầu quá trình sinh tạo vectơ lời nói, và một trạng thái ra là trạng thái
Trang 23được đạt khi kết thúc quá trình sinh Cả hai trạng thái đều chỉ đạt được một lần
Vì chúng không sinh ra bất kỳ quan sát nào, không trạng thái nào trong số chúng
có xác suất trù mật
Trong HMM, xác suất chuyển tiếp 𝑎𝑖𝑗 là xác suất ứng với trạng thái sau là 𝑗
và trạng thái trước là 𝑖, tức là, 𝑎𝑖𝑗 = Pr (𝑠(𝑡) = 𝑗|𝑠(𝑡 − 1) = 𝑖), trong đó 𝑠(𝑡) là chỉ số trạng thái tại thời điểm 𝑡 Đối với một HMM N-trạng thái, chúng ta có,
∑𝑁 𝑎𝑖𝑗
Mật độ xác suất phát xạ 𝑏𝑗(𝑥𝑡) mô tả sự phân bố của các vectơ quan sát ở trạng thái 𝑗 Trong mô hình HMM liên tục trù mật (CDHMM), mật độ xác suất phát xạ thường được biểu diễn bằng một trù mật hỗn hợp Gaussian:
dạng Gaussian đa biến 𝐷 là độ lớn (số chiều) của véc-tơ đặc trưng 𝑥
𝑐𝑗𝑚, 𝜇𝑗𝑚 𝑣à Σ𝑗𝑚 tương ứng là các trọng số, trung bình và hiệp phương sai của thành phần Gaussian thứ 𝑚 của phân phối hỗn hợp ở trạng thái thứ 𝑗
Hình 1.5: Minh hoạ mô hình HMM năm trạng thái từ trái sang phải
Trong tiếng nói nói chung, mỗi phân phối phát xạ đặc trưng cho một sự kiện
âm thanh, và sự phân bố phải đủ cụ thể để cho phép phân biệt giữa các âm thanh khác nhau cũng như đủ mạnh để giải thích sự thay đổi trong lời nói tự nhiên Nhiều phương pháp huấn luyện HMM được phát triển để ước tính giá trị của các xác suất chuyển tiếp trạng thái và các thông số về mật độ xác suất phát ra tại mỗi trạng thái của HMM Trong những năm đầu của các ứng dụng HMM để nhận dạng tiếng nói, thuật toán EM đã dựa trên nguyên tắc hợp lý cực đại như được phát triển bởi một số nhà nghiên cứu (Baum-1972, Baker-1975, Jelinek-1976) Thuật toán này thường được sử dụng như một phương pháp huấn luyện từ
dữ liệu Hiệu quả cao của thuật toán EM là một lợi thế quan trọng liên quan đến việc sử dụng HMM cho mô hình âm thanh trong nhận dạng tiếng nói
Cho {𝑎𝑖𝑗} và 𝑏𝑗(𝑥), với 𝑖 = 1,2, … , 𝑁 và 𝑗 = 1,2, … , 𝑁, sự hợp lý của một dãy quan sát 𝑋 được tính như sau:
Trang 24𝑃(𝑋|𝜆) = ∑ 𝑃(𝑋, 𝑠|𝜆)𝑠 (1.5)
trong đó 𝑠 = 𝑠1, 𝑠2, … , 𝑠𝑇 là tuần tự các trạng thái được sinh bởi véc-tơ quan sát 𝑋 = 𝑥1, 𝑥2, … , 𝑥𝑇 trên mô hình HMM, xác suất hợp của 𝑋 và trạng thái 𝑠 khi cho 𝜆 là tích của xác suất chuyển và xác suất phát xạ
𝑃(𝑋, 𝑠|𝜆) = ∏𝑇 𝑏𝑠𝑡(𝑥𝑡)𝑎𝑠𝑡𝑠𝑡+1
trong đó 𝑠𝑇+1 là trạng thái kết thúc không phát xạ
Trong thực tế, Công thức (1.3) có thể được tính toán xấp xỉ như là xác suất hợp của thứ tự véc-tơ quan sát 𝑋 với dãy trạng thái có thể, đó là,
Mặc dù không thể đánh giá phương trình của Công thức 1.3 và 1.4 trực tiếp
do số lượng lớn các thứ tự chuỗi trạng thái có thể khi 𝑇 lớn, tồn tại các thuật toán
đệ quy hiệu quả để tính toán cả hai công thức này Đây là một lợi thế tính toán quan trọng được phát triển và chỉ ra cho mô hình HMMs để áp dụng cho mô hình âm thanh trong nhận dạng tiếng nói
1.2.2 Mô hình ngôn ngữ
Vai trò của mô hình hóa ngôn ngữ trong nhận dạng tiếng nói là cung cấp giá trị 𝑃(𝑾) trong phương trình cơ bản của nhận dạng tiếng nói ở Công thức 1.2 Ngữ pháp (grammar) là một dạng của mô hình ngôn ngữ, nó là một đặc tả hình thức của cấu trúc có thể của ngôn ngữ Thông thường, ngữ pháp tất định đưa ra xác suất của nó nếu cấu trúc là có thể hoặc bằng không Kỹ thuật phân tích cú pháp là phương pháp phân tích câu để xem cấu trúc của nó có tương thích với ngữ pháp hay không Với sự có mặt của ngữ liệu mà đã có cấu trúc của chúng, chúng ta có thể khái quát hóa ngữ pháp hình thức bao gồm các xác suất chính xác Hơn nữa, mối quan hệ xác suất giữa một dãy các từ có thể được bắt nguồn trực tiếp và mô hình hóa từ ngữ liệu với mô hình ngôn ngữ ngẫu nhiên, chẳng hạn như N-gram, tránh sự cần thiết phải tạo ra các ngữ pháp chính thức bao phủ rộng
Một loại mô hình ngôn ngữ phổ biến khác được gọi là mô hình ngôn ngữ ngẫu nhiên, đóng vai trò quan trọng trong việc xây dựng một hệ thống ngôn ngữ nói Như đã trình bày ở trên, một mô hình ngôn ngữ có thể được xây dựng như một phân bố xác suất 𝑃(𝑾) trên chuỗi các từ 𝑾 phản ánh tần suất một chuỗi 𝑾 xuất hiện dưới dạng một câu Ví dụ, đối với một mô hình ngôn ngữ mô tả ngôn ngữ nói, chúng ta có thể có 𝑃("𝑥𝑖𝑛 𝑐ℎà𝑜") = 0.01 có nghĩa là sẽ có một trong một trăm câu của bất kỳ một người nói là chữ "𝑥𝑖𝑛 𝑐ℎà𝑜" Mặt khác, chúng ta sẽ
có 𝑃("𝑚è𝑜 𝑛𝑢ố𝑡 𝑡ươ𝑖 𝑐á 𝑠ấ𝑢") = 0 có nghĩa là hầu như không ai sẽ nói ra một chuỗi kỳ lạ như vậy 𝑃(𝑾) có thể bị phân tách thành,
Trang 25sẽ phải được ước tính Trong thực tế, các xác suất 𝑃(𝑤𝑖|𝑤1, 𝑤2, … , 𝑤𝑖−1) không thể ước tính thậm chí cho cả các giá trị cụ thể của 𝑖, vì hầu hết các từ lịch sử
𝑤1, 𝑤2, … , 𝑤𝑖−1 là duy nhất hoặc đã xảy ra chỉ một vài lần Một giải pháp thực tế cho vấn đề ở trên là giả sử rằng 𝑃(𝑤𝑖|𝑤1, 𝑤2, … , 𝑤𝑖−1) chỉ phụ thuộc vào một số lớp tương đương Lớp tương đương có thể đơn giản dựa trên một số từ trước đó
phụ thuộc vào hai từ trước, chúng ta có tam giác-gram (trigram): 𝑃(𝑤𝑖|𝑤𝑖−2, 𝑤𝑖−1) Tương tự, chúng ta có thể có mô hình ngôn ngữ một-gram (unigram): 𝑃(𝑤𝑖), hoặc mô hình ngôn ngữ hai-gram (bigram): 𝑃(𝑤𝑖|𝑤𝑖−1) Mô hình ngôn ngữ trigram là đặc biệt mạnh mẽ vì hầu hết các từ có sự phụ thuộc mạnh mẽ vào hai từ trước đó và nó có thể được ước tính khá hợp lý với một kho
dữ liệu cho trước
Trong các mô hình ngôn ngữ bigram, chúng ta có thể xấp xỉ xác suất của một
từ chỉ phụ thuộc vào từ ngay trước đó Để làm cho 𝑃(𝑤𝑖|𝑤𝑖−1) có ý nghĩa đối với 𝑖 = 1, chúng ta sẽ đệm phần đầu của câu với một mã phân biệt < 𝑠 >; tức là, chúng ta giả vờ 𝑤0 =< 𝑠 > Ngoài ra, để tạo tổng các xác suất của tất cả các chuỗi bằng 1, cần đặt một mã phân biệt ở cuối câu Ví dụ, để tính 𝑃("𝐻𝑜𝑎 𝑦ê𝑢 𝑚è𝑜"), chúng ta sẽ có,
𝑃("Hoa yêu mèo") =
𝑃("Hoa"|<s>) 𝑃("yêu"|"Hoa") 𝑃("mèo"|"yêu") 𝑃(<s>|"mèo")
Để ước lượng 𝑃(𝑤𝑖|𝑤𝑖−1), xác suất xuất hiện từ 𝑤𝑖 khi có từ cuối cùng là
𝑤𝑖−1, chúng ta chỉ cần đếm tần suất chuỗi 𝑃(𝑤𝑖|𝑤𝑖−1) xuất hiện trong một số văn bản và chuẩn hóa số đếm theo số lần 𝑤𝑖−1 xảy ra
Nói chung, đối với mô hình trigram, xác suất của một từ phụ thuộc vào hai từ trước đó Trigram có thể được ước tính bằng cách quan sát tần số hoặc số lượng của cặp từ 𝐶(𝑤𝑖−2, 𝑤𝑖−1) và bộ ba 𝐶(𝑤𝑖−2, 𝑤𝑖−1, 𝑤𝑖) như sau:
𝑃(𝑤𝑖|𝑤𝑖−2, 𝑤𝑖−1) = 𝐶(𝑤𝑖−2 ,𝑤 𝑖−1 ,𝑤 𝑖 )
Trang 26Hệ thống ngữ liệu để xây dựng mô hình này được gọi là một kho dữ liệu huấn luyện Đối với các mô hình n-gram, lượng dữ liệu huấn luyện được sử dụng thường là hàng triệu từ Ước tính của Công thức 1.9 dựa trên nguyên tắc tối đa hoá, bởi việc thiết lập xác suất này tạo ra mô hình trigram nhằm xác lập xác suất cao nhất đối với dữ liệu huấn luyện của tất cả các mô hình trigram có thể
Đôi khi chúng ta đề cập đến giá trị 𝑛 của mô hình n-gram như là thứ tự của
nó Xuất phát từ việc phát triển mô hình Markov, chúng ta có mô hình n-gram là trường hợp cá thể Đặc biệt, một mô hình n-gram có thể được hiểu là một mô hình Markov của bậc 𝑛 − 1
Xét ví dụ minh hoạ như sau Dữ liệu huấn luyện bao gồm ba câu “John đọc cuốn sách của cô ấy”, “Tôi đọc một cuốn sách khác”, “John đọc sách của Mulan” Chúng ta tính xác suất 𝑃("𝐽𝑜ℎ𝑛 đọ𝑐 𝑠á𝑐ℎ 𝑘ℎá𝑐") với mô hình bigram tối đa hoá như sau,
𝑃("John"| < 𝑠 >) =𝐶(< 𝑠 >, "𝐽𝑜ℎ𝑛")
𝐶(< 𝑠 >) =
2 3 𝑃("đọc"|"𝐽𝑜ℎ𝑛") =𝐶(John, "đọ𝑐")
𝐶("𝐽𝑜ℎ𝑛") =
2 2 𝑃("sách"|"đọ𝑐") =𝐶("đọc", "𝑠á𝑐ℎ")
𝐶("đọ𝑐") =
1 3 𝑃("khác"|"𝑠á𝑐ℎ") = 𝐶("sách", "𝑘ℎá𝑐")
𝐶("𝑠á𝑐ℎ") =
1 3 𝑃(<s>|"𝑘ℎá𝑐") =𝐶("khác", < 𝑠 >)
𝐶("𝑘ℎá𝑐") =
1 1Những giá trị xác suất trigram này giúp chúng ta ước tính xác suất cho câu trên bằng tích các xác suất thành phần như sau:
Không giống như ngôn ngữ học, ngữ pháp không là một ràng buộc mạnh trong mô hình ngôn ngữ n-gram Mặc dù câu gồm các từ không đúng ngữ pháp nhưng chúng ta vẫn có thể gán cho nó một xác suất cao nếu 𝑛 đủ nhỏ
Một ngôn ngữ có thể được coi là nguồn thông tin, nơi có đầu ra là từ 𝑤𝑖thuộc về từ vựng của ngôn ngữ đó Độ đo phổ biến nhất để đánh giá mô hình ngôn ngữ là tỷ lệ lỗi nhận dạng từ, yêu cầu phải có sự tham gia của hệ thống
Trang 27nhận dạng tiếng nói Ngoài ra, chúng ta có thể đo lường xác suất mà mô hình ngôn ngữ gán để kiểm tra các chuỗi từ mà không liên quan đến các hệ thống nhận dạng tiếng nói Đây là thước đo phái sinh của entropy chéo được gọi là độ phức tạp của bộ thử nghiệm
Cho một mô hình ngôn ngữ với việc gán xác suất 𝑃(𝑾) cho một chuỗi từ 𝑾, chúng ta có thể xác lập một thuật toán nén để mã hóa văn bản 𝑾 bằng cách sử dụng −𝑙𝑜𝑔2𝑃(𝑇) bít Các entropy chéo 𝐻(𝑾) của mô hình
giản là xấp xỉ như sau,
𝐻(𝑾) = 1
trong đó 𝑁𝑊 là độ dài của dòng chữ 𝑾 được đo bằng từ
Độ hỗn tạp 𝑃𝑃(𝑾) của mô hình ngôn ngữ 𝑃(𝑾) được định nghĩa là nghịch đảo của trung bình xác suất được xác định bởi mô hình cho mỗi từ trong tập kiểm thử 𝑾 Đây là một độ đo, liên quan đến entropy chéo, được gọi là độ hỗn tạp của bộ thử nghiệm:
Sự hỗn tạp có thể được hiểu là trung bình hình học của yếu tố phân nhánh của văn bản khi biểu diễn cho mô hình ngôn ngữ Sự hỗn tạp được định nghĩa trong Công thức 1.6 có hai tham số chính: mô hình ngôn ngữ và một chuỗi từ
Sự hỗn tạp của tập kiểm thử đánh giá khả năng khái quát của mô hình ngôn ngữ
Sự hỗn tạp trong tập huấn luyện đo lường sự phù hợp của mô hình ngôn ngữ đối với dữ liệu huấn luyện Nói chung, độ hỗn tạp thấp hơn có liên quan đến hiệu suất nhận dạng tốt hơn Sự hỗn tạp cơ bản chính là thước đo phân nhánh từ có trọng số thống kê trên tập kiểm thử Độ hỗn tạp càng cao thì càng có nhiều nhánh mà trình nhận dạng tiếng nói cần phải xem xét dưới dạng thống kê
1.3 Một số đặc điểm của tiếng nói tiếng Việt
Tiếng Việt là ngôn ngữ chính thức và quốc gia của Việt Nam Nó là ngôn ngữ đầu tiên của phần lớn dân số Việt Nam, cũng như các mối quan hệ ngữ pháp được xác định theo thứ tự từ và các từ chức năng Tiếng Việt là một ngôn ngữ có
âm tiết với sáu âm sắc, rất quan trọng để quyết định ý nghĩa của từ Một sự thay đổi trong thanh điệu có thể dẫn đến sự thay đổi trong ý nghĩa từ, mà có thể rất khác với từ gốc Vì lý do này, các nhà nghiên cứu phương pháp nhận dạng tiếng nói Việt phải đối phó với hai vấn đề cơ bản: khai thác tính năng âm và lựa chọn đơn vị ngữ âm (âm vị hoặc kết hợp âm vị và âm) để xây dựng các mô hình âm thanh
Trang 28Bài toán nhận dạng tiếng nói Việt đang được nghiên cứu và phát triển ứng dụng mạnh mẽ trong những năm gần đây Tương tự các phương pháp xử lý tiếng nói ở các ngôn ngữ khác, chúng ta có thể sử dụng mô hình mạng nơ-ron và mô hình Markov ẩn (HHM) cho nhận dạng tiếng Việt nói Trong đó, các đặc điểm của tiếng Việt bao gồm ngữ âm, thanh điệu và các yếu tố khác cần được phân tích sâu để điều chỉnh các tham số phù hợp trong các mô hình áp dụng Một đặc điểm rất quan trọng của tiếng Việt là tính thanh điệu, nghĩa là tiếng Việt bao gồm một hệ thống sáu thanh điệu khác nhau Một trong những vấn đề quan trọng trong xử lý ngôn ngữ là việc đề cập đến áp dụng các mô hình âm học tiên tiến cũng như ảnh hưởng của trọng số mô hình ngôn ngữ để cho kết quả nhận dạng tiếng Việt nói được tốt hơn
1.3.1 Một số đặc điểm ngữ âm tiếng Việt
Theo [2], đặc điểm dễ thấy là tiếng Việt là ngôn ngữ đơn âm Tiếng Việt hoàn toàn khác với các ngôn ngữ Ấn-Âu, như tiếng Anh và tiếng Pháp là các ngôn ngữ đa âm, biến hình Ngôn ngữ tiếng Việt về mặt ngữ âm là ngôn ngữ đơn
âm tiết (monosyllable - mỗi từ đơn chỉ có một âm tiết), không biến hình (cách đọc, cách ghi âm không thay đổi trong bất cứ tình huống ngữ pháp nào) Mỗi âm tiết tiếng Việt có thể được coi là sự kết hợp của các thành phần khởi đầu, kết thúc và thanh điệu Các thành phần này bao gồm âm đầu, âm đệm, âm chính, âm cuối và thanh điệu
Theo thống kê trong tiếng Việt tổng cộng có 21 thành phần khởi đầu và 155 thành phần kết thúc Tổng số âm tiết phát âm trong tiếng Việt là khoảng 19.000 nhưng chỉ có khoảng 7.000 âm tiết (có và không có âm) được sử dụng trong ngôn ngữ hàng ngày Nhìn về mặt ghi âm: âm tiết tiếng Việt có cấu tạo chung là: phụ âm - vần Ví dụ âm “tin” có phụ âm “t”, vần “in” Phụ âm là một âm vị và
âm vị này liên kết rất lỏng lẻo với phần còn lại của âm tiết (ví dụ hiện tượng nói lái) Vần trong tiếng Việt lại được cấu tạo từ các âm vị nhỏ hơn, trong đó có một
âm vị chính là nguyên âm Ngoài ra, tiếng Việt là ngôn ngữ có thanh điệu Hệ thống thanh điệu gồm 6 thanh: bằng, huyền, sắc, hỏi, ngã, nặng Thanh điệu trong âm tiết là âm vị siêu đoạn tính (thể hiển trên toàn bộ âm tiết) Do đó đặc trưng về thanh điệu thể hiện trong tín hiệu tiếng nói không rõ nét như các thành phần khác của âm tiết Sự khác biệt về cách phát âm tiếng Việt rất rõ rệt theo giới, lứa tuổi và đặc biệt là theo vị trí địa lí (giọng miền Bắc, miền Trung và miền Nam khác nhau rất nhiều)
Sau đây là một số đặc tính âm tiếng Việt:
Trang 29- Âm tiết tiếng Việt có tính độc lập cao: Âm tiết là đơn vị cơ bản trong hệ thống các đơn vị ngôn ngữ Mỗi âm tiết đều có khả năng được thể hiện bởi một
từ không biến hình, hay nói cách khác một âm tiết cũng đồng thời là một hình vị
Về mặt ý nghĩa và ngữ pháp trong tiếng Việt được thể hiện chủ yếu bằng trật tự giữa các từ Như vậy tiếng Việt khác với một số ngôn ngữ khác như tiếng Anh, Pháp, là luôn có ranh giới rõ ràng giữa hai âm tiết
- Âm tiết tiếng Việt có khả năng biểu hiện ý nghĩa: Hầu hết các âm tiết tiếng Việt khi đứng một mình đều có khả năng biểu hiện một ý nghĩa xác định Như vậy âm tiết tiếng Việt ngoài vai trò là một đơn vị ngữ âm nó còn có vai trò về từ vựng và ngữ pháp
- Âm tiết tiếng Việt có cấu trúc chặt chẽ: Tất cả các âm tiết tiếng Việt đều có thể phân tích thành một cấu trúc gồm năm thành phần như Bảng 1.1:
Bảng 1.1: Cấu trúc âm tiết tiếng Việt [?]
Thanh điệu
Âm đệm Âm chính Âm cuối
Ví dụ cấu trúc của âm tiết (từ) “chuyển” có thể được phân tích thành 5 thành phần như sau:
Bảng 1.2: Ví dụ cấu trúc ngữ âm của từ “chuyển”
Thanh điệu (Thanh hỏi) Âm đầu
(Ch)
Vần (uyên) Âm đệm
(u)
Âm chính (yê)
Âm cuối (n)
1.3.2 Âm vị tiếng Việt
Âm vị (phoneme) là đơn vị trừu tượng nhỏ nhất của một ngôn ngữ Mọi âm tiết trong một ngôn ngữ đều được tạo ra bằng tổ hợp của các âm vị Trong nhận dạng tiếng nói từ vựng lớn thì âm vị thường được chọn như là đơn vị của hệ thống nhận dạng với mục đích giảm số lượng đơn vị trong hệ thống Trong một khoảng thời gian ngắn từ 10ms đến 40ms có thể coi tín hiệu âm thanh là ổn định và đây cũng là khoảng thời gian phổ biến cho một âm vị Vì vậy chọn âm vị là đơn vị nhận dạng còn là để giảm ảnh hưởng của sự biến đổi của tín hiệu tiếng nói
Dựa theo cấu trúc của âm tiết tiếng Việt thì hệ thống âm vị của tiếng Việt bao gồm 21 âm đầu, 1 âm đệm, 16 âm chính và 8 âm cuối Các âm vị tiếng Việt theo bản âm vị quốc tế (IPA) và cách thể hiện bằng chữ viết được trình bày ở Bảng 1.3
Trang 30Bảng 1.3: Tập âm vị ngữ âm tiếng Việt [?]
IPA Cách
Viết IPA
Cách Viết IPA
Cách Viết IPA
Cách Viết IPA
Cách Viết IPA
Cách Viết /b/ b /ş/ s /w/ o, u /i/ i, y /u/ u /-p/ p
a (khi đứng trước /-k/, /- ŋ/)
/ↄˇ/
o (khi đứng trước /-k/, /- ŋ/)
˰i/)
/ ươ, ưa
1.3.3 Thanh điệu tiếng Việt
Về mặt hình thức nếu không xét đến sự biến đổi thanh điệu trên các phụ âm dừng ở cuối âm tiết thì tiếng Việt có 6 thanh điệu Bao gồm thanh huyền, ngã, hỏi, sắc, nặng và thanh bằng (không có thanh điệu, thể hiện trong chữ viết là không dấu)
Trang 31Hình 1.6: Các đường đặc tính của 6 thanh điệu tiếng Việt [?]
- Thanh bằng: là thanh điệu cao, có đường đặc tính bằng phẳng như đường số
1 trong Hình 1.6;
- Thanh huyền: Là thanh điệu thấp, đường đặc tính có dạng bằng phẳng tương tự thanh bằng nhưng phần cuối có phần đi xuống thấp hơn như thể hiện ở đường số 2 trong Hình 1.6
- Thanh ngã: đường số 3 trong Hình 1.6, đường đặc tính của thanh ngã biến đổi từ ngang, thấp rồi cao
- Thanh hỏi: đường số 4 trong Hình 1.6, là thanh thấp và có đường đặc tính gãy ở giữa
- Thanh sắc: đường số 5 trong Hình 1.6, đường đặc tính của thanh sắc có hướng đi lên
- Thanh nặng: đường số 6 trong Hình 1.7, là thanh thấp và có đường đặc tính
đi xuống
Đối với các âm tiết kết thúc bởi các các phụ âm đóng “p, k, t” thì các âm tiết này có xu thế kết thúc nhanh hơn so với các âm tiết khác, chính vì thế hai thanh sắc và thanh nặng (trong tiếng Việt chỉ có hai thanh này tồn tại với các âm tiết kết thúc bằng các phụ âm đóng “p, k, t”) cũng có xu hướng kết thúc nhanh hơn khi đi cùng với các âm tiết khác Trong trường hợp này có thể coi tiếng Việt có 8 thanh điệu
1.3.4 Những thuận lợi và khó khăn đối với nhận dạng tiếng Việt
Về mặt thuận lợi, như chúng ta đã đề cập, tiếng Việt là ngôn ngữ đơn âm, số lượng âm tiết không quá lớn Điều này sẽ giúp hệ nhận dạng xác định ranh giới
Trang 32các âm tiết dễ dàng hơn nhiều Đối với hệ nhận dạng các ngôn ngữ Ấn-Âu (tiếng Anh, tiếng Pháp ) xác định ranh giới âm tiết (endpoint detection) là vấn đề rất khó và ảnh hưởng lớn đến kết quả nhận dạng
Tiếng Việt là ngôn ngữ không có biến đổi hình thái từ Âm tiết tiếng Việt ổn định, có cấu trúc rõ ràng Đặc biệt không có hai âm tiết nào đọc giống nhau mà viết khác nhau Điều này sẽ dễ dàng cho việc xây dựng các mô hình âm tiết trong nhận dạng; đồng thời việc chuyển từ phiên âm sang từ vựng (lexical decoding) sẽ đơn giản hơn so với các ngôn ngữ Ấn-Âu
Tuy nhiên, vấn đề nhận dạng tiếng Việt có những khó khăn nhất định Trước hết, Tiếng Việt là ngôn ngữ có thanh điệu (6 thanh) Thanh điệu là âm vị siêu đoạn tính, đặc trưng về thanh điệu thể hiện trong tín hiệu tiếng nói không rõ nét như các thành phần khác của âm tiết
Thứ hai, cách phát âm tiếng Việt thay đổi nhiều theo vị trí địa lí Giọng địa phương trong tiếng Việt rất đa dạng (mỗi miền có một giọng đặc trưng)
Thứ ba, hệ thống ngữ pháp, ngữ nghĩa tiếng Việt rất phức tạp, rất khó để áp dụng vào hệ nhận dạng với mục đích tăng hiệu năng nhận dạng Hệ thống phiên
âm cũng chưa thống nhất
Cuối cùng, các nghiên cứu về nhận dạng tiếng Việt cũng chưa nhiều và ít phổ biến Đặc biệt khó khăn lớn nhất là hiện nay chưa có một bộ dữ liệu chuẩn cho việc huấn luyện và kiểm tra các hệ thống nhận dạng tiếng Việt
Trang 33Chương 2 Phát triển công cụ nhận dạng tiếng nói sử dụng dịch vụ trên nền điện toán đám mây
2.1 Kiến trúc ứng dụng hướng dịch vụ trên nền điện toán đám mây
2.1.1 Điện toán đám mây
Điện toán đám mây (Cloud Computing) ra đời từ giữa năm 2007, đã và đang nhận được rất nhiều sự quan tâm nghiên cứu, phát triển và ứng dụng mạnh mẽ hiện nay Nó là một mô hình tính toán trên hệ thống mạng cho phép truy cập dễ dàng vào một hệ thống mạng đồng nhất, theo nhu cầu đến một kho tài nguyên điện toán dùng chung (ví dụ: mạng, máy chủ, lưu trữ, ứng dụng và dịch vụ), các tài nguyên này có thể được cung cấp và thu hồi một cách nhanh chóng với yêu cầu tối thiểu về quản lý hay sự can thiệp từ phía nhà cung cấp dịch vụ
Một số đặc trưng tiêu biểu của điện toán đám mây gồm:
- Cung cấp tài nguyên như là dịch vụ: bao gồm cả máy chủ, thiết bị mạng, bộ nhớ, CPU, không gian đĩa cứng, trang thiết bị trung tâm dữ liệu
- Khả năng mở rộng linh hoạt và đa dạng
- Chi phí thay đổi tùy theo mức độ và phạm vi thực tế
- Nhiều người có thể dùng chung trên một tài nguyên được chia sẻ nhưng vẫn đảm bảo yêu cầu dịch vụ và độc lập trong suốt đối với từng người dùng
- Cấp độ doanh nghiệp: đem lại lợi ích cho công ty bởi một nguồn tài nguyên tính toán tổng hợp
Có ba dạng cơ bản của điện toán đám mây (Hình 2.1) bao gồm SaaS (Phần mềm như một dịch vụ), PaaS (Nền tảng như một dịch vụ) và IaaS (Cơ sở hạ tầng như một dịch vụ)
Hình 2.1: Các dịch vụ dựa trên kiến trúc điện toán đám mây
SaaS (Software as a Service) đang phát triển nhanh chóng và là thị trường điện toán đám mây lớn nhất hiện nay Nó sử dụng mạng Internet để cung cấp các
Trang 34ứng dụng cho các khách hàng xử lý giao diện trong khi các ứng dụng được quản
lý bởi các nhà cung cấp bên thứ ba Nói chung, các ứng dụng SaaS không cần tải xuống trong khi một số cần một vài bộ phận phụ trợ (plugin) và được chạy trực tiếp thông qua trình duyệt web Các ứng dụng liên quan đến chăm sóc sức khỏe, quản lý quan hệ khách hàng và email được cung cấp dưới dạng SaaS Nó cung cấp cho người dùng phần mềm được lưu trữ bởi các nhà cung cấp dịch vụ bên thứ ba Ứng dụng cùng với dữ liệu của ứng dụng được lưu trữ trên máy chủ của bên thứ ba Điều này rất thuận tiện cho hầu hết người dùng trong khi không thể chấp nhận đối với những người tìm kiếm quyền kiểm soát nhiều hơn đối với ứng dụng và dữ liệu Microsoft 365 và Google Apps là những ví dụ điển hình của SaaS
PaaS (Platform as a Service) cung cấp nền tảng tính toán và một tập các giải pháp nhiều lớp PaaS cho phép các nhà cung cấp bên thứ ba quản lý lưu trữ, máy chủ, mạng và ảo hóa ngoài phần mềm PaaS, trong khi các nhà phát triển chỉ cần quản lý các ứng dụng của họ Nó hỗ trợ việc triển khai ứng dụng mà không quan tâm đến chi phí hay sự phức tạp của việc trang bị và quản lý các lớp phần cứng
và phần mềm bên dưới, cung cấp tất cả các tính năng cần thiết để hỗ trợ chu trình sống đầy đủ của việc xây dựng và cung cấp một ứng dụng và dịch vụ web sẵn sàng trên Internet mà không cần bất kì thao tác tải hay cài đặt phần mềm cho những người phát triển, quản lý tin học, hay người dùng cuối PaaS bao gồm những điều kiện cho qui trình thiết kế ứng dụng, phát triển, kiểm tra, triển khai
và lưu trữ ứng dụng có giá trị như là dịch vụ ứng dụng Những dịch vụ dạng này được triển khai như là một giải pháp tính hợp trên nền web Google App Engine, Windows Azure, Apache Stratos, là những ví dụ điển hình về PaaS
IaaS (Infrastructure as a Service), hay còn gọi là cơ sở hạ tầng như là một dịch vụ, cung cấp không gian ảo, sự lưu trữ và các nguồn lực thông qua hệ thống máy chủ Loại điện toán đám mây này đang có xu hướng tăng do sự bùng nổ của trí tuệ nhân tạo (artificial intelligence -AI), phân tích kinh doanh (Business Intelligence – BI), Internet vạn vật (Internet of Things – IoT) và các sản phẩm dựa trên đám mây (cloud-based), tất cả đều đòi hỏi số lượng lớn không gian lưu trữ và sức mạnh tính toán IaaS có thể cung cấp không gian và sức mạnh, giúp tạo ra cái được gọi là “khả năng mở rộng vô hạn” Với những loại ứng dụng dựa trên đám mây kiểu này, các doanh nghiệp có thể dễ dàng nâng cấp cơ sở hạ tầng lên hoặc xuống để đáp ứng nhu cầu ở một mức chi phí hiệu quả Cơ sở hạ tầng đi kèm như là một dịch vụ, có nghĩa là chúng ta có thể tăng hoặc giảm năng lực của
cơ sở hạ tầng nếu muốn, mà không cần xây dựng các máy chủ nội bộ để lưu trữ
và hỗ trợ
Trang 35Hình 2.2: Phân cấp các loại hình điện toán đám mây Hiện nay có 4 mô hình triển khai điện toán mây gồm:
- Public Cloud: Đám mây công cộng, là các dịch vụ trên nền tảng điện toán đám mây để cho các cá nhân và tổ chức thuê, họ dùng chung tài nguyên Nó được xây dựng nhằm phục vụ cho mục đích sử dụng công cộng, người dùng sẽ đăng ký với nhà cung cấp và trả phí sử dụng dựa theo chính sách của nhà cung cấp Public cloud là mô hình triển khai được sử dụng phổ biến nhất hiện nay của điện toán đám mây
+ Private Cloud: Đám mây riêng, dùng trong một doanh nghiệp và không chia sẻ với người dùng ngoài doanh nghiệp đó Nó là các dịch vụ điện toán đám mây được cung cấp trong các doanh nghiệp Những “đám mây” này tồn tại bên trong tường lửa của công ty và được các doanh nghiệp trực tiếp quản lý Đây là
xu hướng tất yếu cho các doanh nghiệp nhằm tối ưu hóa hạ tầng công nghệ thông tin
+ Hybrid Cloud: Là mô hình kết hợp (lai) giữa các mô hình Public Cloud và Private Cloud Nó cho phép chúng ta khai thác điểm mạnh của từng mô hình cũng như đưa ra phương thức sử dụng tối ưu cho người sử dụng Những “đám mây” này thường do doanh nghiệp tạo ra và việc quản lý sẽ được phân chia giữa doanh nghiệp và nhà cung cấp điện toán đám mây công cộng
+ Community Cloud: Đám mây cộng đồng, là các dịch vụ trên nền tảng điện toán đám mây do các công ty cùng hợp tác xây dựng và cung cấp các dịch vụ cho cộng đồng
Trang 36Hình 2.3: Mô hình triển khai của điện toán đám mây
2.1.2 Nền tảng đám mây của Google
Google Cloud Platform là một trong những nền tảng có sức mạnh và ngày càng có nhiều người sử dụng nó Hiện nay, với nhu cầu lớn về tính toán và dịch
vụ, một số dịch vụ đám mây của Google đã được cung cấp cho nhiều khách hàng toàn cầu Nền tảng đám mây của Google là một phương tiện với sự trợ giúp trong đó mọi người có thể dễ dàng truy cập vào các hệ thống đám mây và các dịch vụ tính toán khác do Google phát triển Nền tảng này bao gồm một loạt các dịch vụ có thể được sử dụng trong các lĩnh vực khác nhau của điện toán đám mây, chẳng hạn như lưu trữ và phát triển ứng dụng Bất cứ ai cũng có thể truy cập nền tảng đám mây của Google và sử dụng nó theo nhu cầu của họ
Google Cloud Platform được đưa ra lần đầu vào ngày 6 tháng 10 năm 2011,
có thị phần 13%, mang lại sự cạnh tranh gay gắt cho đám mây Amazon AWS
Nó đã trở thành một trong những dịch vụ điện toán đám mây tốt nhất và thành công nhất Ngoài các công cụ quản lý khác nhau có sẵn trên Google Cloud Platform, công ty cũng đã bao gồm rất nhiều chức năng và tính năng đám mây như lưu trữ đám mây, phân tích dữ liệu, tùy chọn nhà phát triển và học máy nâng cao (Hình 2.4) Phạm vi tối ưu hóa và các lợi thế khác là điều khiến cho Google Cloud Platform trở nên phổ biến
Hệ thống các thành phần của nền tảng đám mây Google có một phân hệ là Cloud AI nhằm cung cấp các dịch vụ về trí tuệ nhân tạo cho người dùng và các nhà phát triển trong lĩnh vực này Cloud AI cung cấp các dịch vụ học máy hiện đại, với các mô hình được huấn luyện trước và một dịch vụ để tạo ra các mô hình phù hợp của riêng người dùng nếu cần thiết Dịch vụ học máy (Meachine learning) dựa trên mạng nơron của Cloud AI có hiệu suất tốt và độ chính xác cao
Trang 37so với các hệ thống học sâu (Deep learning) khác Dịch vụ Cloud AI của Google
có thể nhanh chóng mở rộng và dễ sử dụng Các ứng dụng chính của dịch vụ này gồm xử lý hình ảnh, dịch ngôn ngữ, trả lời tự động và xử lý tiếng nói
Hình 2.4: Hệ sinh thái nền tảng đám mây của Google
2.1.3 Kỹ thuật gọi thủ tục từ xa của Google (gRPC)
gRPC là một nền tảng gọi thủ tục từ xa được phát triển bởi Google và công
bố dưới dạng nguồn mở trong thời gian gần đây Đây là một hệ thống gọi thủ tục
từ xa siêu nhanh và hiệu quả Nó sẽ làm cho các dịch vụ nhỏ gọn của hệ thống trên mạng tương tác với nhau bằng tốc độ cực nhanh, đảm bảo tính đồng bộ khi thực hiện cơ chế trao đổi tương tác giữa client/server (Hình 2.5)
Nền tảng kỹ thuật này là khá mới, nhưng gần đây nó đã đạt được sự hoàn chỉnh và mạnh mẽ đủ để được coi là một giải pháp thay thế cho REST (là một phương thức trao đổi tương tác client/server nhưng không đạt được sự đồng bộ với tốc độ nhanh) So với REST, nơi chúng ta phải chuyển tải các dữ liệu trao đổi dưới dạng JSON, thì gRPC, tất cả dữ liệu được trao đổi là nhị phân, làm cho việc áp dụng sẽ thuận lợi và đa dạng hơn rất nhiều gRPC có hai thành phần gồm giao thức và cơ chế đồng bộ hóa dữ liệu
Hình 2.5: Kiến trúc client/server của gRPC
Trang 38- Giao thức (Protocol)
Giao thức của gRPC dựa trên HTTP2 và khai thác nhiều lợi ích của giao thức này gRPC hỗ trợ một số tính năng tích hợp được kế thừa từ HTTP2, chẳng hạn như nén các tiêu đề, kết nối TCP đơn liên tục, hủy bỏ và hợp đồng hết thời gian giữa máy khách và máy chủ Giao thức đã được xây dựng trong điều khiển luồng
từ HTTP2 trên các khung dữ liệu Điều này rất thuận tiện để bảo đảm máy khách tôn trọng thông lượng của hệ thống, nhưng lại tăng thêm mức độ phức tạp khi chẩn đoán các sự cố trong cơ sở hạ tầng, bởi vì máy khách hoặc máy chủ có thể đặt giá trị kiểm soát luồng của riêng nó Việc cân bằng tải thường được thực hiện bởi máy khách, nó chọn máy chủ cho một yêu cầu nhất định từ danh sách được cung cấp bởi máy chủ cân bằng tải Máy chủ cân bằng tải sẽ theo dõi tình trạng của các điểm cuối và sử dụng các yếu tố này và các yếu tố khác để quản lý danh sách được cung cấp cho máy khách Máy khách sẽ sử dụng một thuật toán đơn giản như quay vòng trong nội bộ, nhưng lưu ý rằng máy chủ cân bằng tải có thể
áp dụng logic phức tạp hơn khi biên tập danh sách cho một máy khách nhất định Các hai loại RPC thiết yếu để liên lạc giữa máy khách với máy chủ Thứ nhất, loại hình đơn phương (unary) yêu cầu đồng bộ cần được thực hiện cho máy chủ gRPC với một yêu cầu duy nhất chặn cho đến khi nhận được phản hồi trên máy khách Thứ hai, truyền phát (streaming) thực sự mạnh mẽ và có thể được thực hiện trong ba cấu hình khác nhau: ứng dụng khách đẩy tin nhắn lên luồng; máy chủ đẩy tin nhắn đến một luồng; hoặc hai chiều, trong đó máy khách và máy chủ đều gửi dữ liệu theo hai luồng trong cùng một phương thức Trong mọi trường hợp, máy khách khởi tạo phương thức RPC Luồng không cung cấp bất
kỳ xác nhận rằng đã nhận cho đến khi luồng hoàn thành, điều này có thể tăng thêm độ phức tạp khi hệ thống cần đối phó với lỗi nút mạng hoặc phân vùng mạng Điều này có thể được giảm thiểu bằng cách sử dụng luồng hai chiều để trả
về thông tin nhận biết Nếu một máy chủ có mong muốn huỷ bỏ một kết nối thì một tin nhắn sẽ được trả về cho biết tin nhắn nhận được cuối cùng trên kết nối
đó
- Protobuf
Protobuf là định dạng đồng bộ hóa mặc định cho dữ liệu được gửi giữa máy khách và máy chủ Cơ chế mã hóa trong phương pháp đồng bộ này cho phép các thông điệp nhỏ được giải mã và mã hóa nhanh chóng Protobuf không cho phép sao chép dữ liệu trực tiếp như một số phương thức trao đổi dữ liệu khác (Cap’n Proto hoặc Flatbuffers), thay vào đó là chọn cách mã hóa và giải mã dữ liệu dưới dạng byte Điều này làm cho dữ liệu nhỏ hơn và dành chi phí cho CPU để thực hiện mã hóa và giải mã dữ liệu Không giống như các định dạng đồng bộ dữ liệu
Trang 39khác như JSON hoặc XML, Protobuf cố gắng giảm thiểu chi phí mã hóa bằng cách cung cấp các trường dữ liệu ở định dạng nhị phân được mã hóa để có thể nhanh chóng di chuyển theo cách thích hợp nhất theo ý muốn
Cả Protobuf và gRPC hoàn toàn độc lập với nhau và mặc dù không có bất kỳ
sự xuất hiện phương thức mã hóa nào dành riêng cho gRPC, theo lý thuyết chúng ta cũng có thể thay đổi bất kỳ phương thức mã hóa nào khác Điều đó nói lên rằng tất cả việc tạo mã tự động từ phía máy chủ và máy khách được thực hiện bởi công cụ tạo Protobuf Vì vậy, chúng ta có thể thay đổi mã hóa nhưng sẽ
bị mất khả năng tự động tạo mã ở máy chủ và máy khách khi áp dụng cho các ngôn ngữ khác nhau
2.2 Một số dịch vụ trên nền điện toán đám mây cho nhận dạng tiếng nói
2.3.1 Google Speech API
Google đã cải thiện khả năng nhận dạng giọng nói của hệ thống mình phát triển bằng cách sử dụng công nghệ mới và ứng dụng trong nhiều lĩnh vực như tìm kiếm bằng giọng nói trên thiết bị di động, dịch vụ thoại, nhập dữ liệu bằng giọng nói, API cho nhà phát triển ứng dụng trên Android, tìm kiếm bằng giọng nói trên máy tính để bàn, dịch và phiên âm trên ứng dụng YouTube và dịch tự động Các công nghệ mới được sử dụng trong dịch vụ nhận dạng giọng nói của Google như mạng nơ-ron học sâu (Deep Learning Neural Network), theo đó Google đã đạt được tỷ lệ lỗi trong nhận dạng chỉ 8% trong năm 2015, giảm hơn 23% so với năm 2013 Kết quả này có được nhờ sự đầu tư và Google đã mua lại một số công ty công nghệ mới về học sâu như DeepMind, DNNresearch và Jetpaclahoma
Trong hệ sinh thái đám mây của Google (Hình 2.4), phân hệ Speech-to-Text của Google (Speech API) cho phép nhà phát triển chuyển đổi âm thanh thành văn bản bằng cách áp dụng các mô hình mạng nơron mạnh mẽ thông qua các API dễ sử dụng Hệ thống này có thể xử lý nhận dạng đến 120 ngôn ngữ và các biến thể để hỗ trợ cho người dùng toàn cầu Chúng ta có thể bật lệnh và điều khiển bằng tiếng nói, chuyển đổi âm thanh từ các trung tâm cuộc gọi và hơn thế nữa Ứng dụng có thể xử lý phát trực tuyến hoặc phát âm thanh theo thời gian thực, sử dụng công nghệ máy học của Google
Hình 2.6: Kết nối sử dụng Speech API từ ứng dụng