ĐẠI HỌC QUỐC GIA HÀ N ỘI
TRƯỜ NG NG ĐẠI HỌC CÔNG NGHỆ
Đàm Tiến Dũng
NGHIÊN CỨ U CÁC KỸ THUẬT TRONG NHẬN DẠNG TIẾNG NÓI
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Khoa học máy máy tính tính
HÀ NỘI - 2010 2010
ĐẠI HỌC QUỐC GIA HÀ N ỘI
TRƯỜ NG NG ĐẠI HỌC CÔNG NGHỆ
Đàm Tiến Dũng
NGHIÊN CỨ U CÁC KỸ THUẬT TRONG NHẬN DẠNG TIẾNG NÓI )
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Ngành: Công Công nghệ thông tin Cán bộ hướ ng ng dẫn: TS. Lê Anh Anh Cườ ng ng
HÀ NỘI - 2010 2010
LỜ I CẢM Ơ N tiên, tôi xin xin bày bày tỏ sự biết ơ n sâu sắc tớ i TS. TS. Lê An Anhh Cườ ng ng (côn (côngg tác tác tại Đầu tiên, tr ườ ng ĐH Cô Công ng Ng Nghhệ - Đ H Quốc gia Hà Nội), ngườ i đ ã tận tình theo sát hướ ng ng d ẫn ườ ng tôi trong suốt quá trình thực hiện luận văn này. Tiế p theo, tôi xin dành lờ i cảm ơ n chân chân thành thành tớ i TS. Lê S ỹ Vinh Vinh (công (công tác tại ườ ng tr ườ ng ĐH Công Công Ng Nghhệ - Đạ i h ọc Qu ốc Gia Hà Nội), ngườ i đã nhiệt tình giúp đỡ , cho tôi những lờ i khuyên hữu ích để hoàn thiện luận văn. Tôi xin gửi lờ i cảm ơ n đến cô Lươ ng ng Chi Mai và anh Vũ Tất Thắng (công tác tại viện Khoa học và Cô Công ng ngh nghệ Việt Nam), hai ngườ i đã s ẵn lòng giải đáp khúc mắc và chia sẻ kinh nghiệm cho tôi khi g ặ p bế tắc trong quá trình trình nghiên nghiên cứu. Tôi cũng xin gửi lờ i cảm ơ n đến ngườ i đồng nghiên cứu vớ i tôi, bạn Hà Thanh Tùng, ngườ i đã sát cánh cùng tôi vượ t qua r ất nhiều khó khăn trong thờ i gian hoàn luận văn này. Cuối cùng, cùng, tôi xin xin bày tỏ sự biết ơ n vô hạn tớ i cha mẹ tôi, các anh ch ị tôi và cùng vớ i bạn bè đã luôn ở bên bên cạnh khuyến khích, động viên, giúp đỡ tôi tôi vượ t qua những khó khăn trong quá trình thực hiện luận văn. Hà Nội, tháng 05 n ăm 2010. Sinh viên
Đàm Tiến Dũng
Nhận dạng tiếng nói là một l ĩ nh vực nghiên cứu quan tr ọng và có nhiều ứng dụng ĩ nh trong cuộc sống. ng. Ch Choo đến nay, có r ất nhiều nghiên cứu về nhận dạng tiếng nói đã đượ c đưa ra, và k ỹ thu ật đều có điểm mạnh, điểm yếu riêng riêng.. Trong Trong luận văn này, tôi s ẽ giớ i thiệu một số k ỹ thuật tiêu biểu trong nhận dạng tiếng nói, nói, bao bao gồm k ỹ thuật trích chọn MFCC C, các k ỹ thu ật nhận d ạng bằng mô hình Markov ẩn và bằng đối sánh đặc tr ưng MFC mẫu. Son Songg song song vớ i vi ệc nghiên cứu lý thuyết, tôi cũng xây dựng một h ệ th ống nhận dạng tiếng nói thử nghiệm dựa trên các lý thuy ết đó, vớ i mục đích là kiểm tra tính đúng đắn và so sánh các k ỹ thuật trong nhận dạng tiếng nói. nói. Cuối cùng, thông qua nghiên cứu này, tôi xin đề xuất ra một số phươ ng ng hướ ng ng phát triển, nghiên cứu tiế p theo, cùng vớ i những ứng dụng của nghiên cứu vào các các bài toán toán trong trong thực tế.
MỤC LỤC Chươ ng 1. MỞ ĐẦ U............................................................................................1 1.1. GIỚI THIỆU BÀI TOÁN NHẬ N DẠ NG TIẾ NG NÓI ...................... 1 1.2. MỤC ĐÍCH CỦA NGHIÊN CỨ U...................................................... 2 Chươ ng 2. TI Ế NG NÓI VÀ S Ự BI Ể U DI Ễ N TI Ế NG NÓI.................................3 2.1. ÂM VỊ VÀ SỰ TẠO THÀNH TIẾ NG NÓI ....................................... 3 2.2. PHIÊN ÂM ........................................................................................ 3 2.3. BIỂU DIỄ N TÍN HIỆU TIẾ NG NÓI TRONG MÁY TÍNH ............... 4 Chươ ng 3. KỸ THU Ậ T TRÍCH CH Ọ N ĐẶ C TRƯ NG MFCC TRONG NH Ậ N D Ạ NG TI Ế NG NÓI ................................................................................................... 5 3.1. ĐỊ NH NGHĨA ....................................................................................5 3.2. TRÍCH CHỌ N ĐẶC TR Ư NG MFCC ................................................ 5 3.2.1. Pre-emphasis .................................................................................. 6 3.2.2. Windowing..................................................................................... 6 3.2.3. DFT (Dicrete fourier transform) .....................................................7 3.2.4. Mel filter-bank and log ...................................................................8 3.2.5. DCT (Discrete consinse transform).................................................9 3.2.6. Feature extraction...........................................................................9 Chươ ng 4. KỸ THU Ậ T NH Ậ N D Ạ NG TI Ế NG NÓI S Ử DỤ NG MÔ HÌNH MARKOV Ẩ N ................................................................................................. 11 4.1. GIỚI THIỆU MÔ HÌNH MARKOV Ẩ N.......................................... 11 4.2. NHỮ NG VẤ N ĐỀ CHÍNH CỦA HMM...........................................12 4.2.1. Ướ c lượ ng xác suất mô hình ........................................................13 4.2.2. Nhận dạng .................................................................................... 17 4.2.3. Huấn luyện ................................................................................... 17 4.3. MÔ HÌNH MARKOV Ẩ N CHO NHẬ N DẠ NG TIẾ NG NÓI.......... 19 4.3.1. Xây dựng mô hình Markov ẩn cho nhận dạng tiếng nói................19 4.3.2. Phươ ng pháp tính xác suất đoán nhận âm học b j(ot)......................22 4.3.3. Phươ ng pháp huấn luyện nhúng (Embedded Training) ................. 23 4.4. VẤ N ĐỀ TÍNH TOÁN XÁC SUẤT TRONG LẬP TRÌNH ............. 25 Chươ ng 5. NH Ậ N D Ạ NG TI Ế NG NÓI B Ằ NG ĐỐ I SÁNH M Ẫ U....................27 5.1. THUẬT TOÁN SO SÁNH THỜI GIAN ĐỘ NG (DTW).................. 27 5.2. ÁP DỤ NG VÀO BÀI TOÁN NHẬ N DẠ NG TIẾ NG NÓI............... 28
NGHI Ệ M............................................................ 29 Chươ ng 6. K Ế T QU Ả TH ỰC 6.1. MÔ TẢ THỰ C NGHIỆM.................................................................29 6.2. KẾ T QUẢ ........................................................................................30 6.3. ĐÁNH GIÁ K ẾT QUẢ ....................................................................31 Chươ ng 7. K Ế T LU Ậ N ......................................................................................32 7.1. TỔ NG K ẾT NỘI DUNG..................................................................32 7.2. HƯỚ NG PHÁT TRIỂ N.................................................................... 32 PH Ụ LỤ C .................................................................................................33 TÀI LI Ệ U THAM KH Ả O .........................................................................................35
DANH MỤC BẢNG BIỂU Bảng 1: K ết quả của một số hệ thống nhận dạng tiếng nói trên thế giớ i...............2 Bảng 2: Khở i tạo tham số ? ...............................................................................25 Bảng 3: Khở i tạo tham số aij ..............................................................................25 Bảng 4: Từ điển và phiên âm các từ trong bộ số đếm tiếng Việt 0-9..................29 Bảng 5: K ết quả thực nghiệm trên bộ dữ liệu tiếng nói đồng đều cao ................30 Bảng 6: K ết quả thực nghiệm trên bộ dữ liệu tiếng nói đồng đều thấ p ............... 31
DANH MỤC HÌNH ẢNH Hình 1: Số hóa tín hiệu âm thanh.........................................................................4 Hình 2: Các bướ c trích chọn đặc tr ưng MFCC ....................................................6 Hình 3: Cắt tín hiệu bằng cửa sổ tr ượ t (window) .................................................7 Hình 4: tươ ng quan giữa thang đo tần số thườ ng và tần số Mel ...........................8 Hình 5: HMM vớ i N=5......................................................................................12 Hình 6: HMM vớ i N=3, T=5 ............................................................................. 14 Hình 7: Tính xác suất Forward [2].....................................................................15 Hình 8: Tính xác suất Backward [2] ..................................................................16 Hình 9: HMM cho từ ONE ................................................................................20 Hình 10: Biến thiên trong âm vị ah ...................................................................20 Hình 11: HMM ba tr ạng thái cho từ ONE ..........................................................21 Hình 12: Phổ tín hiệu của 2 từ ONE TWO phát âm liên tiế p ..............................21 Hình 13: HMM k ết hợ p..................................................................................... 22 Hình 14: HMM cho từ ONE..............................................................................25 Hình 15: mô hình thuật toán DTW ....................................................................27
BẢNG KÝ HIỆU VIẾT TẮT Viết tắt
Tên đầy đủ
Ý ngh ĩ a
DTW
Dynamic Time Warping
So sánh th ờ i gian động
HMM
Hidden Markov Model
Mô hình Markov ẩn
International Phonetics Alphabet
B ảng chữ cái ngữ âm quốc tế
MFCC
Mel frequency cepstral coefficients
Các h ệ số phổ tần số Mel
NNs
Neural Networks
Các mạng nơ ron
IPA
Chươ ng 1. MỞ ĐẦU Trong chươ ng này, tôi s ẽ nêu lên tính cần thiết, mục đích cùng vớ i những ý ngh ĩ a khoa học, tính thực tiễn của đề tài nghiên cứu này.
1.1. GIỚ I THIỆU BÀI TOÁN NHẬN DẠNG TIẾNG NÓI Trong cuộc sống hàng ngày, tiếng nói tự nhiên chính là phươ ng tiện giao tiế p đơ n giản, hiệu quả và thông dụng nhất giữa ngườ i vớ i ngườ i. Tiếng nói đã tr ở nên quá quen thuộc đối v ớ i con ngườ i ngay từ khi mớ i l ọt lòng. Tầm quan tr ọng c ủa ti ếng nói trong cuộc s ống thườ ng ngày là không thể ph ủ nhận. Tuy nhiên, ngày nay khi mà máy móc có ở khắ p n ơ i xung quanh chúng ta thì loại hình giao tiế p c ơ b ản nh ất gi ữa con ngườ i và máy móc lại là các dòng lệnh, các chỉ thị thông qua việc gõ bàn phím. Các dòng lệnh đó thườ ng r ất máy móc và khó nhớ đối vớ i con ngườ i, đồng thờ i thao tác b ằng tay cũng thườ ng chậm hơ n so vớ i việc sử dụng tiếng nói. Hãy thử tưở ng tượ ng, cuộc sống sẽ tr ở nên dễ dàng thế nào nếu chúng ta có thể giao tiế p vớ i máy móc bằng tiếng nói tự nhiên. Khi đó, chúng ta có thể soạn thảo văn bản bằng tiếng nói, quay số điện thoại bằng tiếng nói, hay tìm kiếm thông tin trên Internet bằng giọng nói chứ không qua thao tác bằng tay. Nhận dạng tiếng nói, đứng trên quan điểm học máy là một bài toán nhận dạng mẫu phức t ạ p. Mục đích của bài toán này là phân lớ p tín hiệu tiếng nói đầu vào thành một dãy liên tiế p các mẫu đã đượ c h ọc s ẵn. Trong đó m ột m ẫu có thể là một t ừ, ho ặc một âm vị (đơ n vị nhỏ nhất có thể phân biệt đượ c cấu tạo nên từ). Về cơ b ản, bài toán nhận dạng tiếng nói đượ c chia ra thành các lo ại sau[19]: Nhận dạng tiếng nói r ời r ạc/liên tục Nhận dạng tiếng nói phụ thuộc ngườ i nói/không phục thuộc ngườ i nói Nhận dạng tiếng nói vớ i bộ từ vựng nhỏ/bộ từ vựng lớ n L ĩ nh vực nhận dạng tiếng nói đang ngày càng đượ c quan tâm hơ n trong những năm gần đây. Nhiều lý thuyết đã đượ c xây dựng, như k ỹ thuật trích chọn đặc tr ưng LPC hay MFCC, các k ỹ thu ật nh ận d ạng như mô hình Markov ẩn (HMM), các mạng nơ ron (NNs) hay so sánh thờ i gian động (DTW). Bàng dướ i đây chỉ ra k ết quả đạt đượ c của một số hệ thống nhận dạng tiếng nói hiện thờ i trên thế giớ i [7]:
1
Bảng 1: Kết quả của một số hệ thống nhận dạng tiếng nói trên thế giớ i
Hệ thống
Lượ ng từ vựng
Tỉ lệ lỗi (%)
TI Digits
11 (b ộ số tiếng Anh)
Wall street Journal read speech
5.000
3
Wall street Journal read speech
20.000
3
Broadcast News
64.000+
10
Conversation Telephone Speech (CTS)
64.000+
20
0.5
Mặc dù có r ất nhiều lý thuyết đã đượ c đưa ra, tuy nhiên những gì đạt đượ c vẫn là chưa đủ để tiếng nói có thể thay hoàn toàn những dòng lệnh trong giao tiế p giữa ngườ i vớ i máy. Tuy nhiên, những thành tựu đạt đượ c đó c ũng đã giúp con ngườ i gi ải quyết khá nhiều bài toán trong cuộc sống. Một số mày điện thoại di động đã có thể cho phép quay số t ự động khi ngườ i dùng đọc tên ngườ i c ần g ọi trong danh bạ vào. Con ngườ i đã có thể điều khiển sự hoạt động của rô bốt b ằng giọng nói, mặc dù những chỉ th ị đó thườ ng ngắn gọn và nằm trong một tậ p hữu hạn các chỉ thị đã đượ c huấn luyện.
1.2. MỤC ĐÍCH CỦA NGHIÊN CỨ U Ngày nay, hướ ng nghiên cứu chủ đạo trong l ĩ nh vực nhận d ạng tiếng nói là các k ỹ thuật để tách biệt hệ thống nhận dạng tiếng nói ra khỏi sự phụ thuộc vào ngườ i nói, bộ từ vựng hay môi tr ườ ng. Ở Việt Nam hiện nay, các nghiên cứu v ề nhận dạng tiếng nói không nhiều, và thườ ng tậ p trung vào các t ậ p từ v ựng nhỏ nhằm giải quyết một s ố bài toán thực tế nhất định. Dựa trên những lý thuyết đã đượ c xây dựng, nghiên cứu này đượ c thực hiện nhằm đạt đượ c những mục đích sau đây: Tìm hiểu các k ỹ thuật trong nhận dạng tiếng nói, trong đó tậ p trung vào hai phần chính là k ỹ thuật trích chọn đặc tr ưng MFCC và k ỹ thuật nhận dạng s ử dụng mô hình Markov ẩn. Tự cài đặt hệ thống nhận dạng tiếng nói trên tậ p số đếm tiếng Việt từ 0 đến 9 bằng mô hình Markov ẩn và bằng phươ ng pháp đối sánh mẫu, dựa trên phươ ng pháp trích ch ọn đặc tr ưng MFCC. Sau đó so sánh các k ết quả đạt đượ c để đưa ra k ết luận về các phươ ng pháp trên. Đề ra những định hướ ng phát triển tiế p theo sau nghiên cứu này.
2
Chươ ng 2. TIẾNG NÓI VÀ SỰ BIỂU DIỄN TIẾNG NÓI Các hệ thống nhận dạng như nhận dạng chữ viết tay hay nhận dạng tiếng nói đều cố gắng mô phỏng tốt nhất quá trình mà v ật cần nhận dạng đượ c hình thành trong thực tế. Chính vì vậy ,tr ướ c khi đi vào tìm hiểu các k ỹ thuật trong nhận dạng tiếng nói, chúng ta cần nắm đượ c một s ố kiến thức v ề tiếng nói như cách một ti ếng nói đượ c tạo thành hay cách biểu diễn tiếng nói.
2.1. ÂM VỊ VÀ SỰ TẠO THÀNH TIẾNG NÓI Trong ngữ âm học, âm vị là một đơ n vị phân đoạn nh ỏ nhất của tiếng nói đượ c dùng để t ạo nên các từ có ngh ĩ a. Nói cách khác, âm vị là đơ n vị nh ỏ nh ất có thể phân biệt của tiếng nói. Như vậy, một từ đượ c phát âm ra thực chất là sự k ết hợ p của một tậ p các âm vị liên tiế p nhau. Tiếng nói của con ngườ i đượ c hình thành nhờ s ự k ết h ợ p c ủa các bộ ph ận trong bộ máy phát âm như l ưỡ i, h ọng, môi, r ăng, mũi… Khi những bộ ph ận đó ở nh ững vị trí khác, các âm thanh khác nhau s ẽ đượ c t ạo thành. Chính vì vậy, chúng ta hoàn toàn có thể phân biệt âm này vớ i âm khác trên cơ sở đánh giá cách k ết hợ p của các c ơ quan trong bộ máy phát âm, hay vị trí của chúng khi phát âm.
2.2. PHIÊN ÂM 1 Tổ chức ngữ âm quốc tế (International Phonetic Association), đã phát minh ra bảng chữ cái ngữ âm quốc tế (International Phonetic Alphabet), viết tắt là IPA, dựa trên các đặc tính của âm vị và sự tạo thành tiếng nói. IPA là một hệ thống chuẩn các ký hiệu bằng chữ latin đượ c dùng để bi ểu diễn tiếng nói, trong đó mỗi ký hiệu tươ ng ứng vớ i một âm v ị. Việc biểu diễn tiếng nói bằng các ký hiệu này đượ c gọi là phiên âm. Ví dụ, từ PEN trong tiếng Anh sẽ đượ c phiên âm là /p ε n/ . Phiên âm, nói cách khác, chính là sự biểu diễn của tiếng nói dướ i dạng văn bản. Tuy nhiên, trong máy tính, các ngôn ngữ l ậ p trình không th ể bi ểu di ễn đượ c h ết các ký hiệu latin, vì vậy các ký hiện trong IPA sẽ đượ c biểu diễn bằng một ký tự hoặc một nhóm ký tự ASCII viết liền nhau. Trong tiếng Anh Mỹ (American English), bảng chữ cái ARPABET đ ã đượ c sử d ụng để bi ểu diễn phiên âm, trong đó m ỗi ký tự hoặc nhóm ký tự ASCII trong ARPABET sẽ t ươ ng ứng vớ i m ột ký hiệu latin trong IPA.Ví dụ, từ PEN khi sử dụng ARPABET sẽ đượ c phiên âm là /p eh n/ .
1
Tham khảo Chươ ng 6 , “Speech and Language Processing” [7] và Chươ ng 5, “Pattern Recognition in Speech and Language Processing”[4]
3
2.3. BIỂU DIỄN TÍN HIỆU TIẾNG NÓI TRONG MÁY TÍNH Tín hiệu âm thanh nói chung, và tiếng nói nói riêng có thể đượ c mô phỏng dướ i dạng đồ th ị có tr ục hoành là thờ i gian, tr ục tung là cườ ng độ. Giá tr ị tại một điểm trên đồ thị sẽ là cườ ng độ của âm thanh tại một thờ i điểm nhất định. Tín hiệu âm thanh ngoài đờ i thực là tín hiệu liên tục, hay tín hiệu tươ ng tự (Analog signal). Tr ướ c khi thực hiện bất cứ bướ c xử lý nào, tín hiệu âm thanh cần đượ c s ố hóa. Việc này đượ c thực hiện t ự động bở i các thiết b ị thu âm, bằng cách lấy giá tr ị của tín hiệu đầu vào tại các thờ i điểm khác nhau, hay còn gọi là lấy mẫu. Tín hiệu âm thanh sau khi đã đượ c lấy mẫu tr ở thành tín hiệu số, là tín hiệu r ời r ạc.
Hình 1: Số hóa tín hiệu âm thanh
Như vậy, một tín hiệu âm thanh bất k ỳ khi đã đượ c đưa vào máy tính, là một t ậ p các mẫu liên tiế p nhau, mỗi m ẫu là giá tr ị biên độ c ủa tín hiệu t ại m ột th ờ i điểm nh ất định. Một tham số quan tr ọng trong việc l ấy m ẫu tín hiệu âm thanh là tần s ố l ấy mẫu, Fs, tức là s ố mẫu đượ c l ấy trong một giây. Để có thể đo l ườ ng chính xác, cần phải l ấy ít nhất 2 mẫu trong một chu k ỳ của tín hiệu tươ ng tự đầu vào. Như vậy, tần số lấy mẫu phải l ớ n hơ n 2 l ần tần s ố cao nhất của tín hiệu âm thanh đầu vào. Tuy nhiên, trên th ực tế tai ngườ i chỉ có thể nhận biết đượ c các âm thanh có tần số nhở hơ n 10.000Hz, do đó tần số lấy mẫu là 20.000Hz là đủ cho việc nhận dạng vớ i độ chính xác cao. Trong l ĩ nh vực nhận dạng tiếng nói qua điện thoại, tần số lẫy mẫu chỉ cần là 8.000Hz vì chỉ có các tín hiệu có tần s ố nhỏ h ơ n 4.000Hz đượ c truyền đi b ở i điện thoại. Các thiết b ị thu âm thì thườ ng có tần số lấy mẫu là 16.000Hz.
4
Chươ ng 3. KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯ NG MFCC TRONG NHẬN DẠNG TIẾNG NÓI 2 Trong các bài toán nhận dạng mẫu nói chung, phươ ng pháp trích chọn đặc tr ưng đóng vai trò quyết định trong sự chính xác của bài toán. Chính vì vậy, lựa chọn một phươ ng pháp trích chọn đặc tr ưng tốt là điều cần đượ c quan tâm đặc biệt. Trong chươ ng này, tôi sẽ gi ớ i thiệu m ột ph ươ ng pháp trích chọn đặc tr ưng phổ bi ến và hiệu quả trong nhận dạng tiếng nói, trích chọn đặc tr ưng MFCC.
3.1. ĐỊNH NGHĨA Trích chọn đặc tr ưng đối vớ i nhận dạng tiếng nói là việc tham số hóa chuỗi tín hiệu âm thanh đầu vào, biến đổi tín hiệu âm thanh thành một chuỗi các vector đặc tr ưng, mỗi vector đặc tr ưng bao gồm n giá tr ị thực (n phụ thuộc vào cách trích chọn đặc tr ưng) [6]. Hiện nay, có r ất nhiều phươ ng pháp trích chọn đặc tr ưng như: LPC(Linear predictive coding), AMDF(Average magnitude different function), MFCC(Mel-frequency cepstral coefficients), hoặc k ết hợ p của các phươ ng pháp trên. Phần tiế p theo sẽ giớ i thiệu cụ thể về phươ ng pháp trích chọn đặc tr ưng MFCC.
3.2. TRÍCH CHỌN ĐẶC TRƯ NG MFCC Trong nhận dạng tiếng nói, k ỹ thuật trích chọn đặc tr ưng MFCC là phươ ng pháp phổ biến nhất. MFCC là viết tắt c ủa Mel-frequency cepstral coefficients. K ỹ thuật này dựa trên việc th ực hi ện biến đổi để chuyển d ữ li ệu âm thanh đầu vào về thang đo tần số Mel, một thang đo diễn tả tốt hơ n sự nhạy cảm của tai ngườ i đối vớ i âm thanh. K ỹ thuật trích chọn đặc tr ưng này gồm các bướ c biến đổi liên tiế p như trong hình 2, trong đó đầu ra của bướ c biến đổi tr ướ c sẽ là đầu vào của bướ c biến đổi sau. Đầu vào của quá trình trích chọn đặc tr ưng này sẽ là một đoạn tín hiệu tiếng nói đã đượ c r ờ i r ạc hóa. Chi ti ết của từng bướ c xử lý sẽ đượ c giớ i thiệu trong phần tiế p theo đây.3
2
Một số nội dung trong ch ươ ng này đượ c nghiên cứu cùng sinh viên Hà Thanh Tùng trong khóa lu ận “Nghiên cứu các đặc tr ưng trong nhận dạng tiếng nói tiếng Việt”, năm 2010. 3 Tham khảo Chươ ng 9, “Speech and Language Processing” [7]
5
Hình 2: Các bướ c trích chọn đặc trư ng MFCC
3.2.1. Pre-emphasis Đây là bướ c đầu tiên của trích chọn đặc tr ưng MFCC, đượ c thực hiện bằng cách tăng c ườ ng độ của những tần số cao lên nhằm làm tăng n ăng lượ ng ở vùng có tần số cao. Việc tăng cườ ng độ của vùng tần số cao lên làm cho thông tin rõ ràng h ơ n vớ i mô hình âm học và tăng độ chính xác của việc nhận dạng từng mẩu âm.
3.2.2. Windowing Để nâng cao độ chính xác của nhận dạng tiếng nói, mỗi một từ trong đoạn hội thoại s ẽ đượ c phân tích thành các âm vị, và hệ thống s ẽ nhận dạng từng âm vị. Do đó, các đặc tr ưng cần ph ải đượ c trích chọn trên từng âm vị, thay vì trên cả đoạn h ội thoại dài. Windowing là việc c ắt đoạn tín hiệu âm thanh đầu vào ra thành các mẩu tín hiệu có thờ i lượ ng nhỏ, gọi là các frame. Mỗi frame này sau đó sẽ đượ c nhận dạng như một âm vị. Một lý do khác cho thấy sự cần thiết của việc windowing là vì tín hiệu âm thanh thay đổi r ất nhanh, do đó các thuộc tính như biên độ, chu k ỳ sẽ không ổn định. Khi tín hiệu âm thanh đượ c cắt ra thành những đoạn nhỏ thì ở mỗi đoạn, có thể coi tín hiệu đó là ổn định, các đặc tr ưng của tín hiệu là không đổi theo thờ i gian. Để th ực hiện việc này, chúng ta s ử d ụng một c ửa s ổ (window) chạy d ọc tín hiệu âm thanh và cắt ra các đoạn tín hiệu nằm trong cửa sổ đó. Một cửa sổ đượ c định ngh ĩ a bằng các thông số: Frame size: độ r ộng của cửa sổ, cũng là độ lớ n của frame tín hiệu sẽ đượ c cắt ra. Frame shift: bướ c nhảy của cửa sổ, là độ dài đoạn mà cửa sổ sẽ tr ượ t để cắt ra frame tiế p theo.
6
Hình 3: Cắt tín hiệu bằng cử a sổ trượ t (window)
Mỗi frame sau đó sẽ đượ c nhân vớ i một hệ số, giá tr ị của hệ số này tùy thuộc vào từng loại cửa sổ.
∗
? [? ] = ? [? ] ? [? ] Ü Âđ Â x[n] là giá tr ị của mẫu thứ n, y[n] là giá tr ị của mẫu thứ n sau khi nhân vớ i hệ số, w[n] là hệ số cho mẫu thứ n. Loại cửa sổ đơ n giản nhất là cửa sổ Rectangular, giá tr ị của các hệ số w[n] đượ c cho bở i công thức sau:
≤ℎ ≤ ℎ−
1 ? ớ ? 0 ? ? 1 ? [? ] = ?0 ?? ườ ? ? ợ ? ? á? ,? ?à ? ố ? ẫ ? ?? ?? ? ? ộ? ? ?? ? ? Một loại cửa sổ khác thông dụng hơ n trong trích chọn đặc tr ưng MFCC là cửa sổ Hamming. Trong loại cửa s ổ này, giá tr ị của tín hiệu s ẽ giảm dần về 0 khi tiến dần ra 2 biên của frame. Biểu thức hệ số của cửa sổ hamming là: ? [? ] = ?0.54 0
− 0.46 cos ? 2?? ? ? ? ớ ? 0 ≤ ? ≤ ? − 1 ??ườ ? ? ℎợ ? ? ℎá?
3.2.3. DFT (Dicrete fourier transform) Bướ c biến đổi tiế p theo là th ực hiện biến đổi Fourier r ờ i r ạc đối vớ i từng mẩu tín hiệu đã đượ c cắt ra. Qua phép biến đổi này, tín hiệu sẽ đượ c đưa về không gian tần số. Công thức của biến đổi Fourier là:
7
? 1
? [? ] = ?
? [? ]? ?2 ? ? ? ?
? =0
Trong đó x[n] là giá tr ị của mẫu thứ n trong frame, X [k ] là một số phức biểu diễn cườ ng độ và pha của một thành phần t ần s ố trong tín hiệu gốc, N là s ố mẫu trong một frame. Thông thườ ng ngườ i ta sử dụng biến đổi FFT (Fast fourier transform) thay vì DFT. Biến đổi FFT nhanh hơ n nhiều so vớ i biến đổi DFT, tuy nhiên thuật toán này đòi hỏi giá tr ị N phải là một lũy thừa của 2. Vì X [k ] là một số phức nên nó sẽ đượ c lấy giá tr ị tuyệt đối: ? [? ] = |? [ ? ]| = ? ????(? [ ? ])2 + ?? ? ? ?? ? ?? (? [ ? ])2
3.2.4. Mel filter-bank and log K ết quả c ủa quá trình biến đổi Fourier thể hi ện n ăng lượ ng của tín hiệu ở những dải t ần s ố khác nhau. Tuy nhiên, tai của ngườ i lại không có sự nhạy cảm như nhau đối vớ i mọi dải tần số. Do đó việc mô hình hóa tính ch ất này của tai ngườ i trong quá trình trích chọn đặc tr ưng làm tăng khả n ăng nhận d ạng c ủa h ệ th ống. Trong mô hình trích chọn đặc tr ưng MFCC, tần số sẽ đượ c chuyển sang thang đo tần số mel theo công thức: ?? ? ? = 2595
∗ lg ?1 + 700? ?
Trong đó f là tần số ở thang đo thườ ng, f mel là tần s ố ở thang đo mel. Ngườ i ta sử dụng các băng lọc để tính các hệ số mel. Sử dụng bao nhiêu băng lọc thì sẽ cho ra bấy nhiêu hệ số mel, và các hệ số mel này s ẽ là đầu vào cho quá trình ti ế p theo của trích chọn đặc tr ưng MFCC. Hình vẽ sau biểu diễn mô hình các băng lọc trong thang đo tần số bình thườ ng và thang đo mel [11]:
Hình 4: tươ ng quan giữ a thang đo tần số thườ ng và tần số Mel
8
Vớ i M băng lọc, các hệ số Mel đượ c tính như sau: ?̃[? ] = log ??
? ? =0
? [? ]? ? [? ]?,
? = 0,1,2, , ?
Ü Âđ Â H m[k ] là tr ọng s ố cho giá tr ị thứ k trong frame, đối v ớ i hệ s ố thứ m, và đượ c tính bằng công thức [13][16]: 0,
− ? [? − 1]) − − 1])](? [? )] − ? [? − 1]) , +1 −? − − 1])(? [? + 1] − ? [? ]) ,
2(? (? [? + 1] ? [? ? ? [? ] = 2(? [? (? [? + 1] ? [? 0,
− 1] ? [? − 1] ≤ ? ≤ ? [? ] ? [? ] ≤ ? ≤ ? [? + 1]
? < ? [?
? > ? [? + 1]
3.2.5. DCT (Discrete consinse transform) Bướ c tiế p theo trong quá trình trích chọn đặc tr ưng là thực hiện biến đổi cosine r ời r ạc DCT. Sau khi thực hiện biến đổi Fourier thì tín đượ c chuyển về không gian tần số. Vi ệc l ọc t ần s ố b ằng các băng l ọc Mel giúp cô đọng mỗi giải t ần s ố v ề m ột hệ s ố thực. Các hệ số này thể hiện các đặc tr ưng về tần số cơ bản, xung âm thanh. Tuy nhiên, các đặc tr ưng này không quan tr ọng đối vớ i việc phân biệt các âm khác nhau. Thay vào đó, các đặc tr ưng về bộ máy phát âm như vị trí của khoang miệng, khoang mũi, lưỡ i… r ất quan tr ọng cho hệ thống nhận dạng. Việc thực hiện biến đổi consine sẽ làm tách biệt các đặc tr ưng về bộ máy phát âm và nguồn âm. Trên thực tế, chỉ có khoảng 12 hệ số đầu tiên sau khi thực hiện biến đổi DCT là cần thiết cho nhận d ạng tiếng nói. Biểu thức của biến đổi DCT như sau [14]:
1
?
? [? ] = ?
ln?S?[i]? cos ?
?=0
πn (2 i + 1)? 2L
3.2.6. Feature extraction Các hệ số mel thu đượ c sau khi thực hiện biến đổi DCT sẽ đượ c lấy làm đặc tr ưng. Thông thườ ng, chỉ 12 hệ s ố đầu tiên đượ c lấy làm đặc tr ưng cho nhận d ạng vì các hệ số này là đủ để nhận ra sự khác biệt khi hai âm khác nhau đượ c phát âm.
Đặc tr ưng thứ 13 là đặc tr ưng v ề năng lượ ng của tín hiệu. Đặ c tr ưng năng l ượ ng có thể đượ c trích chọn ngay sau bướ c windowing, và đượ c tính bằng công thức: ?
? ? ??? ? = ? ? 2 [? ] ? =0
9
Những đặc tr ưng vừa trích chọn đượ c g ọi là các đặc tr ưng gốc. V ớ i 13 đặc tr ưng gốc đó, chúng ta thêm vào 13 đặc tr ưng delta, thể hiện tốc độ thay đổi của tín hiệu giữa các frame. Các đặc tr ưng delta đượ c tính bằng công thức: ? ?[ ? ] =
??+1 [? ]
− ? [? ] ? 1
2
Trong đó ct [n] là đặc tr ưng thứ n trong 13 đặc tr ưng gốc của frame thứ t, d t [n] là đặc tr ưng delta thứ n của frame thứ t.
Để t ăng độ chính xác của nh ận d ạng, có thể thêm 13 đặc tr ưng double delta, thể hiện gia tốc thay đổi của tín hiệu giữa các frame. Các đặc tr ưng double delta đượ c tính như các đặc tr ưng delta, khi coi các đặc tr ưng delta là đặc tr ưng gốc. Như v ậy chúng ta đã trích chọn đượ c t ổng c ộng là 39 đặc tr ưng. Mỗi frame sau khi biến đổi sẽ cho ra một vector đặc tr ưng 39 chiều, mỗi chiều là một giá tr ị thực. Các vector này sẽ đượ c sử dụng tr ực tiế p cho các quá trình huấn luyện và nhận dạng.
10
Chươ ng 4. KỸ THUẬT NHẬN DẠNG TIẾNG NÓI SỬ DỤNG MÔ HÌNH MARKOV ẨN Nếu coi phươ ng pháp trích chọn đặc tr ưng là điều kiện cần cho sự chính xác của hệ thống nhận dạng tiếng nói, thì điều kiện đủ chính là mô hình nhận dạng. Trong phần này tôi sẽ giớ i thiệu chi tiết về k ỹ thuật nhận dạng tiếng nói sử dụng mô hình Markov ẩn, một mô hình đã đượ c áp dụng thành công trong một s ố phần mềm như bộ công cụ nhận dạng tiếng nói HTK 4 hay bộ nhận dạng tiếng nói Sphinx [17].
4.1. GIỚ I THIỆU MÔ HÌNH MARKOV ẨN Lý thuyết về nhận dạng tiếng nói đang ngày càng phát triển, tuy nhiên một hệ thống nhận dạng tiếng nói không bị phụ thuộc vào ngườ i nói hay các điều kiện môi tr ườ ng phải r ất lâu nữa mớ i có thể đạt đượ c. Có nhiều phươ ng pháp cho nhận dạng tiếng nói đã đượ c đưa ra như: mạng neural (Neural networks), DTW (Dynamic Time Warping), mô hình Markov ẩn (Hidden Markove Model)… Trong đó, k ỹ thuật nhận dạng tiếng nói sử d ụng mô hình Markov ẩn là một h ướ ng tiế p c ận ti ềm năng, đặc biệt là đối vớ i nhận dạng tiếng nói liên tục vớ i bộ từ vựng lớ n. Mô hình Markov ẩn đã đượ c nghiên cứu từ r ất lâu, và công trình nghiên c ứu thành công đầu tiên về HMM đượ c thực hi ện b ở i Baum vào cuối nh ững n ăm 60, đầu những năm 70. HMM là một phươ ng pháp học máy dựa trên thống kê, trong đó hệ thống đượ c mô hình bở i một tậ p các tr ạng thái (hay nhãn) ẩ n và các xác suất chuyển tr ạng thái. Vớ i m ỗi một chuỗi các quan sát đầu vào, mô hình s ẽ tìm ra một chuỗi các tr ạng thái có xác suất cao nhất tươ ng ứng vớ i chuỗi quan sát đó. Một HMM đượ c xác định bở i các yếu tố sau:5 Q = q1q2...q T : là tậ p các tr ạng thái. A = a11a12…a1N …a N1…a NN : là ma tr ận xác suất chuyển tr ạng thái, trong đó mỗi giá tr ị aij biểu diễn xác suất chuyển t ừ tr ạng thái i sang tr ạng thái j và ??=1 ? ?? =
∑
1 ∀ ? .
O = o1o2…oT : là chuỗi gồm T quan sát. B = bi(o ): t là tậ p các likelihood của các quan sát, hay còn đượ c gọi là xác su ất sinh, trong đó mỗi giá tr ị bi(o ) bi ểu diễn xác suất của quan sát ot đượ c sinh ra từ t tr ạng thái i. 4 5
Website: http://htk.eng.cam.ac.uk Tham khảo Chươ ng 6 , “Speech and Language Processing” [7]
11
q0 , q end : là các tr ạng thái bắt đầu và tr ạng thái k ết thúc. 2 tr ạng thái là luôn có ở bất k ỳ HMM nào và không liên hệ vớ i chuỗi quan sát.
ÂÚ Â ố xác suất khở i tạo tr ạng thái, ? Ú Â Â ất để tr ạng thái i ở vị trí đầu tiên và ??=1 ? ? = 1. ?
? È ? É? ?
∑
Một HMM đượ c định ngh ĩ a b ở i các tậ p tham số A, B, ? Â Â ạng thái và T quan sát có thể đượ c biểu diễn như sau: ? = (? , ? , ? )
Hình 5: HMM vớ i N=5
Mô hình Markov ẩn trên đượ c xây dựng trên cơ sở công nhận các giả thuyết sau[7]: Xác suất chuyển tớ i một tr ạng thái tiế p theo chỉ phụ thuộc vào tr ạng thái hiện tại. ? (? ?+1|? 1 ? ?) = ? (? ?+1|? ?) Xác suất chuyển tr ạng thái là không phụ thuộc vào thờ i gian
∀
? ?? = ? (? ?+1 = ?|? ? = ?) ? Xác suất c ủa một quan sát đầu ra ot chỉ ph ụ thu ộc vào tr ạng thái đã sinh ra quan sát qt , không phụ thuộc vào bất k ỳ tr ạng thái hay quan sát nào khác. ? (? ? |? 1 , , ? ? , , ? ? , ? 1 , , ? ? , , ? ? ) = ? (? ? |? ? = ?)
4.2. NHỮ NG VẤN ĐỀ CHÍNH CỦA HMM Có ba vấn đề chính cần đượ c đề cậ p đến khi sử dụng một hệ thống HMM, đó là[2]: Ướ c lượ ng xác suất mô hình:
Cho tr ướ c: mô hình λ = (A, B, ? ), cùng chuỗi quan sát O = o1o2…oT ,
Cần làm: tính xác suất của chuỗi quan sát vớ i mô hình đó P(O| λ )
Nhận dạng
Cho tr ướ c: mô hình λ = (A, B, ? ), cùng chuỗi quan sát O = o1o2…oT ,
12
Cần làm: tìm dãy tr ạng thái tối ưu Q = q1 q2 …qT có khả năng cao nhất sinh ra chuỗi quan sát O, vớ i mô hình cho tr ướ c đó
Huấn luyện
Cho tr ướ c : mô hình λ = (A, B, ? ), các chuỗi quan sát cho huấn luyện: ? ? = ? 1? ? 2? ? ?? , trong đó Ok là dãy quan sát cho ví dụ huấn luyện thứ k
Cần làm: khớ p lại các tham số của mô hình để có xác suất P(O| λ ) lớ n nhất
Trong phần ti ế p theo tôi s ẽ gi ớ i thiệu c ụ th ể về cách giải quyết các vấn đề đượ c đưa ra trên đây.
4.2.1. Ướ c lượ ng xác suất mô hình 6 Vấn đề c ần quan tâm đầu tiên khi sử d ụng HMM là việc ướ c l ượ ng xác suất của mô hính. Đó là xác suất đoán nhận một dãy quan sát của một mô hình λ = (A, B, ? ) cho tr ướ c, ký hi ệu là P(O| λ ). Ta có các công thức: ?
?
? (? |? ) = ? ? (? ?, ? ?|? ) = ? ? (? ?|? ?, ? ) ? (? ? |? ) ?=1
?=1 ?
? ?? ?? |? ???
? (? ?|? ?, ? ) = ? ?=1
? 1
? (? ?|? ) = ? ? 1 ? ? ? ? ? ?+1 ?=1
Trong đó, p là s ố khả n ăng có thể có của dãy Q = q1q2...q T , đoán nhận dãy quan sát O bở i mô hình λ. Xét một ví dụ đơ n gi ản, một HMM gồm có 3 tr ạng thái và chuỗi quan sát O = o1o2o3o4o5 gồm 5 quan sát. Hình dướ i đây mô tả mô hình này, trong đó hàng dọc là các tr ạng thái, hàng ngang là các quan sát, m ột quan sát sẽ đượ c đoán nhận bở i một trong 3 tr ạng thái. Xét một tr ườ ng hợ p, dãy Q1= q1q1q2q3q3 đượ c thể hiện b ở i đườ ng đi nét đậm trong hình vẽ dướ i đây.
6
Tham khảo “The Concepts of Hidden Markov Model in Speech recognition Systems”[2] và “A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition”[12]
13
Hình 6: HMM vớ i N=3, T=5
Khi đó, xác suất P(O1|Q1 , λ ) và P(Q1| λ ) sẽ đượ c tính như sau: 5
? (? 1 |? 1 , ? ) = ?
? (? ?1 |? ?1 ) = ? 1 (? 1 )? 1 (? 2 )? 2 (? 3 )? 3 (? 4 )? 3 (? 5 )
?=1 4
? (? 1 |?) = ? 1 ? ? ? ? ? ?+1 = ? 1 ? 11 ? 12 ? 23 ? 33 ?=1
⟹ ? (? |? , ? )? (? |? ) = ? (? )? (? )? (? )? (? )? (? )? ? 1
1
1
1
1
1
2
2
3
3
4
3
5
1 11 ? 12 ? 23 ? 33
Vớ i các tính toán trên, chúng ta s ẽ ph ải tính xác suất của t ất c ả các đườ ng đi có thể có. Vớ i N tr ạng thái ẩn và T quan sát thì có t ớ i N T đườ ng đi, như v ậy s ố xác suất phải tính sẽ tăng lên theo cấ p số mũ khi N và T tăng lên. Trong các bài toán thực tế, số tr ạng thái ẩn và quan sát thườ ng lớ n, do đó cách tính toán như này là không hiệu quả.
4.2.1.1. Thuật toán Forward Một thuật toán quy hoạch động có khả n ăng tính toán hiệu quả h ơ n đ ã đượ c đưa ra: thuật toán Forward. Xác suất c ủa dãy quan sát P(O|λ) s ẽ đượ c tính toán bằng cách cộng tất cả các xác suất của tất các các đườ ng đi có thể sinh ra dãy quan sát, nhưng thuật toán này hoạt động hiệu quả bở i vì nó gộ p hoàn toàn mỗi đườ ng đi vào một lướ i forward (forward trellis) duy nhất. Trong thuật toán forward, một mảng NxT sẽ đượ c tạo ra, trong đó giá tr ị ? ? (?) biểu diễn xác suất ở vị trí quan sát thứ t và có tr ạng thái ẩn thứ i, có công thức như sau: ? ? (?) = ? (? 1 , ? 2 , . . , ? ? , ? ? = ?|? )
14
Hình 7: Tính xác suất Forward [2]
Giá tr ị ? ? (?) đượ c tính bằng cách cộng tất cả các xác suất của các đườ ng đi có thể dẫn tớ i vị trí đó. Thuật toán Forward đượ c mô tả như sau: 1, Khở i tạo: ? 1 (?) = ? ?? ?(? 1 ),
1
≤ ?≤ ?
2, Quy nạ p: ?
? ?+1 (?) = ?? ? ? (?)? ?? ? ?? (? ?+1 ), ?=1
1 ?1
≤≤ ?? ≤≤ ?? − 1
3, K ết thúc: ?
? (? |? ) = ? ? ? (?) ?=1
4.2.1.2. Thuật toán Backward Thuật toán Backward cũng giống vớ i thuật toán Forward, tuy nhiên đườ ng đi của quan sát sẽ đượ c xét theo chiều ngượ c lại, từ quan sát thứ T cho đến quan sát đầu tiên. Do đó xác suất tại mỗi một vị trí sẽ là tổng các xác suất của tất cả các đườ ng đi từ cuối tr ở v ề đến v ị trí đó. Trong thuật toán này, xác su ất ở v ị trí quan sát thứ t và tr ạng thái ẩn thứ i sẽ đượ c ký hiệu là ? ? (?), trong đó: 15
? ? (?) = ? (? ?+1 , ? ?+2 , , ? ? , ? ? = ?, ? )
Hình 8: Tính xác suất Backward [2]
Thuật toán Backward đượ c mô tả như sau: 1, Khở i tạo: ? ? (?) = ? ?? ,
1
≤ ?≤ ?
2, Quy nạ p: ?
? ? (?) = ? ? ?? ?? (? ?+1 )? ?+1 (?) , ?=1
?
− 1, ? − 2, ≤ ≤?
?=? 1 ?
,1
3, K ết thúc: ?
? (? |? ) = ? ? 1? ?? (? 1 )? 1 (?) ?=1
Độ phức tạ p của cả hai thuật toán trên đều là O(N2T). Ngoài ra, xác su ất c ủa dãy quan sát P(O|λ) còn có thể đượ c tính bằng thuật toán Forward-Backward, là k ết hợ p của 2 thuật toán trên, bằng công thức: ?
? (? |? ) = ? ? ? (?)? ? (?) ?=1
16
4.2.2. Nhận dạng Nhiệm vụ của nhận dạng là tìm ra một chuỗi tr ạng thái ẩn tốt nhất cho một chuỗi quan sát cho tr ướ c, đối vớ i m ột mô hình λ = (A, B, ? ) cho tr ướ c . Có nhiều thuật toán để làm việc này, tuy nhiên trong ph ần này tôi sẽ ch ỉ giớ i thiệu thuật toán Viterbi, một thuật toán quy hoạch động nổi tiếng cho nhận dạng đối vớ i mô hình HMM. Thuật toán Viterbi có cách hoạt động giống vớ i thuật toán Forward, đi từ trái sang phải của dãy quan sát để lấ p đầy một mảng NxT . Gọi vt (j) là giá tr ị tại ô ở hàng j, cột t . Giá tr ị của vt (j) chính là xác suất lớ n nhất trong số các xác su ất của các đườ ng đi dẫn đến vị trí đó. Thuật toán sẽ đượ c thực hiện m ột cách đệ quy, giá tr ị vt (j) sẽ đượ c tính dựa vào các giá tr ị tr ướ c đó như sau: ? ? (?) = max ? ? 1 (?)? ?? ?? (? ? )
1 ? ? 1
K ết quả nhận dạng sẽ là đườ ng đi có xác suất cao nhất, từ đầu tớ i cuối mô hình.
4.2.3. Huấn luyện Mục này sẽ đề cậ p đến vấn đề huấn luyện HMM, đượ c coi là phần khó nhất trong ba vấn đề đượ c nêu ra ở phần này. Nhiệm vụ c ủa việc huấn luyện HMM là điều chỉnh các tham số mô hình (A, B, ? ) để đạt đượ c một mô hình tối ưu nhất cho các mẫu huẫn luyện. Có nhiều k ỹ thu ật đã đượ c đưa ra cho vấn đề này, tuy nhiên trong mục này tôi sẽ chỉ giớ i thiệu một k ỹ thuật huấn luyện khá thông dụng, đó là k ỹ thuật huấn luyện sử dụng thuật toán Baum-Welch[18], hay còn gọi là thuật toán Forward-Backward – một tr ườ ng hợ p riêng của thuật toán tối ưu hóa k ỳ vọng (Expectation Maximization Algorithm)[5]. Thuật toán này dựa trên phươ ng pháp lặ p để đạt đượ c cực đạt địa phươ ng của hàm xác suất P(O| λ ). Trong mỗi vòng lặ p, các tham số của mô hình sẽ đượ c điều chỉnh l ại, và mô hình mớ i s ẽ t ốt h ơ n mô hình cũ, nh ư đã đượ c ch ứng minh bở i Baum và nhiều ng ườ i khác. Thuật toán sẽ d ừng lại khi gặ p điều ki ện hội t ụ, t ức là khi xác suất mô hình P(O| λ ) không tăng nữa hoặc tăng r ất ít, hoặc khi gặ p phải điều kiện t ớ i h ạn c ủa tính toán. Mô hình luôn luôn hội t ụ, tuy nhiên chỉ có thể đảm bảo giá tr ị đạt đượ c của P(O| λ ) là một cực đại địa phươ ng.
Đầu Tr ướ c khi đi vào thuật toán cụ thể, cần định ngh ĩ a hai xác suất: γt (i) và ξ t(i,j). tiên là xác suất γt (i), có ý ngh ĩ a là xác suất ở tr ạng thái i tại quan sát thứ t , vớ i một dãy quan sát và mô hình cho tr ướ c: ? ? (?) = ? (? ? = ?|? , ? ) =
17
? (? ? = ?, ? |? ) ? (? |? )
Vì ? (? ? = ?, ? |? ) = ? ? (?)? ? (?) và ? (? |? ) = ? ? (?) =
∑
∑
? ?=1 ? ? (?)? ? (?)
nên ta có:
? ? (?)? ? (?) ? ? (?)? (?) ? ?=1 ?
Xác suất thứ hai là ξ t(i,j), có ý ngh ĩ a là xác suất ở tr ạng thái i tại quan sát thứ t và tr ạng thái j tại quan sát thứ t+1, vớ i mô hình λ và dãy quan sát O cho tr ướ c:
ξ (?, ?) = ? (? = ?, ? ?
?
?+1
= ?|? , ? ) =
? (? ? = ?, ? ?+1 = ?|? , ? )? (? |? ) ? (? |? )
Theo công thức Bayes ta có: ? (? ? = ?, ? ?+1 = ?|? , ? )? (? |? ) = ? (? ? = ?, ? ?+1 = ?, ? |? ) Sử dụng các thuật toán Forward và Backward, ta tính đượ c: ? (? ? = ?, ? ?+1 = ?, ? |? ) = ? ? (?)? ?? ?? (? ?+1 )? ?+1 (?) Do vậy ta có:
ξ (?, ?) = ? (?)∑? ?
?
?? ?? (? ?+1 )? ?+1 (?) ? ?=1 ? ? (?)? ? (?)
Nếu t a cộng γt (i) đối vớ i tất cả các giá tr ị của t (ngoại tr ừ t=T ), ta sẽ thu đượ c một k ết qu ả là giá tr ị k ỳ v ọng về số l ần mà tr ạng thái i đ oán nhận một quan sát trên tất c ả các quan sát. Mặt khác, nếu ta cộng ξ t (i,j) đối vớ i tất cả các giá tr ị của t (ngoại tr ừ t=T ), ta sẽ thu đượ c một giá tr ị k ỳ vọng về số l ần tr ạng thái i chuyển sang tr ạng thái j. Từ những đánh giá trên, các tham s ố của mô hình sẽ đượ c tính toán lại như sau:
ỳ ỳ
?? ? = ?? ? ọ? ? ? ề ? ố ? ầ? ? 1 = ?? = ? 1 (?) ?? ? ọ? ? ? ề ? ố ? ướ ? ? ? ? ể ? ?ừ ? ??? ? ?? ???? = ?? ? ọ? ? ? ề ? ố ? ướ ? ? ? ? ể ? ?ừ ?? ? 1 ? (?)? ? (? ? 1 ( ) ?? ? ?+1 )? ?+1 (?) ?=1 ? ?=1 ? ?, ? = ? 1 = ? 1 ( ) ( ) ?=1 ? ? (?) ?=1 ? ? ? ? ? ? ?? ? ọ? ? ? ề ? ố ? ầ? ở ?? ạ? ? ? á? ? ?à ?á? ? ậ? ?? ?? ?á? ? ? = ? ? ? ??? (? ? ) = ?? ? ọ? ? ? ề ? ố ? ầ? ở ?? ạ? ? ? á? ?? ? ?=1,? ? =? ? ? ? (?) ?:? ? =? ? ? ? (?)? ? (?) = = ? ? ?=1 ? ? (?) ?=1 ? ? (?)? ? (?)
ỳ
∑ ξ ∑ ỳ ∑ ∑
ℎ
∑
∑ ỳ ∑ ∑
ℎ
ℎ
18
đ ℎ ℎ
̂
Ở đây, dấu ^ thể hiện các tham số mớ i sau khi điều chỉnh lại. Sau khi cậ p nhật lại các tham số nh ư trên, chúng ta s ẽ thu đượ c một mô hình mớ i ? phù h ợ p h ơ n mô hình cũ λ, đối vớ i dãy quan sát O:
̂
? ? ? | ? ? > ? (? |? ) Cụ thể thuật toán Baum-Welch đượ c mô tả như sau: 1. Khở i tạo A, B và ? . 2. Lặ p: Bướ c k ỳ vọng: tính các giá tr ị γt (i) và ξ t (i,j). Bướ c tối ưu hóa: tính lại các tham số A, B và ? . Cụ thể về thuật toán Baum-Welch trong bài toán nh ận dạng tiếng nói sẽ đượ c mô tả trong phần 4.3.3.
4.3. MÔ HÌNH MARKOV ẨN CHO NHẬN DẠNG TIẾNG NÓI 4.3.1. Xây dự ng mô hình Markov ẩn cho nhận dạng tiếng nói Mô hình miêu tả ở trên là một dạng đặc biệt của HMM, thườ ng đượ c sử dụng trong nhận dạng tiếng nói. Mô hình này đượ c gọi là HMM trái-sang-phải (left-to-right HMM hay Bakis Network) bở i vì các tr ạng thái đượ c di chuyển từ trái sang phải, và không tồn t ại b ướ c chuyển t ừ tr ạng thái có số th ứ t ự cao hơ n đến một tr ạng thái có số thứ tự thấ p hơ n (aij = 0 nếu i > j). Mô hình này đượ c áp dụng trong bài toán nhận dạng tiếng nói vì nó có thể biểu diễn tốt dòng tiếng nói theo thờ i gian. Trên thực tế, có thể tồn tại nhiều cách biểu diễn khác nhau của HMM cho bài toán nhận dạng tiếng nói, tùy thuộc vào cách phân tích bài toán. Mô hình đượ c miêu tả trên đây chỉ là m ột trong số đó. Như đã trình bày ở Chươ ng 2, một t ừ đượ c phát âm ra có thể coi là sự k ết hợ p của các âm vị liên tiế p nhau. Ví dụ như từ ONE , phiên âm theo chuẩn IPA là w-ah-n, khi phát âm từ này thì ngườ i nói sẽ lần lượ t phát âm các âm v ị w, ah và n. Ti ế p đó, trong chươ ng 3, chúng ta đã đề c ậ p đến vấn đề trích chọn đặc tr ưng bằng phươ ng pháp MFCC, trong đó mỗi m ột dữ li ệu ti ếng nói sau khi trích chọn đặc tr ưng sẽ cho ta một chuỗi các vector đặc tr ưng liên tiế p nhau. Trong đó mỗi vector bao gồm các giá tr ị đặc tr ưng cho dữ liệu tiếng nói đó trong một khoảng thờ i gian ngắn nhất định. Chính vì vậy, trong bài toán nhận dạng tiếng nói, chúng ta coi các tr ạng thái ẩn là các âm vị, các quan sát là các vector đặc tr ưng đối v ớ i một HMM, và các HMM sẽ đượ c xây dựng cho từng từ một. K ết quả của quá trình nhận dạng sẽ cho ta một 19
chuỗi các tr ạng thái tươ ng ứng vớ i chuỗi quan sát, và từ chu ỗi tr ạng thái đó chúng ta có thể xác định từ đượ c phát âm là từ gì.
Hình 9: HMM cho từ ONE
Như đã nói ở trên, trong mô hình Markov ẩn trái-sang-phải cho từ ONE này, không tồn tại các đườ ng đi ngượ c của tr ạng thái ẩn. Loại mô hình này là phù h ợ p vì khi một ngườ i phát âm t ừ ONE , ngườ i đó sẽ bắt buộc phải phát âm lần lượ t từng âm vị w-ah-n. Nếu thứ tự các âm vị là w-n-ah thì từ đượ c phát âm sẽ biến thành một từ khác. Trong HMM cho nhận dạng tiếng nói, tồn tại bướ c chuyển từ một tr ạng thái đến chính nó, cho phép một tr ạng thái có thể đượ c lặ p l ại nhiều lần. Trong tiếng nói tự nhiên, độ dài của một từ hay một âm vị luôn thay đổi, do đó bướ c tự chuyển này cho phép mô hình có thể phù hợ p vớ i những dữ liệu tiếng nói đầu vào có thờ i gian biến thiên.
Đối v ớ i những tr ườ ng h ợ p nhận dạng tiếng nói đơ n giản, có s ố l ượ ng từ v ựng ít, như nhận dang bộ số đếm từ 0-9 thì một tr ạng thái ẩn trong HMM biểu diễn một âm vị là hợ p lý. Tuy nhiên, trong nhận dạng tiếng nói liên tục vớ i bộ từ vựng lớ n, cần có một cách biểu diễn mịn hơ n. Trong tiếng nói tự nhiên, một âm vị có thể kéo dài đến 100 frame (định ngh ĩ a frame đượ c nêu ở mục 3.2.2), điều này khiến cho xác suất tự chuyển tr ạng thái sẽ r ất lớ n, làm giảm độ chính xác khi nhận dạng. Thêm vào đó, các đặc tr ưng của âm như năng lượ ng âm cũng biến thiên khá nhiều trong một âm vị. Chính vì sự không đồng đều c ủa âm vị này, trong các hệ thống nhận dạng tiếng nói liên tục v ớ i bộ từ vựng lớ n sử dụng mô hình HMM, một âm vị thườ ng đượ c mô hình bở i nhiều hơ n m ột tr ạng thái ẩn, mà cụ th ể là ba tr ạng thái ẩn độc l ậ p. Điều đó c ũng có ngh ĩ a là một tr ạng thái ẩn trong HMM sẽ biểu diễn một mẩu âm vị, có thể là phần đầu, giữa hoặc cuối của một âm vị. Chúng ta tạm gọi mô hình này là “HMM ba tr ạng thái”.[7]
Hình 10: Biến thiên trong âm vị ah
20
Để chuyển từ HMM đơ n giản như đã nêu ở phần đầu sang HMM ba tr ạng thái, chúng ta chỉ cần thay mỗi tr ạng thái ẩn b ằng 3 tr ạng thái ẩ n đầu, giữa và. Tr ạng thái cuối của một âm vị sẽ đượ c nối vớ i tr ạng thái đầu của âm vị tiế p theo. Hình vẽ sau đâu mô tả HMM ba tr ạng thái, trong đó các chữ cái b, m, f tươ ng ứng vớ i các tr ạng thái đầu, giữa và cuối của một âm vị.
Hình 11: HMM ba trạng thái cho từ ONE
HMM đượ c mô tả ở trên đây đượ c xây dựng cho từng từ trong bộ từ vựng. Chính vì v ậy mô hình này chỉ có thể áp dụng để nh ận d ạng đối v ớ i đầu vào là từng t ừ riêng biệt. Chúng ta cần phải có những k ỹ thuật bổ sung để hệ thống có thể nhận dạng vớ i dữ liệu tiếng nói liên tiế p. Dướ i đấy, tôi sẽ giớ i thiệu hai phươ ng pháp để nhận d ạng tiếng nói liên tục: Phươ ng pháp đầu tiên là cắt d ữ li ệu tiếng nói liên tục đầu vào thành từng từ, sau đó nhận dạng đối vớ i từng từ riêng biệt đó vớ i mô hình trên. Dựa trên đặc tính của tiếng nói liên tục, đó là giữa các từ thườ ng có một khoảng lặng, tức là khoảng thờ i gian nhỏ mà ngườ i nói ngừng lại để phát âm từ tiế p theo. Như vậy một tín hiệu âm thanh đầu vào sẽ đượ c cắt ra tại những khoảng lặng, thành nhiều tín hiệu âm thanh nhỏ khác để nhận dạng. Hình vẽ bên dướ i thể hiện tín hiệu âm thanh sau khi đượ c phân tích phổ (thực hiện biến đổi Fourier), chúng ta có thể th ấy khá rõ khoảng lặng giữa hai từ ONE và TWO.
Hình 12: Phổ tín hiệu của 2 từ ONE TWO phát âm liên tiếp
Trong phươ ng pháp thứ hai, một HMM mớ i sẽ đượ c xây dựng dựa trên các HMM đã đượ c xây dựng cho từng từ. Mô hình mớ i này sẽ là k ết hợ p của tất cả các mô 21
hình cũ, bằng cách đặt tất cả các HMM cho từng từ l ại, tất cả các tr ạng thái bắt đầu và k ết thúc sẽ đượ c gộ p lại thành chỉ một tr ạng thái bắt đầu và một tr ạng thái k ết thúc. Một đườ ng đi từ tr ạng thái k ết thúc đến tr ạng thái bắt đầu s ẽ đượ c thêm vào, cho phép nhận dạng đượ c một chuỗi các từ có độ dài bất k ỳ. Có thể thêm vào một tr ạng thái lặng ở cuối mỗi từ để mô phỏng khoảng lặng giữa 2 từ khi phát âm các từ liên tiế p nhau. Hình vẽ sau đây thể hiện mô hình này, sil là tr ạng thái lặng.
Hình 13: HMM kết hợ p
4.3.2. Phươ ng pháp tính xác su ất đoán nhận âm học b j(ot) Trong mục này, tôi sẽ giớ i thiệu về cách tính xác suất đoán nhận âm học b j(ot) dựa vào phân phối Gauss, hay phân phối chuẩn. Phươ ng pháp này đượ c đề cậ p đến trong các tài liệu: Two Pass Hidden Markov Model for Speech Recognition[1] và Speech and Language Processing [7]. Xét tr ườ ng h ợ p đơ n gi ản nh ất là mỗi vector đặc tr ưng chỉ có một chiều, ký hiệu giá tr ị duy nhất c ủa mỗi vector đặc tr ưng là ot. Giá tr ị của ot đượ c giả định là một phân phối Guass, và mỗi tr ạng thái ẩn j trong HMM có tươ ng quan vớ i một giá tr ị k ỳ vọng ? ? và phươ ng sai ??2 . Xác suất b j(ot) s ẽ đượ c tính thông qua hàm mật độ xác suất Gauss: ?? (? ? ) =
1 ? 2? ??2
−? ? ? ??? ? − 2? 2
?? ?
?
2 ?
Như đã gi ớ i thiệu ở ph ần 4.2.3, ph ươ ng pháp huấn luyện theo thuật toán BaumWelch là một phươ ng pháp lặ p. Do đó, tại mỗi vòng lặ p các giá tr ị k ỳ vọng và phươ ng sai cũng cần đượ c điều chỉnh lại. Cũng ở ph ần 4.2.3, chúng ta đã tìm hiểu v ề xác suất
22
là xác su ất ở tr ạng thái i tại thờ i điểm t, và cách tính xác suất này. Công thức đượ c đưa ra để cậ p nhật các tham số k ỳ vọng ? ? và phươ ng sai ??2 như sau: γt (i),
∑ ? = ∑ ∑ ?? =
? ?=1 ? ? (?)? ? ? ? (?) ?=1 ? ? ? (?)(? ? ?=1 ? ? ?=1 ? ? (?)
?
2 ?
−? )
∑
2
?
Tuy nhiên, các vector đặc tr ưng trong bài toán nhận dạng tiếng nói thực ch ất là các vector đa chiều. Vì vậy chúng ta cần phải sử dụng phân phối Gauss đa chiều để tính toán giá tr ị b j(o ). t Nếu số chiều của một vector là D, vớ i mỗi tr ạng thái ta s ẽ có một vector k ỳ vọng D chiều ? ? và một ma tr ận hiệ p phươ ng sai ? kích thướ c DxD. Ma tr ận hiệ p phươ ng sai ở đây là một ma tr ận đườ ng chéo, có giá tr ị hàng d cột d là phươ ng sai của chiều th ứ d của vector đặc tr ưng. Tươ ng tự, vector k ỳ vọng cũng đượ c tính bằng cách tính k ỳ v ọng cho từng chiều của các vector đặc tr ưng. Cuối cùng, công thức để tính xác suất đoán nhận âm học b j(o )t sẽ là:
Σ
1
?? (? ? ) =
Σ
??? ??? ?
? 2? ? ? ? ?
=? ? =1
1 ? 2? ???2
− ? ? Σ ?? − ? ?? ?
?
?
1
−? ??? ? − 2? ?? ??
2 ??
?
??
?
?
2
?
4.3.3. Phươ ng pháp huấn luyện nhúng (Embedded Training) Trong phần này, chúng ta sẽ tìm hiểu v ề v ấn đề hu ấn luyện trong hệ th ống nhận dạng tiếng nói sử d ụng mô hình markov ẩn. Mục đích của quá trình huấn luyện này là xây dựng các HMM cho từng từ. Dữ liệu cần thiết để chuẩn bị cho quá trình huấn luyện này bao gồm các tậ p mẫu dữ liệu âm thanh cho các từ trong bộ từ vựng.
4.3.3.1. Hand-labeled word training Như đã giớ i thiệu ở mục 4.2.3, phươ ng pháp huấn luyện cho mô hình Markov ẩn là d ựa trên thuật toán Baum-Welch. Tuy nhiên tr ướ c khi nói về thuật toán này, tôi xin đượ c giớ i thiệu môt phươ ng pháp huấn luyện đơ n giản h ơ n, dựa trên k ỹ thuật học có giám sát, phươ ng pháp huấn luyện từ đượ c gán nhãn tr ướ c (hand-labeled word training). Trong phươ ng pháp này, dữ li ệu huấn luyện đã đượ c gán nhãn tr ướ c, t ức là độ dài của từng âm vị trong mỗi mẫu dữ liệu huấn luyện đã đượ c xác định. Do đó, chúng ta cũng có thể xác định đượ c mỗi frame sẽ tươ ng ứng vớ i âm vị nào. Như chúng 23
ta đã biết, các vector đặc tr ưng đượ c trích chọn trên từng frame và các âm vị là các tr ạng thái trong HMM nên ta sẽ xác định đượ c một quan sát s ẽ đượ c đoán nhận bở i tr ạng thái nào. Khi đó, ta có thể dễ dàng tính đượ c phân phối Gauss của từng tr ạng thái, dựa vào công thức:
1 ?? = ? ?
?
??
?=1,? ? =? ?
???2 =
1 ? ?
(? ?
−? ) ?
2
?=1,? ? =?
Sau đó, tham số B có thể dễ dàng tính đượ c bằng hàm mật độ xác suất như đã nói ở phần tr ướ c. Tiế p đó, các tham số A và ? sẽ đượ c khở i tạo theo các nguyên tắc sau:
? i sẽ có giá tr ị bằng 1 nếu mô hình bắt
đầu vớ i tr ạng thái i, ngượ c lại ? i = 0.
aị j sẽ đượ c tính bằng cách thống kê dữ liệu: ? ?? =
ℎ
?ố ? ướ ? ? ? ? ể? ?ừ ? ??? ? ? ? ố ? ướ ? ? ? ? ể? ?ừ ?
ℎ
4.3.3.2. Embedded training Trong thực tế, để gán nhãn cho một tậ p dữ liệu dài một tiếng, có thể cần thờ i gian lên đến 400 tiếng. Do đó phươ ng pháp huấn luyện hand-labeled word training là không khả thi trong các bài toán có bộ từ vựng lớ n. Một k ỹ thuật huấn luyện khác, không đòi hỏi dữ liệu gán nhãn sẵn, đã đượ c xây dựng dựa trên thuật toán Baum-Welch (mục 4.2.3), đó là phươ ng pháp huấn luyện nhúng (Embedded training). Phươ ng pháp này gồm hai bướ c như sau: 1. Xây dựng mô hình Markov ẩn λ = (A, B, ? ) cho từ c ần hu ấn luyện. Các tham số A, B và đượ c khở i tạo như sau:
? i
sẽ có giá tr ị bằng 1 nếu mô hình bắt đầu vớ i tr ạng thái i, ngượ c l ại ? i =
0.
aị j sẽ có giá tr ị bằng 0.5 nếu i = j hoặc bướ c chuyển từ i sang j là một bướ c chuyển tồn tại trong mô hình, ngượ c lại aị j = 0. Riêng a NN sẽ bằng 1. Khở i t ạo các giá tr ị k ỳ vọng ? ? và phươ ng sai ? ? , trong đó giá tr ị k ỳ v ọng và phươ ng sai cho mỗi tr ạng thái sẽ là k ỳ vọng và phươ ng sai của tất cả các vector đầu vào. Sau đó tính b j(o )t dựa vào ? ? và ??2 . 24
2. Chạy thuật toán Baum-Welch cho mô hình λ . Hình vẽ và bảng sau mô tả HMM cho từ ONE và các giá tr ị khở i tạo của A và ?
Hình 14: HMM cho t ừ ONE
Bảng 2: Khở i tạo tham số
?
w 1
ah 0
n 0
Bảng 3: Khở i tạo tham số aij
w
w 0.5 0 0
ah 0.5 0.5 0
n 0 0.5 1
4.4. VẤN ĐỀ TÍNH TOÁN XÁC SUẤT TRONG LẬP TRÌNH Khi lậ p trình các hệ thống nhận dạng sử dụng HMM, vấn đề tính toán các xác suất luôn cần đượ c quan tâm. Khi số lượ ng quan sát lớ n, cộng vớ i việc các xác suất luôn nhỏ hơ n 1 thì hiện tượ ng underflow r ất dễ xảy ra, nhất là khi tính các xác su ất forward ? ? (?), backward ? ? (?) hay xác suất mô hình P(O| λ ). Để giải quyết vấn đề này, trong phần này tôi sẽ giớ i thiệu một phươ ng pháp đượ c mô tả trong tài liệu Numerically Stable Hidden Markov Model Implementation[8]. Thay vì tính các xác suất bình thườ ng, chúng ta sẽ tính logarit tự nhiên của các xác suất đó. Hàm logarit giúp ta vẫn gi ữ đượ c t ươ ng quan giữa các xác suất khi so sánh, đồng thờ i tránh đượ c hiện t ượ ng underflow. Để tránh hiện t ượ ng một số ngôn ngữ ném ra ngoại l ệ ho ặc tr ả về giá tr ị NaN khi tính logarit của 0, giá tr ị LOGZERO đượ c thay cho k ết c ủa khi tính logarit của 0. Các công thức s ẽ đượ c lấy logarit ở cả hai vế, d ựa trên bốn phươ ng thức cơ bản sau: 25
1. Hàm số mũ mở r ộng eexp(x) Vớ i x là một số thực: ???? (? ) = ? (? ) Vớ i x = LOGZERO: ???? (? ) = 0 2. Hàm logarit tự nhiên mở r ộng eln(x) Vớ i x > 0 ??? (? ) = ln (?) Vớ i x = 0 ??? (? ) = ? ? ? ? ? ? ? 3. Hàm tổng logarit elnsum(eln(x), eln(y)) Vớ i x > 0, y > 0 ??? ??? ???? (? ),??? (? )? = ??? (? + ? ) = ??? (? ) + ??? ?1+???????? (? )
− ??? (? )??
Vớ i x = 0 ? ?? ?? ? ?? ? ? ? ? ? ? , ? ?? (? )? = ??? (? ) Vớ i y = 0 ?????? (??? (? ), ? ? ? ? ? ? ? ) = ??? (? ) 4. Hàm tích logarit elnproduct(eln(x), eln(y)) Vớ i x > 0, y > 0 ?????????????? (? ),??? (? )? = ? ?? (? ) + ??? (? ) Vớ i x = 0 ? ?? ? ?? ? ? ???? ? ? ? ? ? ? , ? ?? (? )? = ? ? ? ? ? ? ? Vớ i y = 0 ??????????(??? (? ), ? ? ? ? ? ? ? ) = ? ? ? ? ? ? ?
26
Chươ ng 5. NHẬN DẠNG TIẾNG NÓI BẰNG ĐỐI SÁNH MẪU Trong chươ ng này, tôi sẽ gi ớ i thiệu thêm một k ỹ thu ật nhận d ạng tiếng nói bằng phươ ng pháp đối sánh mẫu, dựa trên thuật toán so sánh th ờ i gian động (Dynamic Time Warping - DTW) và phươ ng pháp trích chọn đặc tr ưng MFCC đã giớ i thiệu trong Chươ ng 3. Những nội dung đượ c trình bày trong ch ươ ng này đượ c tổng hợ p từ tài liệu Dynamic Time Warping Algorithm Review[15] và Cross-words Reference Template for DTW-based Speech Recognition Systems[3].
5.1. THUẬT TOÁN SO SÁNH TH Ờ I GIAN ĐỘNG (DTW) So sánh thờ i gian động là một thuật toán quy hoạch động để đánh giá sự tươ ng đồng giữa hai dãy có độ dài khác nhau. Thu ật toán này ho ạt động đặc biệt hiệu quả khi áp dụng cho hai dãy biến thiên theo thờ i gian. Cho tr ướ c hai dãy ? = (? 1 , ? 2 , , ? ? ) và ? = (? 1 , ? , , ? ? ) có độ dài tươ ng ứng là N và M . Gọi c(x ,i y j ) là khoảng cách giữa hai thành phần ? ? ? và ? ? ? . Một mảng D có kích thướ c NxM sẽ đượ c tạo ra để lưu tr ữ các giá tr ị trung gian. Giá tr ị D(i, j) (i=1,…,N; j=1,…,N ) là khoảng cách của hai dãy con ? ? = (? 1 , ? 2 , , ? ?) ? và ?? = ?? 1 , ? , , ? ? ? ? . Giá tr ị D(i, j) sẽ đượ c tính như sau:
∈
? (?, ?) = ?
∈ ∑ ∑
∈
? ? =1 ? (? 1 , ? ? ), ? ? =1 ? (? ? , ? 1 ),
? ?? {? (?
∈
−
?= 1 ?= 1 1, ?), ? (?, ? 1), ? (?
−
− 1, ? − 1)} +??? , ? ? ?
?
Hình sau đây thể hiện việc tính toán giá tr ị tại từng ô trong thuật toán DTW:
Hình 15: mô hình thuật toán DTW
Khoảng cách giữa hai dãy X và Y, ký hi ệu là DTW(X, Y) bằng giá tr ị ở hàng N, cột M của mảng D:
27
? ? ? (? , ? ) = ? (? , ? )
5.2. ÁP DỤNG VÀO BÀI TOÁN NH ẬN DẠNG TIẾNG NÓI Thuật toán so sánh thờ i gian động đượ c dùng để phân lớ p mẫu trong bài toán nhận dạng tiếng nói r ởi r ạc, tức là nhận dạng từng từ riêng biệt. Sau khi trích chọn đặc tr ưng MFCC, mỗi mẫu tiếng nói sẽ cho ta một dãy các vector nhi ều chiều. Khoảng cách giữa hai dãy ? = (? 1 , ? 2 , , ? ? ) và ? = (? 1 , ? , , ? ? ) bất k ỳ s ẽ đượ c tính bằng thuật toán DTW như mô tả ở trên, trong đó giá tr ị c(x ,i y j ) là khoảng cách Euclid giữa hai vector ? ? ? và ? ? ? . Nếu D là s ố chiều của một vector thì c(x ,i y j ) sẽ đượ c tính như sau:
∈
∈
??? ?, ? ? ? = ? ?
? ? =1
?? ??
−?
??
?
2
Để có thể nh ận d ạng, một t ậ p các mẫu ti ếng nói ( X1, X2, …, Xn) đượ c gán nhãn từ tr ướ c s ẽ đượ c dùng để làm mẫu đối sánh. Gọi X là mẫu c ần nh ận dạng, nếu X gần vớ i X i nhất (khoảng cách DTW giữa X và X i là nhỏ nhất) thì X và X i sẽ cùng thuộc một lớ p.
28
Chươ ng 6. KẾT QUẢ THỰ C NGHIỆM Trong chươ ng này, tôi s ẽ đưa ra một số k ết quả thực nghiệm đ ã đạt đượ c cùng vớ i đánh giá, sau khi xây dựng chươ ng trình nhận dạng tiếng nói dựa vào các k ỹ thuật đã mô tả ở những phần tr ướ c, và đề xuất một s ố h ướ ng phát triển tiế p theo sau nghiên cứu này.
6.1. MÔ TẢ THỰ C NGHIỆM Chươ ng trình thực nghiệm đượ c xây dựng vớ i mục đích so sánh của hai k ỹ thuật nhận dạng tiếng nói: mô hình Markov ẩn và đối sánh mẫu, đối v ớ i ti ếng nói r ời r ạc và có bộ t ự v ựng nhỏ. Vớ i m ục đích trên, thực nghiệm đ ã đượ c ti ến hành trên hai bộ dữ liệu số đếm tiếng việt từ 0-9 ( KHÔNG đến CHÍN ) của một ngườ i nói. Cả hai bộ dữ liệu này đều bao gồm những thành phần sau: Hai tậ p mẫu tiếng nói, một tậ p dùng để huấn luyện (đối vớ i phươ ng pháp HMM) hoặc để làm mẫu đối sánh (đối vớ i phươ ng pháp đối sánh mẫu DTW), một tậ p dùng để kiểm tra. Một file liệt kê các âm vị. Một file từ điển liệt kê các từ và phiên âm. Có tất cả 10 từ, liệt kê trong Bảng 4. Bảng 4: Từ điển và phiên âm các từ trong bộ số đếm tiếng Việt 0-9 Từ
Phiên âm
KHÔNG
KH OO NGZ
MỘT
M OO TC
HAI
H A I
BA
B A
BỐ N
B OO NZ
NĂM
N AW MZ
SÁU
S AW U
BẢY
B AA YI
TÁM
T A MZ
CHÍN
CH I NZ
Tất cả các mẫu tiếng nói trong hai bộ dữ liệu này đều đượ c ngườ i viết thu âm trên máy tính xách tay b ằng phần mềm mã nguồn mở Audacity 1.2.6 (website: http://audacity.sourceforge.net), trong môi tr ườ ng phòng kín không có tiếng động. 29
Chươ ng trình thực nghiệm đượ c xây dựng bằng ngôn ngữ lậ p trình Java, phát triển trên nền IDE Eclipse (website: http://eclipse.org). Chươ ng trình đượ c chia ra thành hai module chính: frontend và core:7 Phần frontend bao gồm các bướ c xử lý c ủa quá trình trích chọn đặc tr ưng MFCC như đã mô tả ở Chươ ng 3, một số khâu tiền xử lý tín hiệu âm thanh cùng vớ i một bộ tách từ đơ n giản. Phần core bao gồm cài đặt c ủa hai thuật toán nhận dạng: HMM và DTW. Trong đó, bộ nhận dạng DTW đượ c viết theo thuật toán mô tả ở Chươ ng 5, còn bộ nhận dạng HMM đượ c viết theo lý thuyết ở Chươ ng 4, vớ i sự hỗ tr ợ của thư viện mã nguồn mở JaHMM(website: http://code.google.com/p/jahmm/).
6.2. KẾT QUẢ Chươ ng trình đượ c ch ạy thử nghiệm trên từng bộ d ữ liệu, vớ i những tiêu chí cần đánh giá là: tỉ lệ nhận dạng đúng và hiệu suất của thuật toán (thờ i gian chạy). Bộ dữ liệu thứ nhất bao gồm các mẫu tiếng nói có độ đồng đều cao, do ngườ i ngườ i nói phát âm các từ vớ i tốc độ ổn định. Tậ p dữ liệu huấn luyện bao gồm 100 mẫu tiếng nói chia đều cho 10 từ trong từ điển, mỗi từ có 10 mẫu. Tậ p dữ liệu kiểm tra bao gồm 50 mẫu tiếng nói, mỗi từ có 5 mẫu. K ết quả nh ận dạng trên bộ dữ liệu này như sau: Bảng 5: Kết quả thự c nghiệm trên bộ dữ liệu tiếng nói đồng đều cao
HMM
DTW
Tổng số mẫu
50
50
Nhận dạng đúng
50
50
Tỉ lệ nhận dạng đúng
100%
100%
Thờ i gian ch ạy chươ ng trình
2.082s
93.204s
Bộ d ữ li ệu thực nghiệm thứ hai bao gồm các mẫu tiếng nói có độ đồng đều th ấ p hơ n, do tốc độ phát âm c ủa ngườ i nói không ổn định. Bộ dữ liệu này bao gồm 200 mẫu tiếng nói của t ậ p huấn luyện và 100 mẫu tiếng nói của t ậ p ki ểm tra, trong đó s ố l ượ ng mẫu cho mỗi từ là bằng nhau. K ết quả thực nghiệm thu đượ c như sau:
7
Chi tiết xem Phụ lục
30
Bảng 6: Kết quả thự c nghiệm trên bộ dữ liệu tiếng nói đồng đều thấp
HMM
DTW
Tổng số mẫu
100
100
Nhận dạng đúng
97
95
97%
95%
3.793s
232.194s
Tỉ lệ nhận dạng đúng Thờ i gian ch ạy chươ ng trình
6.3. ĐÁNH GIÁ KẾT QUẢ Về độ chính xác, v ớ i t ậ p d ữ li ệu ti ếng nói r ời r ạc và nhỏ, c ủa một ng ườ i thu, cả hai phươ ng pháp đều có tỉ lệ nhận dạng đúng khá cao. Trong thực nghiệm vớ i bộ dữ liệu tiếng nói không đồng đều, phươ ng pháp HMM có tỉ lệ nhận dạng đúng cao hơ n một chút so vớ i phươ ng pháp DTW (97% so vớ i 95%). Về hiệu suất, trong cả hai bộ d ữ liệu, thờ i gian chạy khi nhận dạng bằng DTW luôn cao hơ n nhiều lần so vớ i nhận dạng bằng HMM. Điều này là dễ hiểu, bở i trong k ỹ thu ật nh ận d ạng b ằng DTW, thờ i gian để chu ẩn b ị tr ướ c khi nhận dạng là r ất nhỏ vì chươ ng trình chỉ phải trích chọn đặc tr ưng cho các mẫu dùng để đối sánh. Khi nhận dạng, chươ ng trình sẽ phải so sánh tiếng nói cần nhận dạng vớ i tất cả các mẫu đối sánh. Trong khi vớ i phươ ng pháp HMM, thờ i gian chuẩn bị tr ướ c khi nhận dạng là lớ n hơ n nhiều vì chươ ng trình sẽ phải chạy thuật toán huấn luyện Baum-Welch, một thuật toán lặ p cho từng từ để tính ra các tham số của mô hình HMM. Vì HMM đượ c xây dựng cho từng từ, nên vớ i 10 số đếm s ẽ chỉ có 10 mô hình, và do đó tốc độ nhận dạng sẽ r ất nhanh. Vớ i những k ết quả đó, có thể tạm đánh giá phươ ng pháp nhận dạng tiếng nói bằng HMM là tốt hơ n so vớ i phươ ng pháp nhận dạng tiếng nói bằng DTW. Vớ i tốc độ nhận d ạng cao, phươ ng pháp HMM hoàn toàn có thể áp dụng trong các bài toán nh ận dạng tiếng nói tr ực tuyến.
31
Chươ ng 7. KẾT LUẬN 7.1. TỔNG KẾT NỘI DUNG Sau đây là tổng hợ p những đóng góp của tôi qua luận văn này: Giớ i thiệu một s ố k ỹ thuật tiêu biểu để có thể xây d ựng một hệ th ống nhận dạng tiếng nói hoàn chỉnh. Những k ỹ thu ật đó bao gồm, k ỹ thuật trích chọn đặc tr ưng bằng phươ ng pháp MFCC, các k ỹ thuật nhận dạng theo tiế p cận thống kê (HMM) và theo tiế p cận đối sánh mẫu (DTW). Xây dựng thành công một hệ thống nhận dạng tiếng nói đơ n giản để minh họa, kiểm nghiệm tính đúng đắn của từng k ỹ thuật, cũng như để so sánh tính hiệu quả của các k ỹ thuật nhận dạng. Những k ết quả đạt đượ c từ tiến hành thực nghiệm cũng như từ nghiên cứu lý thuyết, mặc dù chưa phải là thành t ựu lớ n lao nhưng nó đã giúp tôi có đượ c cái nhìn c ơ bản v ề nh ận d ạng tiếng nói, đồng thờ i t ạo m ột n ền t ảng kiến th ức để có thể th ực hi ện những nghiên cứu sâu hơ n trong l ĩ nh vực này.
7.2. HƯỚ NG PHÁT TRIỂN Vớ i những k ết quả thu đượ c sau nghiên cứu này, tôi xin đưa ra một số hướ ng phát triển tiế p theo như sau: K ết quả thực nghiệm đã cho thấy k ỹ thuật nhận dạng tiếng nói bằng mô hình Markov ẩn là r ất tiềm năng. Tuy nhiên, HMM có r ất nhiều biến thể, trong khi những lý thuyết đưa ra trong nghiên cứu này vẫn còn ở mức cơ sở . Vì vậy, nghiên cứu tiế p theo sẽ tậ p trung tìm hiểu một dạng HMM hiệu quả cho nhận dạng tiếng nói. Tìm hiểu cách trích chọn đặc tr ưng cho tiếng Việt, vì tiếng Việt là ngôn ngữ có thanh điệu nên cần có đặc tr ưng thể hiện điều này. Mặc dù đạt k ết quả nhận d ạng khá cao, nhưng thực nghiệm trên đượ c th ực hi ện trên bộ d ữ li ệu ti ếng nói nhỏ, c ủa m ột ng ườ i nói, nên chươ ng trình thực nghiệm này chỉ mang tính kiểm tra, đánh giá các thuật toán chứ chưa có khả năng ứng dụng vào thực tế. Hơ n nữa, hệ thống nhận dạng này sẽ hướ ng tớ i các bài toán tr ực tuyến, cụ thể là bài toán tìm ki ếm thông tin tr ực tuyến bằng tiếng nói. Vì vây, chươ ng trình cần đượ c phát triển theo hướ ng mở r ộng bộ từ vựng lên khoảng trên 2000 từ tiếng Việt, đồng thờ i bộ dữ liệu huấn luyện sẽ đượ c mở r ộng để bao gồm giọng nói của nhiều ngườ i, cả nam và nữ. 32
PHỤ LỤC MỘT SỐ LỚ P CHÍNH TRONG CHƯƠ NG TRÌNH THỰ C NGHIỆM Chươ ng trình thực nghiệm đượ c xây dựng bằng ngôn ngữ lậ p trình JAVA, bao gồm hai package chính: Package sr.frontend bao gồm các class là cài đặt của quá trình trích chọn đặc tr ưng MFCC: - AudioDataReader: bao gồm các phươ ng thức hỗ tr ợ việc đọc file .wav - feature.AudioFrame: là thể hiện của một frame tín hiệu âm thanh - feature.FeatureVector: là thể hiện của một vector đặc tr ưng sau khi đã trích chọn đặc tr ưng, bao gồm một mảng số thực chứa các giá tr ị của vector - feature.WindowingProcessor: cài đặt của bướ c windowing, cắt tín hiệu âm thanh đầu vào ra thành những AudioFrame - feature.DFTProcessor: cài đặt của bướ c biến đổi Fourier, thực hiện biến đổi Fourier nhanh đối vớ i từng frame - feature.MelFilterBankProcessor: thực hiện việc lọc tần số trên thang đo tần số Mel - feature.DCTProcessor: thực hiện biến đổi cousine r ời r ạc trên từng frame - feature.FeatureExtractor: trích chọn các đặc tr ưng c ơ b ản cùng các đặc tr ưng delta và double delta cho từng frame, tr ả v ề các FeatureVector. Số l ượ ng đặc tr ưng sẽ trích chọn do ngườ i dùng thiết lậ p. Package sr.core bao gồm các lớ p: - SRMath: bao gồm các phươ ng thức h ỗ tr ợ vi ệc tính toán trong hệ th ống, như tính toán logarit của các xác suất trong mô hình Markov ẩn[8]. - Dictionary: quản lý tậ p từ vựng cùng vớ i phiên âm của từng từ - HMMGraph: biểu diễn mô hình Markov ẩn cho một từ dựa vào phiên âm, cung cấ p các phươ ng thức để khở i tạo các tham số ( A, B, ? Ù Â ấn luyện - trainer.TrainerDataReader: cung cấ p các phươ ng thức để đọc dữ liệu huấn luyện - trainer.TrainerDataWriter: cung cấ p các phươ ng thức để ghi các tham số mô hình sau khi huấn luyện xong 33
- decoder.HMMDecoder: bộ nhận dạng sử dụng mô hình Markov ẩn, sử dụng thư viện mã nguồn mở JaHMM (http://code.google.com/p/jahmm) - decoder.DTWDecoder: bộ nhận dạng sử dụng phươ ng pháp đối sánh mẫu, cài đặt theo thuật toán so sánh thờ i gian động (DTW)
34
TÀI LIỆU THAM KHẢO [1] Abdulla W. H., Kasabov N. K., “Two Pass Hidden Markov Model for Speech Recognition Systems”, Proc. ICICS’9, Singapore, 1999. [2] Abdulla W. H., Kasabov N. K., “The Concepts of Hidden Markov Model in Speech Recognition”, Technical Report Tr99/09, University of Otago, July 1999. [3] Abdulla W. H., Chow D., Sin G., “Cross-words Reference Template for DTW based Speech Recognition Systems”, Proc. IEEE TENCON , Bangalore, India, 2003. [4] Chuo W., Juang B. H., “Pattern Recognition in Speech and Language Processing”, CRC Press, 2003, Ch. 5. [5] Duda R. O., Hart P. E., Stork D. G., “Pattern Classification”, Wiley-Interscience; 2 edition, 2000, pp. 32-53. [6] Englund C., “Speech recognition in the JAS 39 Gripen aircraft – adaption to speech at different G-loads,” Master Thesis in Speech Technology, 2004, pp. 1-5. [7] Jurafsky D., Martin J. H., “Speech and Language Processing: An introduction to natural language processing, computational linguistics, and speech recognition,” Prentice Hall , 2 edition, 2008, Ch. 6. 7. 9. [8] Mann T. P., “Numerically Stable Hidden Markov Model Implementation”, 2006. [9] Molau S., Pitz M., Schluter R., Ney H., “Computing Mel-Frequency Cepstral Coefficients on the Power Spectrum”, Proc. Acoustics, Speech and Signal Processing , 2001. [10] Rabiner L. R. A., “Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition”, Proc. IEEE , 1989 [11] Roch M., “Cepstral Processing”, Lecture of San Diego State University. [12] Seltzer M., “SPHINX III Signal Processing Front End Specification,” CMU Speech Group, 1999. [13] Senin P., “Dynamic Time Warping Algorithm Review”, Information and Computer Science Department , University of Haiwii, Honolulu, 2008. [14] Sigurdsson S., Petersen K. B., Lehn-Schiøler T., “Mel Frequency Cepstral Coefficients: An Evaluation of Robustness of MP3 Encoded Music”,
35