Luận văn, khóa luận, chuyên đề, tiểu luận, quản trị, khoa học, tự nhiên, kinh tế
Trang 1LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
Th.s BÙI TIẾN LÊN
Trang 2Em xin gởi lời cảm ơn đến các thầy cô trong trường, đặc biệt là các thầy cô bộ môn Công Nghệ Tri Thức đă tạo ra một môi trường thật hoàn hảo cho chúng em học tập và nghiên cứu khoa học
Em cũng không thể không nhắc đến sự động viên chăm sóc của gia đình, sự cộng tác giúp đỡ và ủng hộ tinh thần của bạn bè
Em xin được tri ơn tất cả
Nguyễn Hồng Quang
Trang 3KHOA CNTT –
ĐH KHTN
MỤC LỤC
DANH SÁCH HÌNH VẼ 4
M Ở Đ Ầ U 6
Chương 1 TỔNG QUAN 8
1.1 Nhận dạng 8
1.2 Nhận dạng tiếng nói 9
1.2.1 Xử lý âm thanh 9
1.2.2 Phân loại nhận dạng tiếng nói 10
1.2.2.1 Nhận dạng từ liên tục và nhận dạng từ cách biệt 10
1.2.2.2 Nhận dạng phụ thuộc người nói và độc lập người nói 11
1.2.3 Hệ thống nhận dạng tiếng nói tự động 13
1.2.4 Lý thuyết nhận dạng tiếng nói 14
1.2.4.1 Rút trích vector đặc trưng 15
1.2.4.2 Phân lớp 17
Chương 2 XỬ LÝ TIẾNG NÓI RÚT TRÍCH VECTOR ĐẶC TRƯNG 21
2.1 Xử lý tiếng nói 21
2.1.1 Lấy mẫu tín hiệu 21
2.1.2 Bộ lọc tín hiệu 22
2.1.3 Dò tìm điểm cuối (end-point detection) 24
2.2 Rút trích đặc trưng 26
2.2.1 Các bước rút trích đặc trưng 27
2.2.1.1 Làm rõ tín hiệu 27
2.2.1.2 Phân đoạn thành các khung 27
2.2.1.3 Lấy cửa sổ 28
2.2.2 Các dạng đặc trưng tiếng nói 33
2.2.2.1 Biến đổi tín hiệu sang miền tần số 33
2.2.2.2 Đặc trưng năng lượng 35
2.2.2.3 Đặc trưng MFCC 36
2.2.2.4 Đặc trưng LPC 39
2.2.2.5 Đặc trưng tần số cơ bản 42
Chương 3 MÔ HÌNH MARKOV ẨN 49
3.1 Mô hình Markov ẩn 49
3.2 Ứng dụng Mô hình Markov vào nhận dạng tiếng nói 51
3.2.1 Thuật toán tiến 52
3.2.2 Thuật toán lùi 53
3.2.3 Phương pháp tìm chuỗi trạng thái tối ưu 54
3.2.4 Thuật toán Viterbi 55
3.2.5 Ước lượng Baum-Welch 58
Trang 4KHOA CNTT –
ĐH KHTN
3.3.4 Nhận xét 65
Chương 4 HMM TOOLKIT 67
4.1 Cấu trúc tập tin trong HTK 69
4.1.1 Cấu trúc tập tin vector đặc trưng HTK 69
4.1.2 Cấu trúc tập tin mô hình HMM 71
4.1.3 Cấu trúc tập tin đánh nhãn dữ liệu 75
4.1.4 Cấu trúc tập tin văn phạm 78
4.2 Nhận dạng nguyên từ 81
4.3 Nhận dạng theo mô hình âm vị 85
Chương 5 ỨNG DỤNG: ĐIỀU KHIỂN XE TỰ ĐỘNG BẰNG TIẾNG NÓI 88 5.1 Thử nghiệm nhận dạng tiếng nói Tiếng Việt 89
5.1.1 Nhận dạng tĩnh (offline) 89
5.1.1.1 Dùng vector đặc trưng dạng LPCEPSTRA_E_D 89
5.1.1.2 Dùng vector đặc trưng dạng LPCEPSTRA_E_D_A 89
5.1.1.3 Dùng vector đặc trưng dạng MFCC_0_D 89
5.1.1.4 Dùng vector đặc trưng dạng MFCC_0_D_A 90
5.1.1.5 Dùng vector đặc trưng dạng MFCC_0_D_A_Z 90
5.1.2 Nhận dạng thời gian thực (online) 91
5.1.2.1 Nhận dạng theo mô hình âm vị dùng MFCC_0_D_A_Z 91
5.1.2.2 Nhận dạng nguyên từ dùng MFCC_0_D_A_Z 92
5.2 Ứng dụng nhận dạng tiếng nói 93
KẾT LUẬN 96
TÀI LIỆU THAM KHẢO 98
Phụ lục MỘT SỐ CÔNG CỤ TRONG HTK 99
Trang 5KHOA CNTT –
ĐH KHTN
DANH SÁCH HÌNH VẼ
Hình 1.1: Sơ đồ nhận dạng tổng quát 8
Hình 1.2: Các lĩnh vực trong xử lý tiếng nói 10
Hình 1.3: Ranh giới giữa “cô” và “ấy” không rõ ràng 11
Hình 1.4: Người nói khác nhau sẽ phát âm khác nhau 12
Hình 1.5: Mô hình nhận dạng bán độc lập người nói 13
Hình 1.6: Các thành phần cơ bản của hệ thống ASR 14
Hình 1.7: Các dạng cửa sổ thường dùng 16
Hình 1.8: Tổng quát quá trình rút trích vector đặc trưng 17
Hình 1.9: Các kỹ thuật nhận dạng tiếng nói và xu hướng phát triển 18
Hình 1.10: HMM với 3 trạng thái và trọng số chuyển trạng thái 20
Hình 2.1: Ví dụ về lấy mẫu tín hiệu f(t) trên miền thời gian 22
Hình 2.2: Minh họa hoạt động bộ lọc FIR 23
Hình 2.3: Minh họa hoạt động bộ lọc IIR 23
Hình 2.4: Dò tìm điểm cuối dựa vào mức năng lượng 25
Hình 2.5: Sơ đồ rút trích vector đặc trưng tổng quát 26
Hình 2.6: Sơ đồ rút trích đặc trưng chi tiết 27
Hình 2.7: Phân đoạn tiếng nói thành các khung chồng lấp 28
Hình 2.8: Sự khác biệt giữa các dạng cửa sổ tín hiệu 32
Hình 2.9: Đồ thị biểu diễn mối quan hệ giữa Mel và Hz 36
Hình 2.10: Các bước trích đặc trưng MFCC 37
Hình 2.11: Bộ lọc trên thang Mel 37
Hình 2.12: Bộ lọc trên tần số thật 38
Hình 2.13: Minh họa các bước biến đổi MFCC 38
Hình 2.14: Sơ đồ xử lý LPC dùng cho trích đặc trưng tiếng nói 40
Hình 2.15: Hình dạng tín hiệu tiếng nói 47
Hình 2.16: Kết quả trích F0 48
Hình 2.17: Kết quả sau khi lọc Median 48
Hình 3.1: Minh họa hoạt động của mô hình Markov ẩn 49
Hình 3.2: Mô hình Left - Right 51
Hình 3.3: Mô hình Bakis 51
Hình 3.4: Mô hình Tuyến tính 51
Hình 3.5:Minh họa thuật toán tiến 53
Hình 3.6:Minh họa thuật toán lùi 53
Hình 3.7: Ví dụ minh họa thuật toán Viterbi 56
Hình 3.8:Ví dụ minh họa thuật toán Viterbi (tt) 57
Hình 3.9: Ví dụ minh họa so khớp dùng thuật toán tiến-lùi 58
Trang 6KHOA CNTT –
ĐH KHTN
Hình 4.3: Các công cụ và chức năng trong HTK 69
Hình 4.4: Phân bố các tham số trong 1 số vector đặc trưng của HTK 71
Hình 4.5: Các dạng đặc trưng có thể chuyển đổi qua lại bằng HCopy 71
Hình 4.6: Dạng cơ bản của 1 tập tin HMM (chưa được khởi tạo) 72
Hình 4.7: Dạng cơ bản của 1 tập tin HMM có sử dụng pha trộn Gaussian 74
Hình 4.8: Dạng cơ bản của 1 tập tin HMM có sử dụng đa luồng 75
Hình 4.9: Vai trò của văn phạm trong nhận dạng dùng HTK 78
Hình 4.10: Lược đồ văn phạm 79
Hình 4.11: Mô hình minh họa các văn phạm 80
Hình 4.12: Minh họa việc nhận dạng nguyên từ 81
Hình 4.13: Huấn luyện nguyên từ và các công cụ hỗ trợ 82
Hình 4.14: Quy trình hoạt động của HInit 83
Hình 4.15: Quy trình hoạt động của HCompV 83
Hình 4.16: Quy trình hoạt động của HRest 84
Hình 4.17: Huấn luyện theo mô hình âm vị dùng HTK 85
Hình 4.18: Quá trình xử lý các tập tin trong HERest 87
Hình 5.1: Mô hình ngôn ngữ dành cho hệ nhận dạng 88
Trang 7KHOA CNTT –
ĐH KHTN
MỞ ĐẦU
Tiếng nói là phương tiện giao tiếp cơ bản nhất của loài người, nó hình thành
và phát triển song song với quá trình tiến hóa của loài người Đối với con người, sử dụng lời nói là một cách diễn đạt đơn giản và hiệu quả nhất Ưu điểm của việc giao tiếp bằng tiếng nói trước tiên là ở tốc độ giao tiếp, tiếng nói từ người nói được người nghe hiểu ngay lập tức sau khi được phát ra Bên cạnh đó, tiếng nói là cách giao tiếp được sử dụng rộng rãi nhất – bất cứ ai (dĩ nhiên là trừ những người khuyết tật) cũng có thể nói được
Ngày nay, nhờ sự phát triển của khoa học kỹ thuật, máy móc dần dần thay thế các lao động tay chân Tuy nhiên để điều khiển máy móc, con người phải làm khá nhiều thao tác tốn nhiều thời gian và cần phải được đào tạo Điều này gây trở ngại không ít đối với việc sử dụng các máy móc, thành tựu khoa học kỹ thuật Trong khi đó, nếu điều khiển máy móc thiết bị bằng tiếng nói sẽ dễ dàng hơn Nhu cầu điều khiển máy móc thiết bị bằng tiếng nói càng bức thiết hơn đối với các thiết
bị cầm tay, như: điện thoại di động, máy Palm/Pocket PC,…
Để cho máy tính có thể nghe được nhiều người đã vật lộn với tín hiệu âm thanh trong hơn nửa thế kỷ qua trong lĩnh vực nhận dạng tiếng nói Quá trình này được đánh dấu bằng các kết quả nghiên cứu đặc sắc trong lĩnh vực phân tích và xử
lý tiếng nói, các ứng dụng thực tế khá hữu ích Nhưng dù sao, khả năng của máy vẫn vẫn còn trong khoảng giới hạn, còn cần phát triển hơn nữa để có thể thật sự đáp ứng nhu cầu thực sự của cuộc sống Mặt khác, nhận dạng tiếng nói chỉ đang được phát triển trên các thứ tiếng khác, nhưng chưa được phát triển và ứng dụng mạnh ở nước ta Do tình hình phát triển ở Việt Nam, để cho công cuộc nhận dạng tiếng nói thật sự được quan tâm, đầu tư và tạo thành các nhóm các phòng thí nghiệm chuyên nghiên cứu về nhận dạng tiếng nói thì thật sự gặp khó khăn
Luận văn này xây dựng với mong muốn góp phần thúc đẩy quá trình trên,
Trang 8KHOA CNTT –
ĐH KHTN
nhận thấy rằng nếu như chúng ta có sự phổ biến kiến thức rộng rãi, không chỉ cho những người chuyên về lĩnh vực công nghệ thông tin, mà còn cho những người không chuyên thì chúng ta hoàn toàn có thể thúc đẩy, phát triển và gặt hái nhiều thành công hơn Vì lúc đó vấn đề không chỉ được nghiên cứu, phát triển bởi một số người mà là của nhiều người Những lĩnh vực nghiên cứu khác cưng có thể làm tương tự
Vì lý do trên mà em không chỉ tìm tòi nghiên cứu lý thuyết, mà còn cố gắng phát triển thành ứng dụng
Trang 9Trong khi đó, nhận dạng tự động – nhận dạng bằng công cụ máy vi tính chỉ đơn giản là quá trình phân biệt tín hiệu này với tín hiệu khác (trong một tập hữu hạn các tín hiệu), quá trình này được thực hiện bằng cách thực hiện các bước tổng quát sau (như trong hình 1.1)
Hình 1.1: Sơ đồ nhận dạng tổng quát
• Thu nhận tín hiệu và trích đặc trưng: thu nhận tín hiệu cần nhận dạng, khử nhiễu lọc tín hiệu (tiền xử lý) và rút ra các đặc trưng của tín hiệu (vector đặc trưng)
Tiền xử lý và rút trích vector đặc trưng
Học mẫu, phân lớp
Tập hợp từ điển các lớp tín hiệu
Nhận dạng, so khớp mẫu Ngưỡng và luật quyết định
Tín hiệu
Tín hiệu cần nhận dạng
Tín hiệu dùng
để học
Kết quả
Trang 10KHOA CNTT –
ĐH KHTN
Wilkins, ……) Quá trình này tạo ra các lớp tín hiệu, mỗi lớp này đặc trưng cho từng nhóm tín hiệu
• Nhận dạng, so khớp mẫu: tìm mối liên hệ giữa tín hiệu cần nhận dạng
và các lớp tín hiệu được tạo ra ở bước trước (bằng cách thông qua quy tắc người láng giềng gần nhất chẳng hạn) Nếu như tín hiệu đó so khớp nhất (và mức độ so khớp thỏa một ngưỡng nào đó) ứng với một lớp tín hiệu nào đó thì hệ thống nhận dạng xác định tín hiệu đó thì tín hiệu đó thuộc vào nhóm tín hiệu đó với một tỉ lệ nhất định gọi là độ chính xác của hệ thống nhận dạng (tỉ lệ này dĩ nhiên là càng cao càng tốt)
1.2 Nhận dạng tiếng nói
1.2.1 Xử lý âm thanh
Khi âm thanh được máy vi tính hỗ trợ thì nhu cầu xử lý âm thanh đã xuất hiện Các nhu cầu này đã tạo ra nhiều lĩnh vực ứng dụng trong thực tế Chẳng hạn như: Tổng hợp âm thanh (Synthesis), nén âm thanh (Compression), nhận dạng người nói (speaker recognition), nhận dạng tiếng nói (speech recognition)… Các lĩnh vực ứng dụng khác nhau của xử lý tiếng nói được thể hiện qua hình 1.2
Xử lý âm thanh đóng một vai trò quan trọng trong quá trình nhận dạng tiếng nói, nó cần trong việc lọc nhiễu tín hiệu, biến đổi tín hiệu, rút trích vector đặc trưng,…
Trang 11KHOA CNTT –
ĐH KHTN
Hình 1.2: Các lĩnh vực trong xử lý tiếng nói
1.2.2 Phân loại nhận dạng tiếng nói 1.2.2.1 Nhận dạng từ liên tục và nhận dạng từ cách biệt
Một hệ nhận dạng tiếng nói có thể là một trong hai dạng: nhận dạng liên tục và nhận dạng từng từ
Nhận dạng liên tục tức là nhận dạng tiếng nói được phát liên tục trong một chuỗi tín hiệu, chẳng hạn như một câu nói, một mệnh lệnh hoặc một đoạn văn được đọc bởi người dùng Các hệ thống loại này rất phức tạp, nó phức tạp ở chỗ các từ được phát liên tục khó xử lý kịp (nếu cần thời gian thực), hoặc khó tách ra nếu như người nói liên tục không có khoảng nghỉ (thông thường rất hay xảy ra trong thực tế) Kết quả tách từ ảnh hưởng rất lớn đến các bước sau, cần xử lý thật tốt trong quá trình này
Trang 12KHOA CNTT –
ĐH KHTN
liên tục, đồng thời cũng có những ứng dụng thực tiễn như trong các hệ thống điều khiển bằng lời nói, quay số bằng giọng nói…, với độ chính xác khá cao, tuy nhiên khó áp dụng rộng rãi đối với mô hình trên
Hình 1.3: Ranh giới giữa “cô” và “ấy” không rõ ràng
1.2.2.2 Nhận dạng phụ thuộc người nói và độc lập người nói
Đối với nhận dạng phụ thuộc người nói thì mỗi một hệ nhận dạng chỉ phục vụ được cho một người, và nó sẽ không hiểu người khác nói gì nếu như chưa được huấn luyện lại từ đầu Do đó, hệ thống nhận dạng người nói khó được chấp nhận rộng rãi vì không phải ai cũng đủ khả năng kiến thức và nhất là kiên nhẫn để huấn luyện hệ thống Đặc biệt là
hệ thống loại này không thể ứng dụng ở nơi công cộng
Ngược lại, hệ thống nhận dạng độc lập người nói thì lý tưởng hơn, ứng dụng rộng rãi hơn, đáp ứng được hầu hết các yêu cầu đề ra Nhưng không may là hệ thống lý tưởng như vậy gặp một số vấn đề, nhất là độ chính xác của hệ thống
Trong thực tế, mỗi người có một giọng nói khác nhau, thậm chí
Trang 13KHOA CNTT –
ĐH KHTN
khác nhau Điều này ảnh hưởng rất lớn đến việc nhận dạng, nó làm giảm
độ chính xác của hệ thống nhận dạng xuống nhiều lần Do đó để khắc phục khuyết điểm này, hệ thống nhận dạng độc lập người nói cần được thiết kế phức tạp hơn, đòi hỏi lượng dữ liệu huấn luyện lớn hơn nhiều lần (dữ liệu được thhu từ nhiều giọng khác nhau của nhiều người) Nhưng điều này cũng không cải thiện được bao nhiêu chất lượng nhận dạng Do
đó, trong thực tế có một cách giải quyết là bán độc lập người nói Phương pháp này thực hiện bằng cách thu mẫu một số lượng lớn các giọng nói khác biệt nhau Khi sử dụng, hệ thống sẽ được điều chỉnh cho phù hợp với giọng của người dùng, bằng cách nó học thêm một vài câu
có chứa các từ cần thiết (người dùng trước khi sử dụng hệ thống cần phải qua một quá trình ngắn huấn luyện hệ thống) Điều này đã được Microsoft đưa vào bộ phần mềm Office của mình
Nhận dạng độc lập người nói khó hơn rất nhiều so với nhận dạng phụ thuộc người nói Cùng một từ, một người, dù có cố gắng phát âm cho thật giống đi nữa thì cũng có sự khác biệt Đối với bộ não con người, một hệ thống hoàn hảo, thì sự khác biệt đó có thể được bỏ qua do ngữ cảnh, và do có phần xử lý làm mờ đi của não Nhưng đối với máy tính thì rất khó xây dựng được một mô hình giải quyết cho tất cả các trường hợp khác biệt đó
Trang 14KHOA CNTT –
ĐH KHTN
Hình 1.5: Mô hình nhận dạng bán độc lập người nói
1.2.3 Hệ thống nhận dạng tiếng nói tự động
Nhận dạng tiếng nói tự động (Automatic Speech Recognition - ASR):
có nghĩa là chuyển đổi tự động tiếng nói thành chữ viết hoặc thành một trong các chức năng của thiết bị
Một hệ thống nhận dạng tiếng nói tự động gồm có các thành phần sau:
• Rút trích đặc trưng tiếng nói: biến đổi tín hiệu âm thanh thành
chuỗi các vector đặc trưng Ngoài ra, quá trình này còn giải quyết vấn đề dò tìm điểm cuối (phân biệt trong chuỗi âm thu được đâu là tiếng nói đâu là độ ồn nền) và lọc nhiễu
• Quá trình phân lớp và nhận dạng: Thực chất đây là quá trình
nhận dạng dựa trên mô hình âm thanh, từ điển phát âm và mô hình ngôn ngữ của hệ thống Mô hình ngôn ngữ ở đây thực chất chỉ biểu diển một ngữ pháp nào đó, nó có thể ứng với một ngôn ngữ cụ thể
Trang 15KHOA CNTT –
ĐH KHTN
điều này góp phần giảm thiểu phạm vi nhận dạng của tiếng đó trong một vài từ chứ không phải toàn bộ từ vựng
• Giải mã: Quá trình này quá trình này có thể chỉ đơn giản là xuất ra
chuỗi văn bản nhận dạng được hoặc là một quá trình phân tích chuỗi nhận được ứng với tác vụ gì và thực hiện tác vụ đó
Hình 1.6: Các thành phần cơ bản của hệ thống ASR
Ứng dụng:
• Điều khiển bằng tiếng nói (khoảng 30 từ): Nhận dạng tên người, chữ số của hệ thống quay số bằng giọng nói trên điện thoại di động, điều khiển thiết bị điện tử,…
• Trong điện tử viễn thông (khoảng 2000 từ): Tự động điền mẫu đơn trong hệ thống xử lý thông tin, tổng đài điện thoại, …
• Từ điển (khoảng 64k từ): Chuyển đổi thư thoại (bộ từ vựng lớn), thư ký điện tử,…
1.2.4 Lý thuyết nhận dạng tiếng nói
Nhận dạng tiếng nói là kỹ thuật nhận ra các thành phần lời nói của con người Tiến trình này có thể được thực hiện từ việc thu vào tín hiệu tiếng nói
từ micro, và kết thúc bằng từ đã được nhận dạng được hệ thống xuất ra Những
Trang 16KHOA CNTT –
ĐH KHTN
một rất quan trọng Ngày nay, nhờ sự phát triển tăng vọt trong công nghệ, nhận dạng tiếng nói đã có mặt trong công nghiệp ở một số lĩnh vực Trong công nghiệp, khi tay và mắt của con người đã được tận dụng triệt để, thì việc điều khiển bằng tiếng nói có một thuận lợi rất lớn Những trình ứng dụng khác thì áp dụng nhận dạng tiếng nói vào hệ thống nhận đặt phòng tự động qua điện thoại, bằng cách này khách hàng cảm thấy thuận lợi hơn so với việc nhấn các nút của điện thoại Hơn nữa, nhận dạng tiếng nói còn được ứng dụng nhiều dạng khác nhau như hệ thống chính tả, các đồ chơi trẻ em, trò chơi game,…
Một cách lý tưởng, một trình nhận dạng sẽ có thể nhận dạng được các
từ khác nhau của bất kỳ người nào trong bất kỳ môi trường nào Nhưng trong thực tế, khả năng của hệ thống phụ thuộc vào nhiều yếu tố khác nhau Bộ từ vựng, đa người dùng, nhận dạng liên tục (phức tạp hơn nhiều so với nhận dạng từng từ) là các yếu tố gây khó khăn, phức tạp cho việc nhận dạng tiếng nói Tương tự như vậy đối với độ ồn nền
1.2.4.1 Rút trích vector đặc trưng
Ngày nay, việc xử lý tín hiệu tiếng nói được thực hiện trên miền
số Tín hiệu số được thu bằng cách lấy mẫu theo một tần số nhất định, đó
là việc đo tín hiệu theo một chu kỳ thời gian Theo lý thuyết, bất cứ một tín hiệu có băng tần giới hạn nào cũng có thể tái tạo lại một cách hoàn chỉnh nếu như tần số lấy mẫu FS ít nhất là gấp đôi tần số tối đa của tín hiệu (theo Alan và Willsky, 1997) Chất lượng của tín hiệu được lấy mẫu còn phụ thuộc vào biên độ lấy mẫu – phụ thuộc vào số bit được dùng
Đối với những ứng dụng ASR, biểu diễn tín hiệu ở miền tần số thì tối ưu hơn – một biểu diễn gọn hơn hữu dụng hơn là cần thiết Rút trích vector đặc trưng là việc xử lý biến đổi tín hiệu âm thanh thành một chuỗi những vector đặc trưng Có một vài dạng đặc trưng của tín hiệu âm thanh
có thể được sử dụng làm vector đặc trưng, chẳng hạn như là MFCC (Mel Frequency Cepstral Coeficient), LPC (Linear Prediction Filter
Trang 17KHOA CNTT –
ĐH KHTN
Để tham số hóa dạng sóng của tín hiệu, tín hiệu được chia thành chuỗi các khung gối lên nhau theo thời gian, mỗi khung thường dài khoảng 25ms, khoảng thời gian thích hợp để cho việc xử lý tĩnh hơn (hình 1.8)
Để khử nhiễu và làm rõ tín hiệu, các khung trước khi được xử lý được nhân với hàm cửa sổ, thường dùng là cửa sổ Hamming hay Hanning Sau khi áp hàm cửa sổ cạnh của khung sẽ trở nên mịn hơn, mặt khác nó còn giúp cho thành phần có tần số cao của tín hiệu xuất hiện trong phổ
Hình 1.7: Các dạng cửa sổ thường dùng
Trang 19Đối với chương trình, một thuật toán cần được sử dụng để tìm
ra sự so khớp không tuyến tính giữa tỷ lệ thời gian giữa hai tín hiệu,
nó dùng để bù đắp sự chênh lệch do sự khác biệt tốc độ nói gây ra
Kỹ thuật so khớp mẫu được sử dụng rộng rãi trong sản xuất thương mại vào các thập niên 70 và 80, nhưng sau đó ngày càng được thay thế bởi các phương pháp mạnh hơn (Holmes, 2001)
Trang 20KHOA CNTT –
ĐH KHTN
Mạng Neural là một mô hình cố gắng mô phỏng hệ thống nơron thần kinh của con người Một mạng neural bao gồm một số lượng các nút Những nút này được sắp xếp thành từng lớp kết nối lẫn nhau bằng trọng số khác nhau Thông tin được đưa qua lớp vào, được
xử lý qua mạng, sau đó được xuất ra ngoài thông qua lớp ra Kết quả trả về của mỗi nút được tính bằng hàm không tuyến tính các trọng số của các giá trị vào
Mạng có khả năng phân loại chính xác phụ thuộc vào trọng số
và các giá trị tối ưu được xác định trong quá trình huấn luyện Khi huấn luyện, thông tin một vài mẫu âm thanh, ví dụ như phổ biên độ, được đưa vào mạng thông qua các nút nhập, các giá trị kết xuất được
so sánh với giá trị được yêu cầu Sự sai khác giữa các giá trị sẽ làm thay đổi các trọng số Quá trình này được lập đi lập lại vài lần cho mỗi mẫu học, làm tăng độ chính xác của mạng
Mặc dù là một kỹ thuật thú vị và đầy hứa hẹn, nhưng mạng Neural chưa thật sự thành công trong một hệ nhận dạng tiếng nói liên tục hoàn chỉnh
c) Hướng dựa trên tri thức
Hệ thống dựa trên tri thức sử dụng tri thức để phân biệt sự khác nhau giữa các âm thanh Vào khoảng thập niên 70 và 80, nó thích hợp trong việc ứng dụng trong hệ chuyên gia, nó dựa trên bộ luật được rút
ra từ tri thức về tín hiệu âm thanh
Một dạng khác của hệ thống được kế thừa từ quá trình phát âm của con người Ở đây thay vì sử dụng bộ luật thì định nghĩa thành phần trung gian Theo cách này, sự phân biệt diễn ra bằng cách so sánh tiếng nói được tổng hợp với một tiếng nói cần nhận dạng Mặc
dù là một kỹ thuật có tiềm năng, nhưng một hệ thống như vậy có sự giới hạn của nó
Trang 21KHOA CNTT –
ĐH KHTN
Mô hình Markov ẩn là một phương pháp thống kê mạnh mẽ để
mô hình hóa tín hiệu tiếng nói, và nó thật sự vượt trội trong việc áp dụng vào nhận dạng tiếng nói ngày nay Một mô hình Markov ẩn được dùng để biểu diễn cho một đơn vị của ngôn ngữ, như là từ hay là âm
vị Nó gồm có một số hữu hạn các trạng thái và sự chuyển đổi trạng thái, sự chuyển đổi đó được thực hiện thông qua xác suất chuyển đổi, hàm phân bố Gauss thường được chọn lựa để thực hiện điều này
Một khi biểu diển một chuỗi mẫu quan sát, mô hình có thể xác định xác suất gặp các mẫu quan sát đó, nhưng nếu như một chuỗi đơn các mẫu quan sát không thể tìm ra một chuỗi các trạng thái có liên quan thì nó không thể xác định trạng thái nào và ở thứ tự nào
Xác suất chuyển trạng thái và sự phân bố xác suất phụ thuộc vào trọng số của nó Trong quá trình huấn luyện các trọng số này được tối ưu hóa cho phù hợp với dữ liệu huấn luyện (hình 1.9)
Hình 1.10: HMM với 3 trạng thái và trọng số chuyển trạng thái
Trang 22Tín hiệu (signal) là tất cả sự vật hiện tượng có mang hoặc chứa một thông
tin nào đó mà chúng ta có thể hiểu, được quy ước trước Các tín hiệu trong thế giới thực đều ở dạng liên tục (tín hiệu tương tự), nó hết sức phức tạp, thiếu độ chính xác cần thiết đối với máy tính Do đó các tín hiệu này thường bị biến đổi thành các tín hiệu số (số hóa), một dạng thông tin máy tính có thể xử lý
Tiếng nói cũng là một dạng tín hiệu tương tự, do đó nó cũng cần được số hóa
2.1.1 Lấy mẫu tín hiệu
Hàm lấy mẫu là cầu nối giữa các hệ thống rời rạc và các hệ thống liên tục Nó còn được gọi là: hàm Dirac Delta, hàm sàng lọc,…
=
n
s(t) x(t) (t nT)x
Đối với máy tính, lấy mẫu chỉ đơn giản là cứ theo một chu kỳ thời gian (đối với tín hiệu âm thanh và các dạng tương tự), hay là chu kỳ không gian (đối với tín hiệu là ảnh và các dạng tương tự) ta đo tín hiệu một lần
Quá trình trên sẽ tạo ra một chuỗi các số biểu diễn cho tín hiệu, và có thể xử lý được bởi máy tính
Trang 23- Tách tín hiệu cần thiết: Các tín hiệu ban đầu thường chứa đựng các
nhiễu hoặc các tín hiệu không mong muốn khác, các nhiễu này làm giảm đáng kể chất lượng của tín hiệu và cần phải tách riêng các tín hiệu cần thiết
Ví dụ: Đối với âm thanh được thu, tín hiệu âm thường chứa thêm các tiếng ồn của môi trường, chẳng hạn như tiếng ồ ồ của quạt trần thổi vào micro; còn đối với ảnh chụp thì là các điểm lốm đốm trên những tấm ảnh cũ khi được quét vào…
- Khôi phục các tín hiệu bị biến dạng: Có một số trường hợp vì một
nguyên nhân nào đó (thường là nguyên nhân liên quan đến thiết bị) sẽ tạo ra các tín hiệu vào bị méo mó Vì vậy cần phải chỉnh lại để tăng chất lượng của tín hiệu số
Ví dụ: Các micro cũ sẽ cho ra các tín hiệu âm thanh không tốt;
“con mắt” (forcus len) của các máy quét bị mờ sẽ làm cho các ảnh
Trang 24KHOA CNTT –
ĐH KHTN
- Bộ lọc đáp ứng xung hữu hạn (Finite Impulse Response – FIR): hệ
có tín hiệu ra chỉ phụ thuộc vào tín hiệu vào nên các hệ này còn được gọi là mạch không truy hồi hay mạch không đệ qui (non-recursive)
+
−+
0
q 1
0x(n) b x(n 1) b x(n q) b x(n j)b
)n(y
Hình 2.2: Minh họa hoạt động bộ lọc FIR
- Bộ lọc đáp ứng xung vô hạn (Infinite Impulse Response – IIR): hệ
xử lý có đáp ứng xung có độ dài vô hạn hay đáp ứng xung vô hạn Tín hiệu ra không những chỉ phụ thuộc vào tín hiệu vào mà còn phụ thuộc vào quá khứ của chính tín hiệu ra, vì vậy chúng còn được gọi là các mạch có truy hồi hay đệ qui Công thức bộ lọc:
q
0 j
j n j i
n i
y
Hình 2.3: Minh họa hoạt động bộ lọc IIR
Trang 25KHOA CNTT –
ĐH KHTN
2.1.3 Dò tìm điểm cuối (end-point detection)
Dò tìm điểm cuối là một xử lý cố gắng tìm ra chính xác khi nào người
ta bắt đầu và kết thúc nói Nó còn được dùng để xác định khi mà người ta không thật sự nói gì, hoặc nói những điều không mong đợi (như không có trong bộ từ vựng định trước) Khi đó, dò tìm điểm cuối giúp giảm một số lượng khung mà trình nhận dạng cần phải xử lý, dẫn đến giảm tải việc tính toán Tuy nhiên, việc dò tìm điểm cuối không dễ như ta tưởng, bởi vì có sự tồn tại của tiếng ồn nền, tiếng nói nền và sự liên kết của các âm tiết, như là sự khó khăn trong việc dò tìm đoạn vô thanh ở phần bắt đầu và kết thúc tiếng nói
Dò tìm điểm cuối được thực hiện qua ba bước, qua mỗi bước xác định điểm cuối càng chính xác Việc dò tìm dựa trên mức năng lượng của tín hiệu được đặc trưng bằng:
N 2
n 1
E log x (n)
=
= ∑ (xem phần 2.2.2.2)
a) Dò tìm thô: dựa trên kỹ thuật năng lượng ít chính xác nhất Nó tìm một
đoạn mà mức năng lượng cao hơn đoạn trước đó và cho một số khung
là điểm bắt đầu (thường khoảng 40 khung) trước khi gặp khung mức năng lượng cao hơn Khi một số lượng (thường khoảng 20 khung) khung khác qua (không cần kiểm tra bất kỳ khung nào) được cho là điểm cuối
b) Dò tìm tinh: bước dò tìm tinh sẽ kiểm tra mức năng lượng của tiếng
nói, nó cố lọc ra điểm đầu và cuối bằng cách cho rằng mức năng lượng của tiếng nói thì cao hơn độ ồn nền (cao hơn một ngưỡng nào đó)
c) Kỹ thuật VUS (Voice, Unvoice and Silence): kỹ thuật này cố phân loại
từng khung thành đoạn hữu thanh, đoạn vô thanh và khoảng lặng Việc phân loại dựa trên sự phân bố năng lượng trong khung, phổ biến dạng
Trang 27KHOA CNTT –
ĐH KHTN
2.2 Rút trích đặc trưng
Hình 2.5: Sơ đồ rút trích vector đặc trưng tổng quát
Đối với một hệ nhận dạng tiếng, việc rút trích vector đặc trưng của tiếng nói là cần thiết Điều này giúp giảm thiểu số lượng dữ liệu trong việc huấn luyện và nhận dạng, dẫn đến số lượng công việc tính toán trong hệ giảm đáng kể Bên cạnh đó, việc rút trích đặc trưng còn làm rõ sự khác biệt của tiếng này so với tiếng khác, làm
mờ đi sự khác biệt của cùng hai lần phát âm khác nhau của cùng một tiếng Hình 2.6 minh họa các bước xử lý trong việc rút trích vector đặc trưng tiếng nói
Trang 28KHOA CNTT –
ĐH KHTN 2.2.1 Các bước rút trích đặc trưng
Hình 2.6: Sơ đồ rút trích đặc trưng chi tiết
2.2.1.1 Làm rõ tín hiệu
Ở bước này, mục đích là làm tăng cường tín hiệu, làm nổi rõ đặc trưng của tín hiệu và làm cho nó ít nhạy hơn với các hiệu ứng do độ chính xác hữu hạn ở những bước xử lý sau Bộ làm rõ tín hiệu thường là một bộ lọc thông cao với phương trình sai phân như sau:
Công thức 2.4
)1n(sa)n(s)n(s~ = − − ; với 0.9 ≤ a ≤ 1
2.2.1.2 Phân đoạn thành các khung
Trong bước phân đoạn khung, ~ n s( ) được chia thành các khung, mỗi khung gồm N mẫu, khoảng cách giữa các khung là M mẫu Hình 2.7
Trang 29vị trí M+N-1 Tương tự, khung thứ i bắt đầu từ mẫu thứ i*M và kết thúc
ở vị trí i*M+N-1 Tiến trình này tiếp tục cho đến khi các mẫu tiếng nói đều đã thuộc về một hay nhiều khung
Ta dễ dàng thấy rằng nếu M ≤ N thì các khung kề nhau sẽ có sự chồng lấp (như hình 2.7), dẫn đến kết quả là các phép rút trích đặc trưng
có tương quan với nhau từ khung này sang khung kia; và khi M << N thì khung này sang khung khác được hoàn toàn trơn Ngược lại, nếu M > N thì sẽ không có sự chồng lấp giữa các khung kề nhau, dẫn đến một số mẫu tiếng nói bị mất (tức là không xuất hiện trong bất kỳ khung nào) Nếu ta ký hiệu khung thứ i là xi(n) và giả sử có tất cả L khung trong tín hiệu tiếng nói thì:
xN(n) trong khoảng n0…(n0 + N –1) tương đương với việc nhân x(n) với một hàm cửa sổ w(n-n0)
Trang 30−+α
=
2/Nn0
2/Nn)N/n.2cos(
)
1()
n(wTuỳ theo các giá trị khác nhau của α mà ta có các cửa sổ khác nhau:
• α = 0.54, ta có cửa sổ Hamming, đây là dạng cửa sổ thường được dùng nhất
• α = 0.5, ta có cửa sổ Hanning:
• α = 1, ta có cửa sổ chữ nhật:
Thêm vào đó, độ rộng của cửa sổ cũng có tác động khá lớn đến kết quả của các phép phân tích
Trang 31KHOA CNTT –
ĐH KHTN
Một số cửa sổ khác cũng được sử dụng trong xử lý tín hiệu số như: cửa sổ tam giác, cửa sổ Kaiser, cửa sổ Blackman, cửa sổ cosin…
Sau đây là một số ví dụ cho thấy sự khác biệt giữa các loại cửa sổ
Hình 2.5a: Âm /a/, cửa sổ chữ nhật,
512 điểm(45ms, trái) và 64 điểm(5.6ms, phải)
Trang 32KHOA CNTT –
ĐH KHTN
512 điểm(45ms, trái) và 64 điểm(5.6ms, phải)
Hình 2.5c: Âm /a/, cửa sổ Hanning,
512 điểm(45ms, trái) và 64 điểm(5.6ms, phải)
Trang 33KHOA CNTT –
ĐH KHTN
Hình 2.8: Sự khác biệt giữa các dạng cửa sổ tín hiệu
Trang 34KHOA CNTT –
ĐH KHTN
2.2.2 Các dạng đặc trưng tiếng nói
Để rút trích đặc trưng, ta cần phải chọn đặc trưng thỏa mãn những vấn
đề sau đây:
• Có khả năng diễn dạt thông tin tiếng nói độc lập người nói
• Dễ dàng tính toán
• Ổn định theo thời gian
• Xảy ra tự nhiên và liên tục trong tiếng nói
• Ít thay đổi theo môi trường nói (độc lập môi trường)
• Không ảnh hưởng bởi sự biến dạng bóp méo
• Không ảnh hưởng bởi độ ồn nền và băng tần giới hạn
• Không ảnh hưởng bởi trạng thái người nói
Î Đặc trưng có tất cả những đặc tính như thế không tồn tại!!!
Các dạng đặc trưng hiện nay
• Đặc trưng miền âm
¾ Autocorrelation coefficients (COR)
¾ Linear Prediction Coefficients (LPC)
¾ Partial Correlation coefficients (PARCOR)
¾ Log Area Ratio coefficients (LAR)
¾ Perceptional Linear Prediction (PLP)
• Đặc trưng miền tần số và Cepstral
¾ Line Spectrum Pairs (LSP)
¾ Bank of filters (tuyến tính)
¾ Bank of filters (Mel)
¾ Mel Frequency Cepstral Coefficients (MFCC)
2.2.2.1 Biến đổi tín hiệu sang miền tần số
Có hai cách biến đổi:
Trang 35KHOA CNTT –
ĐH KHTN
Phép biến đổi Fourier là phép biến đổi thuận nghịch, dùng để biến đổi tín hiệu sang miền tần số, nó dùng các công thức biến đổi rời rạc sau :
Phép biến đổi thuận:
N / kn 2 j
e ) n ( x )
k (
N / kn 2 j
e ) k ( X )
n (
x , n = 0, 1, 2, …, N – 1
b) Biến đổi cosin rời rạc
Biến đổi Cosin là một phép biến đổi mạnh, được dùng trong
xử lý nén ảnh JPEG, nó cũng là một phép biến đổi chuyển tín hiệu sang miền tần số, ta có các công thức sau:
Phép biến đổi thuận:
n ( x ) k (
k ( X ) n ( ) n (
⎡ 1
Trang 36áp dụng phép biến đổi lần nữa cho 2 phần này một cách đệ quy Do phép chia cho 2, nên chuỗi tín hiệu đòi hỏi phải có chiều dài là lũy thừa của 2 (điều này có thể dễ dàng giải quyết được bằng cách tăng kích thước chuỗi tín hiệu lên và điền 0 vào)
Ví dụ việc phân chia và biến đổi sẽ được thực hiện trên chuỗi tín hiệu có chiều dài 16 điểm như sau:
Độ phức tạp của phương pháp này là O(Nlog 2 (N))
2.2.2.2 Đặc trưng năng lượng
Năng lượng tín hiệu được thể hiện thông qua mức độ, số lượng tín hiệu có trong một đơn vị thời gian Năng lượng của tín hiệu tiếng nói là một đặc trưng vật lý của tín hiệu, được dùng như là tham số trong vector đặc trưng trong nhận dạng tiếng nói, và còn được để dò tìm khoảng lặng trong tín hiệu tiếng nói Tính toán năng lượng tín hiệu thường dựa trên sự phân khung và lấy cửa sổ, bằng cách lấy tổng các bình phương chuỗi tín hiệu x(n) trong cửa sổ tín hiệu
Đặc trưng năng lượng ở đây được tính bằng cách lấy log năng lượng tín hiệu, tính bằng công thức sau:
Trang 37KHOA CNTT –
ĐH KHTN
Công thức 2.11
N 2
Các thang được xây dựng bằng thực nghiệm, cho nên người ta xây dựng các công thức để xấp xỉ sự chuyển đổi này Trong các thang và công thức dạng đó thì đặc trưng MFCC sử dụng thang Mel Thang Mel được thể hiện thông qua đồ thị sau:
Hình 2.9: Đồ thị biểu diễn mối quan hệ giữa Mel và Hz
Trang 38Hình 2.11: Bộ lọc trên thang Mel
Trang 40Công thức 2.12
)n(s~
ks(n k)a
)n(s~ là giá trị dự báo của s(n) (giả sử a1, a2, … , ap là hằng số trên khung dữ liệu (frame) được xem xét)
Chúng ta chuyển quan hệ trên thành dạng đẳng thức bằng cách thêm vào số hạng G.u(n) gọi là nguồn kích thích:
Công thức 2.13
)n(u.G)n(s~
)n(
)n(s)n(