Nhận dạng tiếng nói là một quá trình nhận dạng mẫu, với mục đích là phân lớp classify thông tin đầu vào là tín hiệu tiếng nói thành một dãy tuần tự các mẫu đã được học trước đó và lưu tr
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
──────── * ───────
NGUYỄN DUY PHƯƠNG
M Ô H ÌNH MARKOV ẨN VÀ ỨNG DỤNG TRONG
NHẬN DẠNG TIẾNG NÓI
Ngành: Công nghệ thông tin
Mã số: 1.01.10
LUẬN VĂN THẠC SỸ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS HỒ THUẦN
Hà Nội - 2007
Trang 2LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn chân thành tới PGS.TS Hồ Thuần - người
đã tận tình hướng dẫn em trong suốt quá trình hoàn thành đề tài Những buổi nói chuyện, những kinh nghiệm cùng những tài liệu của thầy đã giúp em có được những định hướng đúng đắn và đưa ra các phương pháp tốt để thực hiện
đề tài
Em xin chân thành cảm ơn đến các thầy cô trong Trường Đại học Công nghệ, những người đã dìu dắt và giúp đỡ em trong suốt 3 năm học
Xin cảm ơn bạn bè và các anh chị Khóa trên, những người đã cùng tôi học tập, san sẻ khó khăn, trong đó có những ủng hộ tinh thần quý giá
Và cuối cùng, xin cám ơn bố mẹ và những người thân, những người ủng hộ con về mọi mặt Không có sự quan tâm đó, con không thể hoàn thành tốt đồ án này
Trang 3MỤC LỤC
CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT 5 DANH SÁCH CÁC HÌNH VẼ 6
MỞ ĐẦU 7 CHƯƠNG 1 MÔ HÌNH HMM VÀ ỨNG DỤNG TRONG NHẬN DẠNG
TIẾNG NÓI Error! Bookmark not defined
1 Giới thiệu Error! Bookmark not defined
2 Những khái niệm toán học liên quan tới HMM Error! Bookmark not defined
2.1 Giới thiệu về nhận dạng thống kê Error! Bookmark not defined
2.2 Định lý Bayes Error! Bookmark not defined
3 Mô hình HMM Error! Bookmark not defined
3.1 Tính chất Markov Error! Bookmark not defined
3.2 Xích Markov Error! Bookmark not defined
3.3 Quá trình Markov Error! Bookmark not defined
3.4 Mô hình HMM Error! Bookmark not defined 3.4.1 Các thành phần chính của HMM Error! Bookmark not defined 3.4.2 Ví dụ về mô hình HMM Error! Bookmark not defined
3.5 Hai giả thuyết cơ bản để xây dựng hệ thống nhận dạng dựa trên HMM
Error! Bookmark not defined
3.6 Ba vấn đề cơ bản của mô hình HMM và cách giải quyết Error! Bookmark not defined
3.6.1 Giải quyết vấn đề tính toán Thuật toán tính xuôi và tính ngược Error! Bookmark not defined
3.6.2 Giải quyết vấn đề ước lượng tham số cho mô hình HMM Thuật toán
huấn luyện Baum-Welch Error! Bookmark not defined 3.6.3 Giải quyết vấn đề decoding Thuật toán Viterbi Error! Bookmark not defined
4 Nhận dạng tiếng nói và nhận dạng âm vị dựa trên HMM Error! Bookmark not defined
Trang 44.1 Mô hình Nhận dạng Error! Bookmark not defined
4.2 Các thành phần cơ bản của hệ thống nhận dạng tiếng nói dựa
trên HMM và mối liên hệ giữa chúng Error! Bookmark not defined
4.3 Ví dụ về nhận dạng từ đơn dựa trên HMM Error! Bookmark not defined
5 Mô hình HMM cho âm vị được sử dụng trong luận văn Error! Bookmark not defined
6 Kết luận chương 1 Error! Bookmark not defined CHƯƠNG 2 TIỀN XỬ LÝ TÍN HIỆU TIẾNG NÓI Error! Bookmark not defined
1 Ý nghĩa Error! Bookmark not defined
2 Một số thao tác tiền xử lý tín hiệu Error! Bookmark not defined
2.1 Làm nổi tín hiệu (pre-emphais) Error! Bookmark not defined
2.2 Lọc tiếng ồn Error! Bookmark not defined
3 Trích rút đặc trưng Error! Bookmark not defined
3.1 Giới thiệu Error! Bookmark not defined
3.2 Một số phương pháp trích rút đặc trưng Error! Bookmark not defined 3.2.1 Phương pháp Mã hoá dự báo tuyến tính (LPC) Error! Bookmark not defined
3.2.2 Phương pháp Mã hoá cepstral tần số Mel (MFCC) Error! Bookmark not defined
3.2.3 Phương pháp Mã hoá cepstral tần số Mel dựa trên LPC (MFCC) Error! Bookmark not defined
3.2.4 Các hệ số delta (D) và hệ số gia tốc (A) Error! Bookmark not defined
3.3 So sánh các phương pháp trích đặc trưng Error! Bookmark not defined
4 Kết luận chương 2 Error! Bookmark not defined
CHƯƠNG 3 THUẬT TOÁN HUẤN LUYỆN NHÚNG – XÂY DỰNG MÔ
HÌNH HMM TỰ ĐỘNG CHO ÂM VỊ Error! Bookmark not defined
Trang 51 Tách và nhận dạng âm vị tự động dựa trên HMM Error! Bookmark not defined
1.1 Thuật toán huấn luyện đối với những đơn vị độc lập - Huấn
luyện trên dữ liệu gán nhãn Error! Bookmark not defined
1.2 Thuật toán huấn luyện nhúng - huấn luyện trên dữ liệu âm thanh
không gán nhãn âm vị Error! Bookmark not defined
2 Các công thức ước lượng tham số của mô hình HMM Error! Bookmark not defined
2.1 Ước lượng tham số khi huấn luyện các mô hình HMM độc lập Error! Bookmark not defined
2.2 Ước lượng tham số trong thuật toán huấn luyện nhúng Error! Bookmark not defined
3 Các vấn đề về tham số HMM khi sử dụng thuật toán huấn luyện nhúng.
Error! Bookmark not defined
3.1 Khởi tạo tham số Error! Bookmark not defined
3.2 Ngưỡng Error! Bookmark not defined
3.3 Số lần lặp trong mỗi bước luyện của thuật toán Error! Bookmark not defined
3.4 Dữ liệu huấn luyện Error! Bookmark not defined
4 Kết luận chương 3 Error! Bookmark not defined CHƯƠNG 4 CÀI ĐẶT THUẬT TOÁN – TỪ ĐIỂN TIẾNG NÓI Error! Bookmark not defined
1 Giới thiệu Error! Bookmark not defined
2 Một số giao diện chương trình Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined
TÀI LIỆU THAM KHẢO 11
Trang 6CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT
Artificial Neural Network ANN Mạng nơron nhân tạo
Fast Fourier Transform FFT Biến đổi Fourier nhanh
Dicrette Cosine
Transform
DCT Biến đổi cosin rời rạc
Linear predictive code LPC Mã hoá dự báo tuyến tính Mel-scale Frequency
Cepstral Coefficient
MFCC Mã hoá cepstral tấn số Mel
Multi Layer Perceptron MLP Mạng perceptron truyền thẳng
nhiều lớp
Speech Recognition SR,ASR Nhận dạng tiếng nói
Trang 7DANH SÁCH CÁC HÌNH VẼ
HÌNH 1 – Mô hình HMM 5 trạng thái 34
HÌNH 2 – Sơ đồ huấn luyện mô hình HMM 44
HÌNH 3 - Sơ đồ nhận dạng từ mô hình HMM đã được huấn luyện 44
HÌNH 4 – Mô hình nhận dạng theo 3 cấp 46
HÌNH 5 - Vấn đề nhận dạng từ tách rời 50
HÌNH 6 - Tách riêng một phần của mô hình Markov 51
HÌNH 7 - Dùng HMM cho nhận dạng từ tách rời 53
HÌNH 8 – Sóng âm của chữ “hai” trước khi (hình trái) và sau khi (hình phải) được làm phẳng 58
HÌNH 9 - Sơ đồ khối của quá trình trích chọn đặc trưng MFCC 64
HÌNH 10 - Các bộ lọc mel-scale tam giác (triangle mel-scale filters) 66
HÌNH 11 – Sơ đồ của bộ lọc MFCC dựa trên biến đổi dự báo tuyến tính và các biến đổi Fourier 69
HÌNH 12 – Lưu đồ huấn luyện từ đơn của công cụ HRest (HTK) 72
HÌNH 13 – Dãy sóng âm “MO6T MO6T HAI HAI BA MO6T” 74
HÌNH 14 – Mô hình huấn luyện nhúng 75
Trang 8MỞ ĐẦU
Ngay khi máy tính ra đời con người đã mơ ước máy tính có thể nói chuyện với mình Yêu cầu đơn giản nhất là máy có thể xác định được từ ngữ
mà chúng ta nói với máy Đó là mục tiêu của ngành nhận dạng tiếng nói
Nhận dạng tiếng nói đóng vai trò quan trọng trong giao tiếp giữa người
và máy Nó giúp máy móc hiểu và thực hiện các hiệu lệnh của con người Hiện nay trên thế giới, lĩnh vực nhận dạng tiếng nói đã đạt được nhiều tiến bộ vượt bậc Đã có nhiều công trình nghiên cứu về lĩnh vực nhận dạng tiếng nói (Speech recognition) trên cơ sở lý thuyết các hệ thống thông minh nhân tạo, nhiều kết quả đã trở thành sản phẩm thương mại như ViaVoice, Dragon , các
hệ thống bảo mật thông qua nhận dạng tiếng nói, các hệ quay số điện thoại bằng giọng nói Triển khai những công trình nghiên cứu và đưa vào thực tế ứng dụng vấn đề này là một việc làm hết sức có ý nghĩa đặc biệt trong giai đoạn công nghiệp hoá hiện đại hoá hiện nay của nước nhà
Nhận dạng tiếng nói là một quá trình nhận dạng mẫu, với mục đích là phân lớp (classify) thông tin đầu vào là tín hiệu tiếng nói thành một dãy tuần
tự các mẫu đã được học trước đó và lưu trữ trong bộ nhớ Các mẫu là các đơn
vị nhận dạng, chúng có thể là các từ, hoặc các âm vị Nếu các mẫu này là bất biến và không thay đổi thì công việc nhận dạng tiếng nói trở nên đơn giản bằng cách so sánh dữ liệu tiếng nói cần nhận dạng với các mẫu đã được học
và lưu trữ trong bộ nhớ Khó khăn cơ bản của nhận dạng tiếng nói đó là tiếng nói luôn biến đổi 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 Xác định những thông tin biến thiên nào của tiếng nói là có ích và những thông tin nào là không có ích đối với nhận dạng tiếng nói là rất quan trọng Đây là một nhiệm vụ rất khó khăn mà ngay cả với các kỹ thuật xác suất
Trang 9thống kê mạnh cũng khó khăn trong việc tổng quát hoá từ các mẫu tiếng nói những biến thiên quan trọng cần thiết trong nhận dạng tiếng nói
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 [1]:
Tín hiệu tiếng nói được biểu diễn chính xác bởi các biên độ 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 Thông tin về ngữ nghĩa (semantics) và suy đoán (pragmatics) có giá trị trong quá trình nhận dạng tiếng nói, nhất là 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
Trang 10Ý tưởng về xây dựng các hệ thống nhận dạng tiếng nói đã có từ những năm 50 của thế kỷ 20 và đến nay đã đạt được nhiều kết quả đáng kể Có 3 hướng tiếp cận chính cho nhận dạng tiếng nói [8]:
Tiếp cận Âm học: Hướng tiếp cận này dựa vào các đặc điểm âm học được rút ra từ phổ âm thanh Tuy nhiên kết quả của hướng tiếp cận này còn thấp vì trong thực tế, các đặc trưng âm học có sự biến động rất lớn Hơn nữa phương pháp này đòi hỏi tri thức rất đầy đủ về âm học (Vốn tri thức âm học hiện nay chưa thể đáp ứng)
Tiếp cận Nhận dạng mẫu thống kê: Sử dụng các phương pháp máy học dựa trên thống kê để học và rút ra mẫu tham khảo từ lượng dữ liệu lớn Hướng này đang được sử dụng nhiều, chủ yếu là dựa vào Mô hình Markov ẩn (HMM)
Tiếp cận Trí tuệ nhân tạo: là hướng kết hợp của cả hai hướng trên Phương pháp này kết hợp được cả tri thức của chuyên gia
và phương pháp mẫu thống kê Đây sẽ là hướng tiếp cận tương lai của nhận dạng tiếng nói
Việc nhận dạng tiếng nói gặp một số khó khăn sau:
Trong môi trường sinh hoạt hàng ngày, chất lượng tiếng nói biến động rất lớn do chịu ảnh hưởng của các yếu tố ngoại cảnh, tâm và sinh lý người nói: một câu của cùng một người nói khi thu vào máy sẽ khác nhau nếu nói ở hai tâm trạng khác nhau (lúc vui nói khác, lúc giận nói khác,…), sức khoẻ khác nhau (lúc khoẻ nói khác, lúc bệnh nói khác), tốc độ nói khác nhau (nói chậm thì rõ hơn nói nhanh), môi trường xung quanh khác nhau (môi trường có tiêng ồn thì âm thu vào
sẽ bị nhiễu), v.v… Và còn nhiều yếu tố khác nữa tác động lên chất
Trang 11lượng của lời nói như thiết bị thu không tốt, tín hiệu bị nhiễu điện,…
Do đó, việc nhận dạng trở nên rất khó khăn
Trong nhận dạng tiếng nói theo hướng nhận dạng từng âm vị, một khó khăn chúng ta gặp phải là: các âm vị liền nhau trong chuỗi tiếng nói không có vách ngăn rõ ràng (2 âm vị sát nhau có một phần giao nhau, khó xác định được phần giao nhau thuộc âm vị trước hay âm vị sau) Ngay cả đối với con người, tách âm vị từ một âm tiết (xác định vị trí bắt đầu và vị trí kết thúc của âm vị đó trên sóng âm của âm tiết) cũng không phải là công việc đơn giản
Hiện nay, hầu hết các hướng tiếp cận để nhận dạng âm vị là nhận dạng theo học mẫu thống kê Thông thường để học mẫu người ta cung cấp cho chương trình học một nguồn dữ liệu có nhiều mẫu đã được phân loại thành nhiều lớp và có gán nhãn (nhãn cho biết mỗi mẫu thuộc lớp nào) Nguồn dữ liệu này phải được phân lớp và gán nhãn chính xác hoàn toàn để máy học Tuy nhiên do không thể tách âm vị một cách chính xác, nguồn dữ liệu âm vị đưa vào khó đạt được mức độ chính xác, kết quả là việc huấn luyện giảm hiệu suất, làm cho hiệu suất của chương trình nhận dạng cũng giảm theo
Chúng tôi xin nêu ra một hướng giải quyết để tránh việc gán nhãn âm vị không chính xác: thay vì đánh nhãn âm vị, chúng ta sẽ đánh nhãn
âm tiết, đồng thời cho biết các âm vị cấu thành âm tiết đó Như vậy, dữ liệu mẫu cung cấp cho quá trình học là các âm tiết Thuật toán học được sử dụng
để tách âm vị là thuật toán huấn luyện nhúng (Embedded training) Kết quả thu được là các mô hình HMM cho từng âm vị Do mỗi dãy âm vị được chọn tương đương với một âm tiết, công việc đánh nhãn âm vị trên sóng âm thực chất là không có (chỉ đánh nhãn trên âm tiết, vốn được thực hiện dễ dàng) Vì vậy, có thể xem dữ liệu đưa vào trong quá trình huấn luyện là dữ liệu không
Trang 12TÀI LIỆU THAM KHẢO
[1] R Rabiner, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition, Proceedings of IEEE, vol 77, no 2, 1998
[2] Tom Mitchell, Machine Learning, McGraw Hill, 1996
[3] Đặng Hùng Thắng, Mở đầu về lý thuyết xác suất và các ứng dụng,
1998
[4] R Rabiner and W Schafer, Digital Processing Of Speech Signals, Prentice Hall, 1978
[5] Đoàn Thiện Thuật, Ngữ âm tiếng Việt, Sách NXB ĐHQG Hà nội -
2002
[6] Nguyễn Thanh Thuỷ, Nhập môn xử lý ảnh số, Sách NXBKHKT [7] John-Paul Hosom, Ron Cole, A diphone-based digit recognition system using neural networks, http://cslu.cse.ogi.edu/cslu
[8] Đặng Thái Dương – Hà Giang Hải, Nhận dạng tiếng nói tiếng Việt theo hướng tiếp cận nhận dạng âm vị tự động, luận văn cử nhân tin học 2004
[9] Rabiner L.R, Huang B H, Fundamentals of Speech Recognition, Sách NXB Prentice Hall – 1993
[10] V.Mantha, R.Duncan, Y.Wu, J.Zhao, Implementation and analysis of speech recognition front-ends, ECE4773/Digital Signal Processing – 1998
[11] Nguyễn Duy Tiến, Các mô hình xác suất và ứng dụng Phần một – Xích Markov, Sách NXB ĐHQG Hà Nội – 2000
[12] Bách khoa toàn thư mở Wikipedia, http://vi.wikipedia.org
[13] Phần mềm điều khiển giọng nói bằng tiếng Việt, Phạm Hữu Ngôn
và Bành Duy Khánh, cuộc thi trí tuệ Việt Nam 2004