Nhận thức được vai trò của thông tin cú pháp trong quá trình nghe tự nhiên vàhiểu tương đối về các phương pháp phân tích cú pháp, chúng tôi tiếp cận vấn đề dựatrên lý thuyết chương trình
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Lương Chi Mai
HÀ NỘI - 2004
Trang 3Mục lục
Lời cảm ơn 1
Mục lục 2
Chỉ mục hình vẽ 6
Chỉ mục bảng biểu 7
Mở đầu 9
Chương 1 TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI 10
1.1 Cơ sở và tiềm năng của nhận dạng tiếng nói 10
1.2 Các ứng dụng hay gặp 11
1.2.1 Chương trình quay số bằng giọng nói (voice dialer) 11
1.2.2 Chương trình soạn thảo bằng giọng nói (voice editor) 13
1.2.3 Chỉ mục đa phương tiện (Multimedia Indexer) 14
1.2.4 Chương trình ra lệnh bằng giọng nói (voice commander) 15
1.2.5 Chương trình hội thoại (conversational computer) 16
1.3 Khó khăn và thuận lợi 17
1.3.1 Chất lượng tiếng nói (quality of speech) 17
1.3.2 Các từ tách biệt và tiếng nói liên tục 18
1.3.3 Kích thước từ vựng 19
1.3.4 Biến đổi theo người nói (speaker) 19
1.3.5 Độc lập người nói và phụ thuộc người nói 20
1.3.6 Biến đổi theo phương ngữ (dialect) 21
1.3.7 Cấu trúc ngôn ngữ 22
1.4 Các bài toán liên quan tới nhận dạng tiếng nói 22
1.4.1 Nhận dạng tiếng nói và tổng hợp tiếng nói 23
1.4.2 Nhận diện người nói (speaker identification) 23
1.4.3 Xác minh người nói (speaker verification) 24
1.5 Giới hạn nghiên cứu 24
1.6 Cách tiếp cận 25
Trang 4Chương 2 CƠ SỞ TOÁN HỌC 27
2.1 Từ điển mẫu (pattern dictionary) 27
2.1.1 Định nghĩa hình thức từ điển mẫu 27
2.1.2 Triển khai từ điển mẫu 29
2.2 Văn phạm (grammar) 30
2.2.1 Định nghĩa hình thức về văn phạm 30
2.2.2 Biểu diễn đơn giản của văn phạm 31
2.2.3 Định nghĩa triển khai của văn phạm 32
2.3 Ngôn ngữ (language) 34
2.3.1 Định nghĩa hình thức về ngôn ngữ 34
2.3.2 Biểu diễn ngôn ngữ trong đĩa từ 35
2.4 Sơ đồ chuyển trạng thái tuyến tính (linear state transition diagram) 36
2.4.1 Định nghĩa hình thức 37
2.4.2 Định nghĩa triển khai 38
2.4.3 Thuật toán xây dựng 39
2.5 Sơ đồ chuyển trạng thái đẩy xuống (pushdown state transition diagram) 40 2.5.1 Định nghĩa hình thức 40
2.5.2 Định nghĩa triển khai 42
2.5.3 Thuật toán xây dựng 43
2.6 Chuỗi con chung lớn nhất 44
2.6.1 Định nghĩa chuỗi con chung lớn nhất 45
2.6.2 Thuật toán tìm chuỗi con chung lớn nhất 46
2.6.3 Vai trò của chuỗi con chung 47
Chương 3 TÍN HIỆU TIẾNG NÓI 49
3.1 Định nghĩa tín hiệu 49
3.2 Lấy mẫu tín hiệu (signal sampling) 49
3.3 Phân đoạn tín hiệu 51
3.4 Tham số hoá tín hiệu 52
3.4.1 Số lần vượt qua điểm không (zero crossing) 52
3.4.2 Năng lượng (energy) 53
3.4.3 Số mỏm (number of hills) 54
3.4.4 Biên độ (amplitude) 55
3.4.5 Độ dừng (duration) 56
3.4.6 Tần số cơ bản (fundamental frequency) 57
Trang 53.5 Biến đổi tín hiệu (signal transformation) 59
3.5.1 Gây nhiễu (noising) 60
3.5.2 Biến đổi biên độ tổng thể (global amplitude transformation) 60
3.5.3 Thu nhỏ tín hiệu (zoom smaller) 61
3.5.4 Phóng to tín hiệu (zoom bigger) 61
3.5.5 Cắt bỏ biên độ (amplitude cutoff) 61
3.5.6 Biến đổi Fourier 62
Chương 4 PHƯƠNG PHÁP NHẬN DẠNG DỰA TRÊN PHÂN TÍCH TỪ VỰNG VÀ PHÂN TÍCH CÚ PHÁP 65
4.1 Phân tích tiếng Việt 65
4.1.1 Ngôn ngữ có thanh điệu 65
4.1.2 Ngôn ngữ đơn âm tiết (monosyllable) 66
4.1.3 Các lỗi phát âm và mô hình hoá 67
4.1.4 Từ điển phát âm (phonetic dictionary) 68
4.1.5 Văn phạm tiếng Việt 69
4.1.6 Sự không thống nhất trong chính tả 70
4.2 Phát biểu bài toán nhận dạng 70
4.2.1 Đầu ra của quá trình nhận dạng 71
4.2.2 Đầu vào của quá trình nhận dạng 72
4.2.3 Tham số và độ đo của quá trình nhận dạng 73
4.2.4 Hệ nhận dạng, bộ nhận dạng và bộ huấn luyện 73
4.3 Nhận dạng dựa trên từ điển 76
4.4 Huấn luyện bộ nhận dạng dựa trên từ điển 77
4.5 Nhận dạng dựa trên phân tích từ vựng 78
4.6 Huấn luyện bộ nhận dạng dựa trên phân tích từ vựng 80
4.7 Nhận dạng dựa trên bộ phân tích cú pháp 81
4.8 Huấn luyện bộ nhận dạng dựa trên phân tích cú pháp 85
Chương 5 TRIỂN KHAI HỆ THỐNG NHẬN DẠNG 86
5.1 Các tập tin trong hệ thống 86
5.1.1 Tập tin âm thanh 86
5.1.2 Tập tin nhãn (label file format) 87
5.1.3 Tập tin văn phạm (grammar file format) 88
5.1.4 Tập tin sơ đồ tuyến tính (linear diagram) 89
Trang 65.2 Phát sinh trong triển khai 90
5.2.1 Cơ sở tri thức của quá trình nhận dạng 90
5.2.2 Nhận dạng trực tuyến 90
5.2.3 Chuyển đổi trạng thái trực tuyến 92
5.2.4 Huấn luyện trực tuyến và huấn luyện hàng loạt 92
5.3 Các thư viện dùng để triển khai 93
5.3.1 WaveBuffer 93
5.3.2 WaveBufferQueue 95
5.3.3 WaveRecorder 96
5.3.4 WaveMapper 97
5.4 Chương trình smartphone 98
5.5 Chương trình wordrec 98
5.6 Đánh giá kết quả triển khai 100
Kết luận 102
Kết quả đạt được 102
Đề xuất phát triển 103
Tài liệu tham khảo 104
Tiếng Việt 104
Tiếng Anh 105
Trang 7Chỉ mục hình vẽ
Hình 1-1 Sơ đồ của hệ quay số bằng giọng nói 13
Hình 1-2 Câu "cộng hoà xã hội chủ nghĩa việt nam" phát âm rời rạc 18
Hình 1-3 Câu "cộng hoà xã hội chủ nghĩa việt nam" phát âm liên tục 19
Hình 1-4 Nhận dạng trên máy tính cá nhân (phụ thuộc người nói) 20
Hình 1-5 Nhận dạng trên máy phục vụ công cộng (độc lập người nói) 21
Hình 2-1 Ví dụ về sơ đồ chuyển trạng thái tuyến tính 38
Hình 2-2 Ví dụ về sơ đồ chuyển trạng thái đẩy xuống 41
Hình 3-1 Tín hiệu và số lần vượt qua điểm không 53
Hình 3-2 Tín hiệu và năng lượng 54
Hình 3-3 Các từ ma, má, mà, mả, mã, mạ 57
Hình 3-4 Chu kỳ cơ bản 57
Hình 3-5 Tín hiệu sau khi bị tách ngưỡng 58
Hình 3-6 Tín hiệu sau khi bị tách ngưỡng (trường hợp xấu) 58
Hình 3-7 Tín hiệu sin và phổ của nó 64
Hình 3-8 Tín hiệu sin và phổ của nó (lệch pha) 64
Hình 4-1 Các từ ma, má, mà, mả, mã, mạ 66
Hình 4-2 Câu "cộng hoà xã hội chủ nghĩa việt nam" phát âm rời rạc 66
Hình 4-3 Hệ nhận dạng 75
Hình 4-4 Sơ đồ chuyển trạng thái tuyến tính 78
Hình 4-5 Sơ đồ chuyển trạng thái đẩy xuống 82
Hình 5-1 Chương trình smartphone 98
Hình 5-2 Chương trình wordrec 99
Hình 5-3 Hộp thoại huấn luyện của wordrec 99
Hình 5-4 Kết quả nhận dạng thanh điệu 100
Hình 5-5 Kết quả nhận dạng với số lượng từ tăng lên 101
Trang 8Chỉ mục bảng biểu
Bảng 2-1 Định nghĩa từ điển mẫu 28
Bảng 2-2 Ví dụ về từ điển mẫu 28
Bảng 2-3 Từ điển mẫu dạng liệt kê 28
Bảng 2-4 Định nghĩa triển khai của từ điển mẫu 29
Bảng 2-5 Định nghĩa mẫu trong từ điển 29
Bảng 2-6 Định nghĩa từ trong từ điển 30
Bảng 2-7 Định nghĩa hình thức văn phạm 31
Bảng 2-8 Ví dụ về văn phạm 31
Bảng 2-9 Ngôn ngữ sinh bởi văn phạm 31
Bảng 2-10 Biểu diễn văn phạm trong tập tin 32
Bảng 2-11 Định nghĩa triển khai của văn phạm 33
Bảng 2-12 Định nghĩa ký hiệu trong văn phạm 33
Bảng 2-13 Định nghĩa luật trong văn phạm 33
Bảng 2-14 Ví dụ về ngôn ngữ 35
Bảng 2-15 Ví dụ khác về ngôn ngữ 35
Bảng 2-16 Biểu diễn ngôn ngữ trong tập tin 36
Bảng 2-17 Định nghĩa hình thức sơ đồ chuyển trạng thái tuyến tính 37
Bảng 2-18 Định nghĩa triển khai sơ đồ chuyển trạng thái tuyến tính 39
Bảng 2-19 Định nghĩa trạng thái tuyến tính 39
Bảng 2-20 Định nghĩa phép chuyển tuyến tính 39
Bảng 2-21 Thuật toán xây dựng sơ đồ chuyển trạng thái tuyến tính 40
Bảng 2-22 Định nghĩa hình thức sơ đồ chuyển trạng thái đẩy xuống 41
Bảng 2-23 Ví dụ về sơ đồ chuyển trạng thái đẩy xuống 42
Bảng 2-24 Định nghĩa hình thức sơ đồ chuyển trạng thái đẩy xuống 42
Bảng 2-25 Định nghĩa trạng thái đẩy xuống 43
Bảng 2-26a Thuật toán xây dựng sơ đồ chuyển trạng thái đẩy xuống 43
Bảng 2-26b Thuật toán xây dựng sơ đồ chuyển trạng thái đẩy xuống 44
Bảng 2-27 Thuật toán chuỗi con chung 46
Bảng 2-28 Ví dụ về thuật toán chuỗi con chung 47
Bảng 3-1 Các giá trị của độ phân giải mẫu 51
Bảng 3-2 Công thức tính ZC 53
Bảng 3-3 Công thức tính năng lượng 54
Bảng 3-4 Thuật toán đếm số mỏm 54
Bảng 3-5 Thuật toán đếm số mỏm với ngưỡng 55
Bảng 3-6 Thuật toán tìm tần số cơ bản 59
Bảng 3-7 Biến đổi biên độ tổng thể 60
Bảng 3-8 Xấp xỉ của tín hiệu bằng chuỗi Fourier 63
Bảng 4-1 Mô hình hoá phát âm 68
Bảng 4-2a Ví dụ về từ điển phát âm 68
Bảng 4-2b Ví dụ về từ điển phát âm 68
Trang 9Bảng 4-3 Ví dụ về văn phạm tiếng Việt 70
Bảng 4-4 Các lỗi không thống nhất 70
Bảng 4-5 Thuật toán nhận dạng dựa trên từ điển 76
Bảng 4-6 Ví dụ về thuật toán nhận dạng dựa trên từ điển 77
Bảng 4-7 Thuật toán huấn luyện 77
Bảng 4-8 Thuật toán nhận dạng dựa trên phân tích từ vựng 79
Bảng 4-9 Ví dụ về thuật toán nhận dạng dựa trên phân tích từ vựng 80
Bảng 4-10 Thuật toán huấn luyện độc lập 81
Bảng 4-11 Thuật toán nhận dạng dựa trên phân tích cú pháp 83
Bảng 4-12 Ví dụ về thuật toán nhận dạng dựa trên phân tích cú pháp 84
Bảng 4-13 Thuật toán huấn luyện liên kết 85
Bảng 5-1 Định dạng tập tin âm thanh 87
Bảng 5-2 Ví dụ về tập tin nhãn 88
Bảng 5-3 Ví dụ về tập tin văn phạm 89
Bảng 5-4 Ví dụ về tập tin sơ đồ tuyến tính 89
Bảng 5-5 Lớp CWaveBufferQueue 92
Bảng 5-6 Lớp CWaveBuffer 95
Bảng 5-7 Lớp CWaveRecorder 96
Bảng 5-8 Lớp CWaveMapper 97
Trang 10Mở đầu
Với mong muốn góp một phần nhỏ bé của mình vào công việc hiện thực hoá
hệ thống nhận dạng tiếng Việt, chúng tôi đặt mục tiêu áp dụng phương pháp nhậndạng tiếng nói dựa vào phân tích cú pháp và phân tích từ vựng đồng thời xây dựngthử nghiệm một hệ thống nhận dạng để chứng minh tính hiện thực của phương phápnhận dạng mà chúng tôi đề xuất
Để thuận lợi trong quá trình nghiên cứu và tránh việc bài toán bị mở rộng theocách không mong muốn, chúng tôi đưa ra một số giới hạn nghiên cứu Ban đầuchúng tôi tập trung vào nhận dạng tiếng nói rời rạc và không quá nhiễu Chúng tôicũng tập trung phát triển ứng dụng phụ thuộc người nói và chưa đặt vấn đề cungcấp dịch vụ nhận dạng cho môi trường công cộng
Nhận thức được vai trò của thông tin cú pháp trong quá trình nghe tự nhiên vàhiểu tương đối về các phương pháp phân tích cú pháp, chúng tôi tiếp cận vấn đề dựatrên lý thuyết chương trình dịch, cụ thể hơn là chúng tôi phát triển các phương phápnhận dạng dựa trên phân tích cú pháp và phân tích từ vựng với nội dung
Chương 1 giới thiệu tổng quan về vấn đề nhận dạng tiếng nói và các khái
niệm hay gặp trong nhận dạng tiếng nói
Chương 2 được chúng tôi dành để đưa ra các khái niệm toán học cần thiết để
hiểu cũng như triển khai hệ thống nhận dạng
Chương 3 bao gồm các vấn đề về tín hiệu và xử lý tín hiệu Các khái niệm của
chương này được dùng trong các chương 4 và 5
Chương 4 bao gồm các kết quả lý thuyết và chương 5 bao gồm các kết quả
triển khai của chúng tôi trong thời gian nghiên cứu
Trong suốt quá trình nghiên cứu, chúng tôi giả định bài toán nhận dạng củachúng tôi có đầu vào là chuỗi các véc tơ đặc trưng và đầu ra là một chuỗi các kýhiệu nhận dạng (nhãn) Vì có phương pháp nhận dạng dựa trên phân tích cú pháp,khái niệm nhãn được mở rộng để bao gồm cả các ký hiệu trung gian hay ký hiệusinh của văn phạm
Trang 11Chương 1 TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI
Trong phần này, chúng tôi muốn nêu ra các khái niệm cơ bản cũng như cácvấn đề cơ bản của nhận dạng tiếng nói Các khái niệm và vấn đề này sẽ được làm rõ
và cụ thể hoá trong các phần tiếp theo của tài liệu
Các vấn đề trong phần này sẽ được bố trí theo thứ tự xuất hiện của chúng.Nghĩa là các vấn đề sau sẽ ít nhiều liên quan đến các vấn đề trước và do đó chúng tacần hiểu các vấn đề theo cách tuần tự Trong phần sau, chúng tôi sẽ trình bày theocách phát triển của vấn đề
1.1 Cơ sở và tiềm năng của nhận dạng tiếng nói
Các tín hiệu hữu tuyến cũng như vô tuyến xuất phát từ hành động bấm nút đãtồn tại rất lâu trong lịch sử điều khiển điện tử Việc ta bấm nút Power trong bảngđiều khiển từ xa của vô tuyến cũng giống như việc ta ra lệnh vô tuyến hãy bật lênhoặc tắt đi (chuyển trạng thái làm việc) Việc ta bấm nút Volume+ trong bảng điềukhiển từ xa của vô tuyến cũng giống việc ta ra lệnh vô tuyến hãy tăng tiếng lên mộtchút Thực chất việc phát một tín hiệu bằng sóng hồng ngoại vào mắt thần của vôtuyến không khác việc phát một tín hiệu âm thanh vào tai nghe của vô tuyến Chúngđều là các tín hiệu mang thông tin hay cụ thể hơn là mang mệnh lệnh, và các tínhiệu khác nhau dẫn tới hành vi khác nhau của vật bị điều khiển
Nhưng việc phát ra một chuỗi âm thanh đơn giản hơn việc phát ra một chuỗihồng ngoại, vì thứ nhất chuỗi âm thanh do con người sản sinh còn chuỗi hồng ngoạicần phải có thiết bị điều khiển, thứ hai con người không cần thời gian thông dịchmệnh lệnh trong đầu mình thành nút bấm trên bàn phím, thứ ba chúng ta có thể ralệnh bằng âm thanh ngay trong bóng tối được trong khi chúng ta cần ánh sáng đểnhìn vào bảng điều khiển để ra lệnh, thứ tư chúng ta ít cần học điều khiển thiết bịđiện tử bằng giọng nói trong khi chúng ta cần phải học ý nghĩa của các nút bấm,thậm chí ý nghĩa ngữ cảnh của chúng trong các màn hình điều khiển khác nhau
Trang 12Với nhiều lý do như vậy, việc điều khiển bằng chuỗi âm thanh sẽ được ưachuộng sử dụng hơn việc phát các chuỗi hồng ngoại tới mắt thần hay phát các chuỗitín hiệu điện tới các cổng bàn phím hay con chuột Mục đích của nhận dạng tiếngnói tự động là phát triển các kỹ thuật và các hệ thống cho phép máy tính chấp nhậnđầu vào tiếng nói Vấn đề của nhận dạng tiếng nói đã được nghiên cứu tích cực từnhững năm 50 nhưng cho đến thời điểm này vẫn có những kết quả thực hành khiêmtốn Bằng chứng là các hệ nhận dạng thương mại đều khuyến cáo việc người dùngnên cẩn thận và chính xác trong cách phát âm của mình để đạt được kết quả chínhxác cao Trong lĩnh vực nhận dạng tiếng Việt, các kết quả nghiên cứu cũng rấtkhiêm tốn và chưa có các sản phẩm thương mại được phân phát rộng rãi trongngười dùng máy tính cá nhân.
Có rất nhiều ứng dụng cần đến nhận dạng tiếng nói Do các tiến bộ gần đâytrong lĩnh vực khoa học tiếng nói (speech science) và công nghệ máy tính(computer technology), hiệu quả của các bộ nhận dạng tiếng nói được cải thiệnđáng kể Với sự ra đời của các máy tính tốc độ nhanh và các thuật toán có độ chínhxác và ít chi phí, chúng ta chắc chắn rằng việc giao tiếp giữa người và máy tínhbằng tiếng nói tự nhiên sẽ trở thành hiện thực
1.2 Các ứng dụng hay gặp
Trong phần này, chúng tôi muốn trình bày một số chương trình ứng dụng đãđược thương mại hoá có sử dụng các nghiên cứu liên quan đến nhận dạng tiếng nói.Qua đó người đọc có thể hiểu được tính hiện thực hay khả thi của vấn đề nhận dạngtiếng nói Người đọc cũng có thể cảm nhận được các hệ thống nhận dạng tiếng nói
là cụ thể, gần gũi, và thiết thực trong đời sống hàng ngày cũng như công việc vănphòng Và cuối cùng người đọc có cái nhìn tổng quát về bài toán nhận dạng tiếngnói thông qua các ví dụ cụ thể
1.2.1 Chương trình quay số bằng giọng nói (voice dialer)
Chương trình quay số bằng giọng nói là một chương trình rất đơn giản và hiệuquả được cài đặt trong một số máy điện thoại di động Tác dụng rất lớn của chương
Trang 13trình này là tìm ra một số điện thoại nhanh chóng và ít thao tác nhất Chúng ta biếtđiện thoại di động vốn nhỏ gọn và bàn phím chỉ gồm các con số và vài phím chứcnăng Do đó việc đánh các ký tự được thực hiện bằng cách lặp phím Nên việc đánhmột tên người để gọi cho người đó rất khó khăn Chính vì vậy việc quay số bằnggiọng nói, tức là nói một tên người vào lỗ nghe của máy điện thoại thì trên mànhình của điện thoại xuất hiện một hộp thoại bao gồm tên người vừa nói, số điệnthoại của người đó, nút chấp nhận gọi cho số tìm được, và nút huỷ bỏ kết quả tìmđược Như vậy quá trình gọi cho một người hầu như chỉ mất hai thao tác đọc tênngười gọi và bấm nút chấp nhận.
Để một máy điện thoại di động có thể quay số đến một người bất kỳ, chúng tacần huấn luyện cho máy Việc huấn luyện chỉ đơn giản là gắn cho mỗi số điện thoạivới một đoạn âm thanh Do đó một từ điển hay ánh xạ từ tập các đoạn âm thanh tớitập các số điện thoại sẽ được thiết lập
Quá trình nhận dạng sẽ sử dụng từ điển đã được thiết lập trong quá trình huấnluyện để đưa ra kết quả Mỗi khi người nói có nhu cầu quay số, họ sẽ đưa vào lỗnghe của máy điện thoại một đoạn âm thanh Đoạn âm thanh này sẽ được so sánhvới các đoạn âm thanh trong từ điển đã được thiết lập trong khi huấn luyện Nếuviệc so sánh là khớp thì số điện thoại tương ứng sẽ được đưa ra
Ứng dụng nhận dạng tiếng nói này có lẽ là đơn giản nhất trong tất cả các ứngdụng nhận dạng Mặc dù vậy kết quả nhận dạng nói chung cũng không cao Đôi lúcngười dùng thường phải nói vài lần vào máy mà vẫn chưa được số điện thoại mongmuốn Một vài người dùng mất bình tĩnh thậm chí còn hét vào máy điện thoại ngay
ở nơi công cộng với hy vọng máy có thể tìm ra được số đúng Điều này khiếnnhững người nghiên cứu trong lĩnh vực tiếng nói cần phải tìm ra các phương phápcũng như tham số tốt hơn để nhận dạng tiếng nói
Nói chung các hãng điện thoại không công bố chính xác họ làm thế nào đểnhận dạng được mẫu âm thanh đưa vào và tìm ra số điện thoại tương ứng Ta cũngkhông có cách nào để đo được dung lượng của tri thức nhận dạng hay từ điển nhậndạng để xem phương pháp lưu trữ của họ là mạng lưới hay danh sách Nhưng theo
Trang 14suy luận đơn thuần, chúng ta có thể thấy đoạn âm thanh đưa vào huấn luyện (đượcdùng làm khoá tìm kiếm) sẽ được biến thành một khối tham số nhất định Khốitham số này thường bất biến với độ to (amplitude) và độ dừng (duration) của cácđoạn âm thanh Đoạn âm thanh đưa vào để quay số cũng sẽ được biến thành mộtkhối tham số cùng kiểu với khối tham số của đoạn âm thanh huấn luyện Do đó quátrình tìm kiếm nhanh hơn do các khối tham số nhỏ hơn, không gian lưu trữ từ điểnnhận dạng cũng nhỏ hơn, và quá trình tìm kiếm cũng chính xác hơn và thất bại íthơn do các khối tham số bất biến hay ổn định với các đoạn âm thanh huấn luyện vànhận dạng khác nhau.
speech of name
Hình 1-1 Sơ đồ của hệ quay số bằng giọng nói
Nói chung nhận dạng trong điện thoại di động cũng chỉ dừng ở mức độ lưu trữthành từ điển và nhận dạng dựa trên khớp mẫu Vì đơn giản là các bộ vi xử lý củađiện thoại di động không có nhiều chỉ thị hay chưa đủ thông minh Bộ nhớ trongcủa điện thoại di động nói chung không đủ lớn để có thể tổ chức được mạng lướitìm kiếm
1.2.2 Chương trình soạn thảo bằng giọng nói (voice editor)
Chúng tôi muốn đưa vào phần tổng quan một ứng dụng đã được thương mạihoá của Microsoft như một kết quả đã đạt được của những người đi trước trong lĩnhvực nhận dạng
Trang 15Chương trình đọc chính tả là một chương trình đơn giản nhất và thường đượccoi như ví dụ kinh điển của nhận dạng tiếng nói Khi chương trình khởi động, một
cơ sở tri thức về tiếng nói sẽ được tải lên Cơ sở tri thức này có thể bị thay đổi, hoặc
bị tải lại, cũng như bị lưu lại trong quá trình hoạt động Cũng trong quá trình khởiđộng, một màn hình soạn thảo được mở ra để đón các từ nhận dạng và thiết bị ghi
âm cũng được chuẩn bị để đón nhận tín hiệu tiếng nói Sau khi các công việc khởiđộng hoàn tất, người dùng có thể đọc các từ và trên màn hình soạn thảo sẽ xuất hiện
từ tương ứng Trong khi đọc chính tả, có thể một từ do người đọc phát âm chưa cótrong từ điển, do đó từ này có thể không được nhận dạng Do vậy người sử dụng cóthể thêm một từ vào từ điển đồng thời với việc thêm mẫu phát âm của từ đó vào đểnhận dạng Kết quả là tri thức nhận dạng được cập nhật
Về cơ bản, Microsoft cho phép người dùng đưa vào các từ bằng giọng nói vàcác từ hiện ra ở một số cửa sổ soạn thảo hỗ trợ nhận dạng tiếng nói như MicrosoftWord, Microsoft Excel Kết quả nhận dạng cũng không cao và thường phải mấtnhiều ngày để huấn luyện Nhưng đặc biệt chương trình huấn luyện do Microsoftthiết kế rất tự nhiên như quá trình nhận dạng ở người, nghĩa là nhìn các chữ và nghecác âm thanh tương ứng với các chữ đó phát ra Chính vì vậy người dùng khôngmất nhiều công sức để học cách sử dụng hệ thống và huấn luyện hệ thống
1.2.3 Chỉ mục đa phương tiện (Multimedia Indexer)
Các tập tin đa phương tiện như tập tin ảnh, tập tin âm thanh, tập tin phim dùng
để lưu các thông tin nhị phân, do đó việc tìm kiếm rất khó khăn và thậm chí khôngthể Ví dụ việc tìm một từ trong bài hát, một từ khung hình của ảnh, và một đoạnhình ảnh trong một đoạn phim Xem chi tiết trong [16]
Để hiện thực hoá việc tìm kiếm trên các tập tin đa phương tiện, người ta gắnvới mỗi tập tin đa phương tiện (multimedia file) một tập tin chỉ mục (index file)bằng văn bản Thông thường tập tin chỉ mục chỉ đơn giản chứa danh sách các từ và
vị trí xuất hiện của từ trong tập tin đa phương tiện Do đó bài toán tìm kiếm từ trongtập tin đa phương tiện sẽ được đưa về bài toán tìm kiếm từ trên văn bản, một bàitoán rất quen thuộc và có rất nhiều thuật toán giải quyết
Trang 16Việc tìm kiếm đoạn văn trên các tập tin đa phương tiện rất hay được dùngtrong quá trình tra cứu tài liệu Ví dụ như một biên tập viên cần tổng hợp các bànthắng đẹp trong tuần, anh ta trước hết phải tìm tất cả các đoạn băng có bàn thắng,sau đó xem lại và lựa chọn các đoạn băng chứa bàn thắng đẹp nhất Một nhà nghiêncứu viết tài liệu về mã hoá, anh ta cần vài hình ảnh về ổ khoá và chìa khoá đẹp đểminh hoạ cho mình, do đó anh ta cần tìm các hình ảnh như vậy bằng cách đánh vào
từ mà không phải hình ảnh, vì chính bản thân anh ta cũng chưa biết mình sẽ tìmđược chìa khoá như thế nào, mà chỉ sau khi có kết quả anh ta sẽ lựa chọn Một bạnyêu nhạc thuộc vài từ trong bài hát và bạn đó muốn nghe trọn vẹn bài hát cũng nhưbiết tên tác giả và tên tác phẩm Anh ta hay chị ta cũng phải số từ ít ỏi mà mình nhớđược của bài hát vào trong động cơ tìm kiếm Tất nhiên quá trình tìm kiếm sẽ xảy ratrong văn bản nếu như phiên bản của bài hát đã có Ngược lại, một phiên bản củabài hát sẽ được tạo ra một cách tự động bằng công cụ chỉ mục đa phương tiện, phiênbản cũng được lưu để dùng cho các lần tìm kiếm sau
Một cách đơn giản, chỉ mục đa phương tiện có thể được hiểu là sinh tự độngtương ứng với mỗi tập tin đa phương tiện một tập tin chỉ mục tương ứng bằng vănbản Việc này cũng dẫn tới bài toán nhận dạng tiếng nói khi tập tin đa phương tiện
là đoạn phim hoặc bài hát hay bản tin thời sự
1.2.4 Chương trình ra lệnh bằng giọng nói (voice commander)
Một ứng dụng khác xem ra đơn giản hơn trong bộ công cụ nhận dạng củaMicrosoft cũng đã được chúng tôi phân tích Chúng tôi muốn giới thiệu ứng dụngnày vì nó gần với mục đích nghiên cứu của chúng tôi, đó là sử dụng lời nói nhưmệnh lệnh cho máy tính
Microsoft giới hạn các câu lệnh nhận dạng trong các ứng dụng văn phòng hỗtrợ nhận dạng tiếng nói, trong khi đáng nhẽ họ có thể làm cho tất cả các ứng dụng
có trong hệ thống Một số tín hiệu tiếng nói được dùng để thay cho tổ hợp phímnóng cố định trong các ứng dụng của Microsoft ví dụ như nói từ bold thay cho ấnCtrl+B, nói từ open thay cho ấn Ctrl+O Một số tín hiệu nối nhau liên tiếp theo ngữcảnh thay cho việc dùng phím kích hoạt các mệnh lệnh, ví dụ nói các từ Format,
Trang 17Font, Arial để chọn tên phông hiện tại là Arial, hoặc nói các cụm từ Tools, Option,View, Field codes để bật tắt việc xem các trường trong văn bản.
Tất nhiên các tên mở rộng trong danh sách sẽ không được hỗ trợ Ví dụ sẽkhông có chuỗi âm thanh nào cho tên phông có VnTime hoặc VnArialH Chúng tacũng không sử dụng được các mệnh lệnh này vào những chương trình không hỗ trợnhận dạng tiếng nói, thậm chí các chương trình có hệ lệnh tương tự như MicrosoftExcel hoặc Microsoft Word Chúng ta cũng không sử dụng được các mệnh lệnh đơngiản của hệ thống như tắt máy (shutdown), hiện bàn làm việc (show desktop), hiệncửa sổ tìm kiếm (show file finder) mà đáng nhẽ chương trình nhận dạng nên hỗ trợcác mệnh lệnh hệ thống như vậy như chương trình thông dịch đã làm với phímWin+D, Win+F, Win+Break Chúng ta cũng không can thiệp được các hệ thốnglệnh không hỗ trợ phím nóng và có giao diện đặc biệt chuyên dụng như Printer,Properties trong cửa sổ quản lý lệnh in, hoặc Game, Save Game trong một sốchương trình trò chơi
1.2.5 Chương trình hội thoại (conversational computer)
Một số chương trình trên vô tuyến thường giới thiệu các máy tính thông minh
có thể nghe các câu hỏi và đưa ra các câu trả lời Thực chất đây là một hệ thống baogồm chức năng nhận dạng tiếng nói, chức năng suy luận, và chức năng tổng hợptiếng nói Và đây thường được coi là đích phát triển của các khoa học nhận dạng vàtrí tuệ nhân tạo Thậm chí chương trình máy tính có thể mô phỏng bộ não củaAlbert Einstein để hỏi và trả lời về vấn đề thuyết tương đối Chúng tôi không cóđược chi tiết về nghiên cứu của họ, nên chúng tôi không bình luận thêm về phươngpháp triển khai cũng như hạn chế của chương trình Nhưng điều chúng tôi muốnnhấn mạnh ở đây, theo góc độ của nhận dạng tiếng nói, là một câu trả lời ứng vớimột câu hỏi thực chất cũng là một đầu ra tương ứng với câu hỏi đó Nó không khácvới đầu ra văn bản hay đầu ra khối thông tin nếu nhìn dưới góc độ của nhận dạngtiếng nói
Trang 181.3 Khó khăn và thuận lợi
Trong phần này chúng tôi muốn trình bày một số các khái niệm liên quan đếntriển khai các hệ nhận dạng và giới hạn nghiên cứu Các khái niệm này thường đượcđưa ra trong các tài liệu nhận dạng tiếng nói như, kích thước từ vựng, độc lập ngườinói, tiếng nói liên tục
1.3.1 Chất lượng tiếng nói (quality of speech)
Chất lượng tiếng nói ảnh hưởng nhiều tới kết quả nhận dạng Ở mức âm học(acoustics), tiếng nói thu với tần số lấy mẫu cao có xu hướng được tham số hoáchính xác và do đó đưa ra kết quả nhận dạng cao hơn Tiếng nói ít nhiễu ví dụ nhưtrong phòng làm việc của các nhân có xu hướng dễ nhận dạng hơn tiếng nói nhiễucao ví dụ như ở trên đường đi và ở chợ Điều này cũng tự nhiên và dễ hiểu, việcnghe của máy tính cũng giống việc nghe của người Chúng ta thường cảm thấy khónghe và thường phải hỏi lại người nói khi giao tiếp ở nơi công cộng như rạp chiếubóng, nhà ga, sân bay, đường đi
Ở mức ngữ âm học (phonetics), tiếng nói phát âm rõ ràng rành mạch dễ dàngđược phân biệt hơn tiếng nói có lỗi phát âm như nói ngọng hoặc nói lắp Ví dụ đơngiản nhất là chữ "trợ" và "chợ" trong tiếng Hà Nội không thể phân biệt được nhưchữ "trợ" và "chợ" trong tiếng Nghệ An Cũng như vậy một số nơi của Hải Phòng
và Hải Dương phát âm các tiếng "nồng" thành "lồng" mặc dù họ vẫn viết chính tảđúng các chữ này Các chữ "giường", "rường", và "dường" trong tiếng Hà Nội nóichung là giống nhau nhưng khác nhau trong phương ngữ một số vùng Nam Định.Trong phần huấn luyện, Microsoft khuyến cáo người dùng phát âm theo giọngnói ngang (even tone) mà không phải giọng nói tự nhiên (natural tone) để nhằmnhận dạng chính xác Họ cũng khuyến cáo người dùng phát âm các từ rời rạc nhau
để bộ nhận dạng khỏi nhầm lẫn Thực chất các khuyến cáo trên chỉ nhằm tăng chấtlượng của tiếng nói
Trang 191.3.2 Các từ tách biệt và tiếng nói liên tục
Do tốc độ nói nhanh hay chậm, người ta phân biệt ra tiếng nói rời rạc và tiếngnói liên tục Tiếng nói rời rạc là tiếng nói trong đó các từ thường được phát âm cáchquãng, nghĩa là có các khoảng lặng giữa các từ Do đó ranh giới giữa các từ hầu như
rõ ràng, nhất là đối với các ngôn ngữ đơn âm Nhận dạng các từ tách biệt (isolatedword recognition) là nhận dạng các tín hiệu tiếng nói rời rạc Dựa vào đặc điểm củatiếng nói rời rạc, chúng ta có thể tách các phát âm thành các đoạn nhỏ, so sánhchúng với các mẫu phát âm trong từ điển, và đưa ra từ tương ứng như kết quả nhậndạng Nhược điểm của nhận dạng từ rời rạc là không hoạt động với tín hiệu tiếngnói không chứa các khoảng lặng, do đó người sử dụng các chương trình nhận dạng
từ rời rạc luôn phải cố gắng đọc thật chậm Kết quả là quá trình nhập liệu bằnggiọng nói thường bị chậm
Hình 1-2 Câu "cộng hoà xã hội chủ nghĩa việt nam" phát âm rời rạc
Nhận dạng tiếng nói liên tục (continuous speech recognition) hoạt động trêncác tín hiệu tiếng nói liên tục Tiếng nói liên tục là tiếng nói được phát âm liên tục,nghĩa là cuối của từ trước sẽ là đầu của từ sau Tiếng nói liên tục là tiếng nói tựnhiên mà chúng ta vẫn dùng để giao tiếp Tuy nhiên tiếng nói liên tục thường cónhững đặc điểm đặc biệt làm trở ngại quá trình nhận dạng Ví dụ các nguyên âmliền nhau có xu hướng biến thành một từ "cô ạ" thành "quạ", "chị hằng" thành
"chằng" Hoặc ví dụ các phụ âm giống nhau khó phân biệt "chín năm" và "chí nằm".Các lỗi nói như vậy khó khăn ngay cả với tai người tự nhiên
Trang 20Hình 1-3 Câu "cộng hoà xã hội chủ nghĩa việt nam" phát âm liên tục
Nói chung chúng ta cần phải nhận dạng được tiếng nói liên tục vì đó là tiếngnói tự nhiên của con người Khi chúng ta bắt người dùng phát âm rời rạc, khôngnhững người dùng mất thời gian nhiều hơn để nhập liệu mà người dùng còn pháttriển tâm trạng chán nản khi dùng ứng dụng tiếng nói Do đó sản phẩm nhận dạngcủa chúng ta trở thành thất bại Mặc dù vậy chúng ta cũng nên khuyến cáo ngườidùng nói nhanh vừa phải Trên thực tế, nếu chúng ta gặp người nói luyến thắng,chúng ta cũng không nghe kịp Đối với học sinh, nếu cô giáo đọc nhanh quá, họcsinh cũng không chép kịp Do vậy sản phẩm của chúng ta cần hoạt động nhanh hơnhoặc ít nhất bằng tốc độ nghe ghi của học sinh
1.3.3 Kích thước từ vựng
Số lượng từ càng lớn thì tốc độ nhận dạng càng giảm và độ chính xác nhậndạng cũng giảm Vì các bộ nhận dạng bao giờ cũng phải tìm kiếm trên không gianmẫu của các từ để đưa ra từ tương ứng của mẫu khớp nhất Và đương nhiên khi số
từ tăng thì độ phân biệt của các từ giảm do đó độ chính xác giảm, ví dụ các từ trongtiếng Việt giống nhau như "cát", "gát", "khát", hay các từ giống nhau trong tiếngAnh như "might", "my", "mine", "mile", "mire" có thể không bao giờ xuất hiệncùng nhau trong các ứng dụng nhận dạng chuyên dụng nhưng chúng có thể nằmcùng trong từ vựng của ứng dụng nhận dạng vạn năng như đọc chính tả
1.3.4 Biến đổi theo người nói (speaker)
Mỗi người có một giọng nói khác nhau, thậm chí một người lúc khoẻ và lúcngạt mũi nói khác nhau, và cũng một người lúc già và lúc trẻ nói khác nhau Do đóviệc nhận dạng cần phải tìm ra một hệ thống tham số bất biến (invariant) với người
Trang 21nói, nghĩa là các đoạn âm thanh của cùng một đoạn văn bản nhưng của các chủ thểkhác nhau nên được tham số hoá theo cách nào đó mà chúng càng giống nhau càngtốt Cũng cần nói thêm ở đây là hệ thống tham số còn cần phân biệt sao cho haiđoạn âm thanh của hai đoạn văn bản khác nhau càng khác nhau càng tốt để kết quảnhận dạng được duy nhất.
Nói chung, số lượng người nói khác nhau càng nhiều thì hệ thống cần phải lưutrữ nhiều mẫu hơn và tìm kiếm mất nhiều công hơn trên các mẫu lưu trữ Vì vậy sốlượng người nói cũng là khó khăn lớn của quá trình nhận dạng Tất nhiên chúng ta
có thể giải quyết khó khăn này bằng cách triển khai các hệ thống dùng cho một cánhân, nhưng chúng ta vẫn cần các hệ thống dùng cho máy công cộng
1.3.5 Độc lập người nói và phụ thuộc người nói
Nhận dạng độc lập người nói (speaker-independent) là nhận dạng hoạt độngtốt với nhiều người nói khác nhau, trừ những trường hợp có giọng nói quá đặc biệthoặc dị tật Nói chung các ứng dụng độc lập người nói thường cho kết quả khôngcao do phải tìm kiếm trên không gian dữ liệu quá lớn và phải sử dụng các mô hìnhquá tổng quát cho nhiều dạng người nói khác nhau Mặc dù vậy các ứng dụng nhậndạng độc lập người nói vẫn cần thiết, đặc biệt trong các dịch vụ công cộng
Hình 1-4 Nhận dạng trên máy tính cá nhân (phụ thuộc người nói)
Các ứng dụng nhận dạng tiếng nói phụ thuộc người nói (speaker-dependent)hoạt động tốt với người nói này nhưng không hoạt động tốt với người nói khác.Thông thường các chương trình nhận dạng phụ thuộc người nói cần phải được huấn
Trang 22luyện lại mỗi khi sử dụng để nhằm thích nghi với người sử dụng Ưu điểm của cácứng dụng nhận dạng phụ thuộc người nói có kích thước nhỏ và độ chính xác caohơn so với các ứng dụng nhận dạng độc lập người nói viết bằng thuật toán tươngứng Các ứng dụng nhận dạng phụ thuộc người nói do vậy phổ biến hơn trong cácmáy tính cá nhân.
Hình 1-5 Nhận dạng trên máy phục vụ công cộng (độc lập người nói)
1.3.6 Biến đổi theo phương ngữ (dialect)
Các vùng khác nhau thường sử dụng tập từ vựng khác nhau và có cách kết hợpcác từ khác nhau để tạo thành câu Cho nên nói chung ta cần phải đương đầu vớinhiều tập câu khác nhau cũng như tập từ vựng khác nhau nếu chúng ta muốn có hệthống nhận dạng
Việc các câu nói biến đổi theo các vùng ngôn ngữ khác nhau là trở ngại lớncho công việc mô hình hoá ngôn ngữ và nhận dạng tiếng nói Khi chúng ta thiết kếcác hệ nhận dạng đa phương ngữ (ví dụ như hệ hỏi đáp tự động), chúng ta buộc phảităng số lượng mẫu, tăng số mẫu câu, và tăng số lượng từ Không kể đến các yếu tốkhác, chỉ riêng việc tăng về số lượng các đơn vị nhận dạng đã làm tốc độ nhận dạngtăng và độ chính xác của nhận dạng giảm đi rất nhiều
Mặc dù vậy nhu cầu về hệ nhận dạng đa ngôn ngữ tồn tại Vì người dùngthường phải soạn thảo những văn bản trong đó có hai ngôn ngữ, ví dụ văn bản tiếngViệt trộn lẫn vài từ tiếng Anh Nhưng việc nhận dạng đa phương ngữ thường đi
Trang 23kèm với việc nhận dạng đa người nói, nghĩa là các hệ nhận dạng phục vụ công cộng
sẽ phải giải quyết vấn đề đa phương ngữ
1.3.7 Cấu trúc ngôn ngữ
Tiếng Việt là ngôn ngữ đơn âm tiết (monosyllabic) do đó việc nhận dạng âmthanh dễ dàng hơn các ngôn ngữ đa âm tiết Đặc biệt trong nhận dạng các từ rời rạc,chúng ta có thể cắt các đoạn âm thanh giữa hai khoảng lặng, tìm kiếm mẫu tươngứng trong từ điển, và đưa ra từ nhận được Điều này là không thể thực hiện với cácngôn ngữ đa âm tiết
Tiếng Việt có cách phát âm duy nhất, nghĩa là không có hai từ nào phát âmgiống nhau nhưng lại viết khác nhau Trong tiếng Anh, có một số từ phát âm giốngnhau, ví dụ "to" và "two", hay "ones" và "once" do đó hệ thống nhận dạng sẽ cầnphải có ngữ cảnh để phân biệt các từ khi nghe một phát âm Tất nhiên một sốphương ngữ của tiếng Việt không phân biệt các chữ "l" và "n", hay "tr" và "ch",hoặc "gi", "d", và "r" nhưng đó là lỗi nói, không phải do tự thân tiếng Việt có cấutạo trùng lặp như vậy
Ngữ pháp tiếng Việt rất nhập nhằng Một mặt do tiếng Việt đơn âm tiết mặtkhác do các từ tiếng Việt đồng âm khác nghĩa Đây là trở ngại rất lớn đối với cácchương trình phân tích cú pháp cũng như chương trình nhận dạng dựa trên cú pháp
Do đó chúng ta thường chỉ nhận dạng ngôn ngữ con của tiếng Việt, nghĩa là phầntiếng Việt đã được chuẩn hoá bởi một văn phạm nào đó
1.4 Các bài toán liên quan tới nhận dạng tiếng nói
Trong phần này, chúng tôi muốn trình bày các bài toán trong lĩnh vực xử lýtiếng nói (speech processing) Mặc dù mục tiêu và do đó kết quả của các bài toánkhác nhau, nhưng chúng đều thao tác trên tiếng nói và do đó chúng có chung khôngnhững các thư viện xử lý tín hiệu mà còn chung về cấu trúc hệ thống, nghĩa là đều
có các tầng xử lý ngữ âm học (Phonetics), từ vựng học (lexicology), và ngữ pháphọc (syntatics)
Trang 241.4.1 Nhận dạng tiếng nói và tổng hợp tiếng nói
Nhận dạng tiếng nói (speech recognition) và tổng hợp tiếng nói (speechsynthesis) thường được xem như hai bài toán đối ngược, nhưng nói chung hai bàitoán này đều thuộc dạng các bài toán chuyển đổi và do đó có cấu trúc tương tự nhưnhau Bài toán tổng hợp tiếng nói thường được xem là đơn giản hơn bài toán nhậndạng tiếng nói nhưng các thành phần để triển khai hệ nhận dạng và hệ tổng hợp làgiống nhau Chúng ta cũng cần có tri thức cú pháp hay cấu trúc câu để chúng tatổng hợp được ngữ điệu Chúng ta cũng cần có tri thức phát âm để có thể phát rađược các âm chính xác từ văn bản Nhưng quá trình tổng hợp tiếng nói có thể dùng
từ để tìm ra phát âm một cách chính xác, duy nhất, và nhanh chóng, trong khi quátrình nhận dạng phải hoạt động mệt mỏi trên tập các mẫu để tìm ra một vài từ màkhông phải duy nhất một từ, chưa chắc chính xác với ý định của người nói
1.4.2 Nhận diện người nói (speaker identification)
Bài toán nhận dạng tiếng nói có quan hệ với một số bài toán khác như xácminh người nói và nhận diện người nói Mặc dù đầu vào và đầu ra của chúng tương
tự nhau, nhưng cách mà chúng quan tâm đến dữ liệu đầu vào lại hoàn toàn tráingược Các bài toán xác minh người nói và nhận diện người nói tập trung vào cácđặc điểm riêng biệt của giọng nói trong khi bài toán nhận dạng tiếng nói tập trungvào các đặc điểm chung nhất của giọng nói
Nhận diện người nói (speaker identification) là dựa vào giọng nói nghe đượchay thu được để nhận ra người nói tương ứng dựa trên tri thức đã có về các cá nhân
và giọng nói của cá nhân Ví dụ nghe một bài hát mới trên đài phát thanh, chúng tatìm ra được tên ca sỹ đang hát bài hát mới đó nếu như chúng ta đã quen giọng của
ca sỹ này thông qua các bài hát cũ Do vậy nhận diện người nói tập trung vào cácđặc điểm riêng biệt của từng giọng nói và Nhận diện người nói cũng liên quan đếntìm kiếm trên tập hồ sơ người nói và đương nhiên khoá tìm kiếm chính là giọng nói
Trang 251.4.3 Xác minh người nói (speaker verification)
Xác minh người nói (speaker verification) là xác định xem giọng nói đã ghiđược có phải của người nói nào đã biết hay không Do đó bài toán xác minh ngườinói liên quan đến việc so sánh hai giọng nói và thường dùng trong giám định hoặcbảo mật Bài toán xác minh người nói cũng tập trung vào các đặc điểm riêng biệtcủa từng giọng nói
Khác với các bài toán nhận diện hay tìm kiếm, các bài toán xác minh dựa vàocác mẫu đã thu được trong quá khứ (ví dụ tại hiện trường vụ án) và mẫu lấy trựctiếp từ đối tượng cần được (ví dụ tại nơi xác minh) Và do đó chúng ta chỉ cần sosánh mà không cần tìm kiếm Tuy nhiên các bài toán xác minh người nói gần vớicác bài toán nhận dạng tiếng nói ở chỗ cấu trúc và đặc điểm của lời nói được quantâm hơn Xác minh người nói quan tâm tới cấu trúc và đặc điểm lời nói của cá nhân(cách phát âm một âm tiết, tốc độ nói, cách dùng từ của địa phương nào, ngữ điệucủa các nhân), trong khi nhận dạng tiếng nói quan tâm tới cấu trúc và đặc điểmtiếng nói của một cộng đồng người hay của một phương ngữ
1.5 Giới hạn nghiên cứu
Chúng tôi chưa có tham vọng biến máy tính thành thiết bị thông minh đến nỗi
nó có thể làm theo mọi câu lệnh của người dùng đưa vào, mà chúng tôi giới hạnnghiên cứu của mình trong các câu lệnh đơn giản vốn đã quen thuộc với người dùnghiện tại Chúng tôi tiếp tục những gì Microsoft đã đưa ra và cải thiện các kết quả đóthông qua một số giới hạn sau
Chúng tôi tập trung nghiên cứu tiếng Việt rời rạc trước và dành tiếng Việt liêntục cho các nghiên cứu tương lai Giới hạn này được đưa ra vì chúng tôi chưa tìmhiểu sâu về ranh giới giữa các từ trong tiếng nói liên tục Sự va chạm giữa các từtrong tiếng nói liên tục tạo ra các tín hiệu rất phức tạp và không mong muốn khiếncho độ chính xác của quá trình nhận dạng giảm đi đáng kể Chúng tôi đã có thửnghiệm trên tiếng nói liên tục nhưng chưa tìm ra phương pháp giải quyết
Mục tiêu của chúng tôi là phát triển các ứng dụng nhận dạng trên máy tính cánhân và cho người dùng cụ thể, do đó chúng tôi tập trung nghiên cứu các hệ nhận
Trang 26dạng phụ thuộc người nói Hơn nữa trang thiết bị nghiên cứu và số lượng mẫu thuthập được chưa cho phép chúng tôi mở rộng nghiên cứu sang lĩnh vực công cộng.Chúng tôi không viết một hệ thống tương tác mới mà chúng ta sử dụng lại hệthống có sẵn Điều đó không những làm đơn giản quá trình triển khai mà còn không
bỏ đi những ứng dụng đã có trong hệ thống Các hệ thống nhận dạng của Microsoftkhông khai thác được điều này mà chỉ hoạt động với các ứng dụng mới xây dựng có
Chúng tôi cố gắng thiết kế một bộ từ vựng và văn phạm mở đến mức có thể đểngười dùng có thể thêm vào Đây là đặc điểm không có trong hệ thống củaMicrsoft Trong hệ lệnh của Microsoft, chúng ta có thể ra lệnh Font Arial để đổiphông chữ hiện tại thành Arial, nhưng chúng ta không thể ra lệnh Font VnArial đểđổi phông chữ hiện tại thành VnArial, do từ VnArial không được thiết kế trong từđiển
Chúng tôi nhận dạng ở mức chuyển đổi tín hiệu vào thành tín hiệu ra, ví dụngười dùng huấn luyện bằng bộ chữ TCVN3 thì hệ thống sẽ đưa ra đúng ký hiệucủa TCVN3, chưa có một sự chuyển đổi tín hiệu ra sau khi nhận dạng Do đó chúngtôi bỏ qua sự không thống nhất trong chính tả của tiếng Việt mà chúng tôi trình bàytrong phần phân tích tiếng Việt
1.6 Cách tiếp cận
Phương pháp tiếp cận của chúng tôi có nhiều điểm khác biệt so với các cáchtiếp cận trước đây Các cách tiếp cận trước đây thường dùng các trọng số để cắt đicác nhánh tìm kiếm kém chất lượng hoặc dùng các bảng băm cũng như các từ điển
Trang 27bó cụm để gia tốc quá trình tìm kiếm Chúng tôi giới hạn và định hướng quá trìnhtìm kiếm bằng cách tích luỹ (accumulate) thông tin nghe được Phương pháp nàydựa trên quá trình nghe tự nhiên ở tai người Và phương pháp này cũng có lý thuyếtchương trình dịch làm cơ sở vững chắc.
Cách tổ chức cơ sở tri thức nhận dạng của chúng tôi dựa trên mạng lưới Cách
tổ chức này không những hỗ trợ đắc lực phương pháp nhận dạng của chúng tôi màcòn tiết kiệm không gian lưu trữ do mạng lưới có thể chia sẻ các phần giống nhau.Chúng tôi cũng tổ chức các mẫu thành các từ điển cục bộ trong các trạng thái nhằmgiảm thời gian tải lên và ghi xuống của từ điển
Trong suốt quá trình nghiên cứu, chúng tôi coi đầu vào của quá trình nhậndạng là một tập tin liên tiếp, nghĩa là mẫu nọ nối tiếp mẫu kia, mà chúng tôi không
xử lý toàn bộ tập tin một lúc Quan niệm này dẫn đến nhiều triển khai tối ưu Thứnhất chúng tôi không cần tải toàn bộ tập tin âm thanh lên một lúc (trong trường hợpnhận dạng tập tin) Và chúng tôi có thể nhận dạng lần lượt các từ khi có tín hiệu từthiết bị thu thanh (trong trường hợp nhận dạng trực tiếp từ micro)
Chúng tôi cũng phát triển ngữ cảnh của các câu trước với câu sau, cái mà môhình ngôn ngữ không bao giờ đạt được Và chúng tôi ứng dụng phát triển này đểnhận dạng và chuyển đổi các mệnh lệnh thành các khối tham số Đây là một ứngdụng khác của nhận dạng tiếng nói, có thể sử dụng vào trong các hệ thông dịch tựđộng hoặc các hệ hiểu tiếng nói, và hệ chuyên gia nói chung
Trang 28Chương 2
CƠ SỞ TOÁN HỌC
Trong phần này, chúng tôi đưa ra các khái niệm cơ sở Các khái niệm này xuấthiện ở nhiều nơi trong các phần tiếp theo Do đó người đọc cần nắm vững các kháiniệm trước khi đi vào các phần tiếp theo
Trong phần này chúng tôi cũng đưa ra triển khai của các khái niệm toán học.Đáng lẽ chúng sẽ được đưa vào phần triển khai của tài liệu, nhưng để tiện cho độcgiả theo dõi và đảm bảo tính liền mạch của vấn đề được trình bày, chúng tôi gắnmột số phần triển khai vào phần cơ sở toán học Việc này còn có một lợi điểm nữa
là chúng ta có thể hiểu rõ hơn các khái niệm, vì các khái niệm không những được
mô tả bằng ngôn ngữ tự nhiên và ngôn ngữ hình thức trong toán học mà còn được
mô tả bằng ngôn ngữ lập trình hay ngôn ngữ định nghĩa dữ liệu vốn quen thuộc và
dễ hiểu trong cộng đồng những người làm tin học
2.1 Từ điển mẫu (pattern dictionary)
Trong quá trình triển khai cũng như mô hình hoá bài toán, chúng tôi sử dụngkhái niệm từ điển như một ánh xạ giữa tập các ký hiệu vào và tập ký hiệu ra Tuynhiên ánh xạ này được lưu trữ mà không phải tính toán Thông thường có thể cónhiều hơn một ký hiệu vào tương ứng với cùng một ký hiệu đầu ra, ví dụ hai môhình khác nhau của cùng một từ tương ứng với từ đó, nhưng dứt khoát không thể cómột ký hiệu đầu vào tương ứng với hai từ khác nhau
2.1.1 Định nghĩa hình thức từ điển mẫu
Thực chất từ điển là một ánh xạ từ tập ký hiệu đầu vào tới tập ký hiệu đầu ra,nhưng ánh xạ này có ba tính chất đặc trưng là rời rạc, hữu hạn, và được lưu trữ Rờirạc vì các mẫu trong từ điển thường được trích ra một cách ngẫu nhiên trong khônggian mẫu liên tục Hữu hạn vì số phần tử trong từ điển là một con số hữu hạn khôngthể tính trên toàn trục số như các ánh xạ thông thường Và được lưu trữ vì nói
Trang 29chung không có quy tắc tính toán nào giữa một mẫu với một ký hiệu ra (ví dụ mộtvéc tơ tiếng nói và một từ tiếng Việt) mà chúng ta phải lưu trữ.
Tất nhiên mô hình toán học gần nhất của từ điển mẫu trong trường hợp này làquan hệ (relation) nhưng quan hệ lại là khái niệm quá rộng so với khái niệm ánh xạ,cho nên chúng tôi định nghĩa từ điển như sau
D = <Π, Σ, δ>
Π là một tập các mẫu, nghĩa là Π = { p1, p2, , pk}
Σ là một tập các ký hiệu, nghĩa là Σ = { s1, s2, , sn }
δ là ánh xạ từ Π vào Σ, nghĩa là δ(pi) = sj
Bảng 2-1 Định nghĩa từ điển mẫu
Dưới đây chúng tôi trình bày một ví dụ rất gần với triển khai của chúng tôi về
từ điển Trong ví dụ này mỗi mẫu được đặc trưng bởi ba con số và mỗi từ là một từđơn trong tiếng Việt
Trang 302.1.2 Triển khai từ điển mẫu
Thông thường từ điển được triển khai thành hai bảng Một bảng chính lưu trữcác mẫu hay nguồn của từ điển Mỗi phần tử trong bảng chính sẽ chứa một con trỏtham chiếu tới bảng phụ Bảng phụ thường chứa ký hiệu đầu ra được dùng làm kếtquả cho quá trình nhận dạng hay nó chính là đích của từ điển Ví dụ như một từđiển gồm tập hợp các mẫu, mỗi mẫu có một con trỏ tới một từ tương ứng, sẽ đượcđịnh nghĩa như sau
Bảng 2-4 Định nghĩa triển khai của từ điển mẫu
Mỗi một mẫu thường được coi như một véc tơ có nhiều thành phần(component) và trường quan trọng không thể thiếu được (khi nó là bộ phần của từđiển) là con trỏ tới một từ Trong triển khai, chúng tôi dùng trường định danh của từthay cho con trỏ tới từ trong khi mẫu đang được đọc lên Sau khi hoàn tất việc đọctrường này không còn ý nghĩa nữa
Trang 31Một từ có thể hiểu đơn giản là một chuỗi ký tự Nhưng gắn trong một từ điểnvới tư cách là một vật được tham chiếu đến, mỗi từ cần phải có một khoá chính Do
đó định nghĩa từ như sau
2.2.1 Định nghĩa hình thức về văn phạm
Văn phạm là một cấu trúc dùng để lưu quy tắc sinh các câu của một ngôn ngữ
Nó cũng được dùng để phân tích cú pháp ngôn ngữ Một cách đơn giản, văn phạmgồm một tập các ký hiệu và tập các luật biến đổi các chuỗi ký hiệu này thành chuỗi
ký hiệu khác, mặc dù vậy chúng ta có định nghĩa chính xác về văn phạm như sau
G = <V, i, F, C, P> = <Σ, ∆, i, Π>
Trong đó
V gọi là tập ký hiệu
i xác định ký hiệu khởi đầu
F xác định tập các ký hiệu khởi đầu phân loại, F có thể chứa i
C xác định tập ký hiệu kết thúc C ≡ Σ, C ∩ F = ∅, C ∩ {i}=∅
P là tập luật, P≡Π
Σ là tập các ký hiệu kết thúc
∆ là tập các ký hiệu thay thế, ∆ ∪ Σ = V, ∆ ∩ Σ=∅
Trang 32Bảng 2-7 Định nghĩa hình thức văn phạm
Các luật của văn phạm là công thức xác định một ký tự sẽ sinh ra một chuỗi
ký tự nào hoặc một số chuỗi ký tự nào Do đó tập luật có thể được coi như ánh xạ từtập ký tự sang tập chuỗi ký tự, chính xác hơn là sang tập các tập con của tập chuỗi
ký tự Ví dụ văn phạm đơn giản nhất
G = <V, i, F, C, P>
V = { s, n, vp, v, pl, tôi, nó, đi, ra, chơi, chợ }
i = s
F = { n, v, pl }
C = { tôi, nó, đi, ra, chơi, chợ }
R = { s->n vp, vp->n pl, n->nó, n->tôi, v->đi, v->ra, pl->chơi, pl->chợ }
Bảng 2-8 Ví dụ về văn phạm
Bằng cách sử dụng các luật trong tập luật với ký hiệu ban đầu, chúng ta có thểsinh ra các câu trong ngôn ngữ Quá trình thay thế sẽ kết thúc khi tất cả các ký tựtrong chuỗi thuộc tập ký tự hằng C Một chuỗi ký tự có thể sinh ra hai chuỗi mớinếu nó chứa một ký tự có hai luật sinh
s
n vp
tôi vp, nó vp
tôi v pl, nó v pl
tôi đi pl, tôi ra pl, nó đi pl, nó ra pl
tôi đi chơi, tôi đi chợ, tôi ra chơi, tôi ra chợ, nó đi chơi, nó đi chợ, nó ra chơi, nó ra chợ
Bảng 2-9 Ngôn ngữ sinh bởi văn phạm
2.2.2 Biểu diễn đơn giản của văn phạm
Trong quá trình triển khai, chúng tôi biểu diễn văn phạm bằng một tập tin vănbản gồm danh sách các luật cách nhau bằng dấu chấm phảy Các luật có cùng kýhiệu phía trái được viết gộp cách nhau bởi dấu ghạch Ký hiệu bắt đầu được đánh
Trang 33dấu bằng dấu sao trong định nghĩa, ký hiệu phân loại có dấu cộng trong phần địnhnghĩa, ký hiệu hằng được bọc trong giữa các dấu ngoặc kép.
Bảng 2-10 Biểu diễn văn phạm trong tập tin
Cách biểu diễn này xúc tích và trực quan hơn cách biểu diễn toán học Do đóvăn phạm trên hoàn toàn tương đương với văn phạm trong ví dụ Thật vậy, ký tự i
có thể được nhặt ra từ phía sau dấu sao Tập ký tự F có thể được nhặt ra bằng các ký
tự sau dấu cộng Tập ký tự C có thể được nhặt ra bằng các ký tự trong dấu ngoặc.Tập luật có thể được nhặt ra bằng cách tách các dòng trên thành dạng một vế phải
và một vế trái
2.2.3 Định nghĩa triển khai của văn phạm
Trong triển khai, chúng tôi thay đổi một chút để biểu diễn văn phạm Thay đổinày gần với biểu diễn đơn giản của văn phạm đã trình bày trong phần trên Chúngtôi coi văn phạm là tập các luật và tập các ký hiệu Tập luật cần được duy trì để chia
sẻ với tất cả các ký hiệu Chúng tôi chỉ lưu vế phải của luật Mỗi ký tự sẽ trỏ để cácluật mà nó sinh ra Cách lưu trữ này đặc biệt hữu ích cho việc sinh và phân tích cúpháp từ dưới lên như SLR hay GLR
Trang 34Bảng 2-11 Định nghĩa triển khai của văn phạm
Các tập i, F, C sẽ được chuyển vào như thuộc tính của ký hiệu Nghĩa là kýhiệu loại i và ký hiệu loại F, và ký hiệu loại C Chú ý rằng ký hiệu loại hằng(constant) hay C thì không thể là ký hiệu biến (variable) hai i và F, vì chúng ta córàng buộc trong định nghĩa C ∩ F = ∅, C ∩ {i} = ∅ Nhưng ký hiệu khởi đầu icũng có thể là ký hiệu phân loại, vì không nhất thiết {i} ∩ F = ∅
struct symbol_s {
longnat_t m_id;
string_s m_name;
enum_s m_var; //là hằng hay biến
bool_t m_var_start; //nếu là biến thì có thể là khởi đầu hay không
bool_t m_var_pos; //nếu là biến thì có thể là phân loại không
rule_s **m_rule;
longnat_t m_rule_num;
};
Bảng 2-12 Định nghĩa ký hiệu trong văn phạm
Các luật được coi là danh sách các ký hiệu, và không cần có vế trái do các kýhiệu vế trái luôn tham khảo tới danh sách luật Các luật cần có định danh do chúngđược chia sẻ trong hệ thống
Trang 352.3 Ngôn ngữ (language)
Trong quá trình triển khai, chúng tôi cần dùng đến khái niệm ngôn ngữ để mô
tả giới hạn các mệnh lệnh xử lý Ngôn ngữ (language) theo cách sử dụng của chúngtôi như là vật tương đương của văn phạm (grammar) Tuy nhiên ngôn ngữ chỉ dùng
để biểu diễn ngôn ngữ chính quy và do đó dùng để xây dựng sơ đồ chuyển trạngthái tuyến tính, trong khi văn phạm biểu diễn ngôn ngữ phi ngữ cảnh và dùng đểxây dựng sơ đồ chuyển trạng thái đẩy xuống
Về mặt toán học, ngôn ngữ là tập hợp vô hạn các câu Nhưng về mặt triểnkhai, chúng ta thường lưu trữ một ngôn ngữ là tập hợp hữu hạn các câu Ngôn ngữhữu hạn như vậy thường được biểu diễn dễ dàng trong máy tính dưới dạng tập tinvăn bản (tập hợp các câu, mỗi câu trên một dòng) hoặc dưới dạng sơ đồ chuyểntrạng thái tuyến tính (tập hợp các trạng thái nối với nhau bởi các từ)
Ví dụ cho từ điển gồm ba ký hiệu V1 = { tôi, yêu, em } Chúng ta sẽ có mộtngôn ngữ rất phong phú bao được liệt kê như sau (Chúng tôi thêm dấu cách vàogiữa các ký hiệu để dễ nhìn)
L1 = language(V1) = {
tôi, yêu, em,
tôi tôi, tôi yêu, tôi em, yêu yêu, yêu tôi, yêu em, em tôi, em yêu, em em,
Trang 36tôi tôi yêu, tôi tôi em, tôi tôi tôi, tôi yêu em, em yêu tôi,
}
Bảng 2-14 Ví dụ về ngôn ngữ
Tất nhiên phần lớn các câu hay các chuỗi trong ngôn ngữ trên không phải làcác câu của tiếng Việt Nhưng chúng tôi không định mô tả tiếng Việt trong ví dụnày, mà chúng tôi chỉ đưa ra ví dụ về ngôn ngữ
Ví dụ cho từ điển ký hiệu gồm hai ký tự V2 = { 0, 1} chúng ta sẽ có một ngônngữ rất phong phú được liệt kê như sau
2.3.2 Biểu diễn ngôn ngữ trong đĩa từ
Trong đĩa từ, chúng tôi lưu ngôn ngữ thành một tập tin văn bản Trong đó mỗicâu của ngôn ngữ được viết trên một dòng Chú thích dòng và chú thích khối cũngđược thêm vào nhằm làm tập tin có thêm phần giải thích Chú thích này được viếttheo kiểu C++ Các dấu câu như hai chấm, chấm phảy, chấm nếu có cũng được coinhư một từ bình thường, do đó có thể viết ở bất kỳ phần nào trong dòng Trên thực
tế, lúc ta đọc chính tả hoặc ra lệnh bằng giọng nói để các dấu câu xuất hiện chúng taphải đọc cả tên của dấu câu
Trang 37/*Các câu lệnh của hệ điều hành */
Run Winamp //ấn vào biểu tượng winamp trong desktop
Run Winword //ấn vào biểu tượng winword trong desktop
Show desktop //ấn tổ hợp Win+D
Show taskbar //ấn tổ hợp Ctrl+Esc
Close current application //ấn tổ hợp Alt+F4
Shutdown //đóng các ứng dụng và tắt máy
/*Các câu lệnh thường gặp trong một số ứng dụng */
File Open … Ok //Câu lệnh mở tài liệu thông thường, tên tập tin phải chọn
File Close //Câu lệnh đóng tài liệu thông thường
File Print
Edit Copy
Edit Select All
Edit Paste
Bảng 2-16 Biểu diễn ngôn ngữ trong tập tin
2.4 Sơ đồ chuyển trạng thái tuyến tính (linear state transition diagram)
Sơ đồ chuyển trạng thái tuyến tính cũng có thể được hiểu như mạng lưới cáctrạng thái (state) và các phép chuyển (transition) trong đó các phép chuyển đượcgán các nhãn là các từ Do đó duyệt dọc theo một đường đi từ trạng thái đầu tiênđến trạng thái cuối cùng ta sẽ có một câu sinh bởi sơ đồ chuyển trạng thái tuyếntính
Sơ đồ chuyển trạng thái tuyến tính có thể dùng để lưu trữ một ngôn ngữ(language) nghĩa là một tập câu và theo một cách nào đó có thể hiểu tương đươngvới khái niệm mô hình ngôn ngữ
Trang 382.4.1 Định nghĩa hình thức
Một sơ đồ chuyển trạng thái tuyến tính gồm một tập các trạng thái Q, tập từvựng Σ và ∆, một trạng thái ban đầu i, và tập trạng thái kết thúc F, và một tập cácphép chuyển δ
Bảng 2-17 Định nghĩa hình thức sơ đồ chuyển trạng thái tuyến tính
Chúng tôi chỉ định nghĩa sơ đồ chuyển trạng thái tuyến tính đơn định trong đómột trạng thái cũ q và một ký hiệu vào v sẽ cho ta một trạng thái mới q’ mà khôngphải tập các trạng thái Mặc dù trên thực tế và về mặt toán học có tồn tại các sơ đồnhư vậy nhưng trong nghiên cứu của chúng tôi, chúng tôi chỉ dùng sơ đồ chuyểntrạng thái tuyến tính đơn định (deterministic)
Dưới đây là ví dụ về một sơ đồ chuyển trạng thái tuyến tính trong đó các từđược ghi trên các cung chuyển, các trạng thái kết thúc được vẽ bằng hình vuông,trạng thái bắt đầu được vẽ bằng hình tròn có mũi tên đi vào Bên cạnh là ngôn ngữtương ứng do sơ đồ chuyển trạng thái biểu diễn Chúng ta cũng có thể dùng ngônngữ này để sinh ra sơ đồ chuyển trạng thái
Trang 39Hình 2-1 Ví dụ về sơ đồ chuyển trạng thái tuyến tính
2.4.2 Định nghĩa triển khai
Trong triển khai, chúng tôi coi sơ đồ chuyển trạng thái như một tập các trạngthái và tập các đường chuyển Mỗi trạng thái sẽ có một thuộc tính để xác định xem
nó có là trạng thái đặc biệt hay không (ví dụ như trạng thái bắt đầu hoặc trạng tháikết thúc) do đó chúng ta không cần mô tả tập trạng thái
Trang 40linear_state_s *append_state(linear_state_s *pre, word_s *word);
linear_state_s *get_first_state();
linear_state_s *get_next_state(vector_s *vect, linear_state_s *state=NULL);};
Bảng 2-18 Định nghĩa triển khai sơ đồ chuyển trạng thái tuyến tính
Mỗi trạng thái chứa một danh sách các phép dịch chuyển tới trạng thái tiếptheo để bao gồm ánh xạ δ Mỗi trạng thái cũng cần có định danh để được liên kết.Trạng thái cuối cùng thường trỏ tới một ký hiệu ra
Bảng 2-19 Định nghĩa trạng thái tuyến tính
Mỗi một phép dịch chuyển sẽ bao gồm một từ hoặc một ký hiệu vào và mộtcon trỏ tới trạng thái sẽ được chuyển đến
struct linear_shift_s {
input_symbol_s *m_sym;
linear_state_s *m_state;
};
Bảng 2-20 Định nghĩa phép chuyển tuyến tính
2.4.3 Thuật toán xây dựng
Các sơ đồ chuyển trạng thái tuyến tính thường được xây dựng trên một ngônngữ tương ứng Cho một ngôn ngữ hay một tập câu, chúng ta sẽ thêm các câu vào
sơ đồ chuyển trạng thái tuyến tính cho tới khi hết tập câu