Trong mô hình nhận dạng thanh điệu tiếng việt chúng tôi sử dụng 8 mô hình HMM tươngứng cho 6 thanh điệu. Ởđây chúng tôi sử dụng 8 mô hình vì thanh có 5 có 2 trường hợp là 5a và 5b, thanh 6 có 2 trường hợp là thanh 6a và 6b (như đã trình bày trong phần IV) .
Hình 5.7: quá trình khởi tạo các tham số
Các tham số của mô hìnhđược khởi tạo theo thuật toán sau:
Với mỗi mô hình, lấy tất cả các vector đặc trưngứng với mô hình này Tất cả các vector được chia thành các đoạn bằng nhau tuỳ vào số trạng thái của mô hình.
Ta tính các tham số thống kê (giá trị trung bình và phương sai) cho mỗi
đoạn tươngứng với một trạng thái trong mô hình.
Sử dụng thuật toán Viterbi để phân đoạn lại, sau đó tính toán các tham số thống kê và cập nhật trở lại mô hình.
Lặp lại bước cuối cho đến khi hội tụ.
Đây là một thuật toán để khởi tạo các tham số cho mô hình, tuyđây không phải là công việc chính, nhưng nó góp phần làm tăng độ hội tụ của việc tính các tham số
của mô hình.
Trong quá trình huấn luyện cho mô hình chúng ta có thể sử dụng thuật toán Baum – Welch để tính các tham số. Trong trường hợp này, thường gọi là sự khởi tạo trực tiếp và thường khởi tạo giá trị trung bình bằng 0 và phương sai bằng 1.
5.5. Nhận dạng
Quá trình nhận dạng thanh điệu của một tiếng được mô tả bằng hình sau:
Hình 5.8: Mô hình nhận dạng thanh điệu tiếng Việt
Tín hiệu tiếng nói sau khi đã qua tiền xử lý, trích tần số cơ bản, tạo các vector
đặc trưng dựa vào vector V(F0). Các vector đặc trưng này được đưa qua một bộ nhận dạng (sử dụng thuật toán Viterbi để tìm ra chuỗi trạng thái có xác suất lớn nhất) và
đầu ra là kết quả nhận dạng. Tuy nhiên, vì thanh 5 và thanh 6 được chia thành 2 trường hợp, nên đến đây vẫn chưa phải là kết quả cuối cùng, ta phải dựa vào 2 luật sau để quyết định:
nếu là thanh 5a hay thanh 5b đều quyết định là thanh 5 (thanh sắc)
nếu là thanh 6a hay 6b đều quyết định là thanh 6 (thanh nặng)
5.6. Một số kết quả nhận dạng thanh điệu tiếng Việt
Tổng cộng và khảo sát thử trên: 257 tiếng khác nhau, thu mẫu 4000 tiếng, trung bình mỗi tiếng thu mẫu 15 lần, kết quả nhận dạng lại trên những mẫu đã học.
1. Với vector đặc trưng gồm 11 thành phần:
Với các thông số của mô hình markovẩn khác nhau có kết quả tươngứng như sau: 5 trạng thái, 1 mixer : 92,24%
5 trạng thái, 4 mixer : 94,72% 6 trạng thái, 4 mixer : 94,91% 7 trạng thái, 4 mixer : 95,51%
2. Với vector đặc trưng gồm 11 thành phần:
yt= [ log( ft) ,|log( ft– ft+1) | , log( ft+ ft+1) , | log(e – et) | , log( d ) ,
log( fmax) , log( fmin) , log( fmax– fst) , log( fmax– fed), log( fst– fmin) log( fed– fmin) ]
Với các thông số của mô hình markovẩn có kết quả tươngứng như sau: 7 trạng thái, 4 mixer : 92,38%
3. Với vector đặc trưng gồm 9 thành phần:
yt = [ ft , ft– ft+1 , e – e t , fmax , fmin , fmax – fst , fmax – fed , fst – fmin , fed– fmin ]
Với các thông số của mô hình markov ẩn có kết quả tươngứng như sau: 6 trạng thái, 4 mixer: 92,23%
4. Với vector đặc trưng gồm 9 thành phần:
Với các thông số của mô hình markovẩn có kết quả tươngứng như sau: 6 trạng thái, 4 mixer: 94,66%
5. Với vector đặc trưng gồm 13 thành phần:
yt= [ ft, ft– ft+1, e – e t , d , fmax , fmin , fmax– fst , fmax– fed , fst– fmin, fed– fmin , fst , fed , fst– fed ]
Với các thông số của mô hình markovẩn có kết quả tươngứng như sau: 6 trạng thái, 4 mixer: 94,49%
6. Với vector đặc trưng gồm 12 thành phần:
yt= [ ft, ft– ft+1 , ft + ft+1, e – e t, d , fmax , fmin , fmax– fst, fmax– fed , fst– fmin , fed– fmin, fmax– fmin ]
Với các thông số của mô hình markovẩn có kết quả tươngứng như sau: 6 trạng thái, 4 mixer: 95,28%
7. Với vector đặc trưng gồm 10 thành phần:
yt= [ ft, ft– ft+1 , e – e t, d , fmax , fmin , fmax– fst, fmax– fed, fst– fmin, fed– fmin ]
Với các thông số của mô hình markov ẩn khác nhau có kết quả tương ứng như
sau :
Nhận dạng với 8 mô hình (phân chia mỗi thanh sắc và nặng thành 2 trường hợp)
6 trạng thái, 4 mixer, bỏ phần bắt đầu và kết thúc 10%: 95,39% 6 trạng thái, 4 mixer, bỏ phần bắt đầu và kết thúc 5% : 95,09%
Nhận dạng 6 mô hình cho 6 thanhđiệu (không phân chia thanh sắc và nặng) 6 trạng thái, 4 mixer, bỏ phần bắt đầu 10%: 97,67%
Tách riêng huấn luyện 300 mẫu, test 200 mẫu đối với nhận dạng 6 thanh : 6 trạng thái, 4 mixer, bỏ phần bắt đầu 10%: 95,69%
6 trạng thái, 4 mixer, bỏ phần bắt đầu 10%, nhận dạng 8 mô hình cho 8 thanh (mỗi thanh sắc và nặng chia thành 2 trường hợp) , sau đó dùng luật quyết
Kết quả: Tổng cộng 4000 tiếng Đúng 3941 tiếng(98,5 %) Sai 59 tiếng (1,5%) Ngan g Huyền Ngã Hỏi Sắc Nặng Tỉ lệ đúng Ngang 657 6 99.1% Huyền 657 100% Ngã 657 24 5 95.77% Hỏi 3 657 1 99.39% Sắc 13 656 98.06% Nặng 3 1 1 2 657 98.95% Kết quả nhận dạng lại trên những mẫu đã học đúng khoảng ~98.5%.
Chương 6.
Thiết kế mô hình nhận dạng tiếng nói tiếng Việt
Để giải quyết được bài toán nhận dạng tiếng Việt thì nhận dạng thanh điệu là rất cần thiết. Tuy không triệt để (không nhận dạng được toàn bộ các từ) nhưng có thể
làm tăng bộ từ vựng trong nhận dạng (bộ từ vựng có thể lớn hơn 200 từ ) với độ chính xác 90 - 96%. Ngoài ra để giải quyết được triệt để bài toán nhận dạng chúng ta cần kết hợp với mô hình ngôn ngữ, hoặc giải quyết bằng phương pháp nhận dạng âm vị
kết hợp với mô hình ngôn ngữ và nhận dạng thanh điệu.
Trong nghiên cứu của luận văn, nhận dạng tất cả các thanh điệu đạt khoảng 98,5% trên số lượng từ vựng là 257 từđược thu mẫu 4000 lần. Tỷ lệ trên là tương đối cao so với các nghiên cứu trước đây (84%) nhưng vẫn chưa dùng tốt cho nhận dạng. Chúng tôi đã tiến hành phân lớp thanh điệu thành 2 lớp: thanh cao và thanh thấp, kết quả phân lớp đạt được 99.71%. Vì vậy, chúng tôi chỉ ứng dụng mô đun nhận dạng thanh điệu tiếng Việt vào việc phân lớp. Nhờ đó có thể nâng được số lượng từ trong từđiển lên đáng kể mà vẫn giữđược độ chính xác cao.
Hình 6.1: Mô hình tổng quát;
(a) công đoạn huấn luyện; (b) công đoạn nhận dạng
6.1. Công đoạn huấn luyện
Cũng như trong nhận dạng thanh điệu tiếng Việt, tín hiệu tiếng nói cũng phải qua bước tiền xử lý, công đoạn huấn luyện cho mô hình, côngđoạn nhận dạng mẫu.
Hình 6.2: Côngđoạn huấn luyện mẫu
Bộ dữ liệu sau khi thu, được tạo thành 2 bộ từ điển tương ứng với 2 lớp thanh
điệu: thanh cao và thanh thấp. Trong đó bộ từđiển thanh cao gồm: thanh sắc và thanh ngã, bộ từ điển thanh thấp gồm: thanh ngang (thanh không dấu), thanh huyền, thanh ngã, thanh hỏi, thanh nặng, thanh ngã. Ở đây chúng tôi phân thanh ngã ở cả hai từ điển, bởi vì:
Theo tài liệu thống kê của I. S. Bystrov và M. V. Gordina (1976) thì tần số xuất hiện của thanh ngã là thấp nhất trong các thanh (chỉ 7%).
Thanh ngã là thanh nếu chỉ phân lớp vào lớp thanh cao thì làm cho tỉ lệ
nhận dạng đúng bị giảm xuống và ngược lại, vì sự biến đổi của nó chạy dài từ vùng tần số thấp đến vùng tần số cao.
Do đó cách giải quyết của chúng tôi là đưa thanh ngã vào cả hai bộ từ điển
Tín hiệu tiếng nói sau khi qua các bước tiền xử lý được tiến hành rút trích đặc trưng. Tất cả dãy dữ liệu của tín hiệu được chia thành các khung (frame) và dùngLPC
phân tích thành các vector với số phần tử ít hơn hẳn.
Các vector đặc trưng này sẽ được dùng để huấn luyện. Kết quả huấn luyện là các mô hình HMM cho các từ theo từng lớp từ điển. Ứng với mỗi lớp từ điển, chúng ta có một bộ các mô hình HMM.
Mặt khác, để sử dụng việc phân lớp, chúng tôi sử dụng đặc trưng F0. Theo khảo sát của luận văn, thanh điệu tiếng Việt được chia làm hai lớp phân tách nhau bỡi thanh ngang. Do đó, dữ liệu đưa vào sau khi tiền xử lý, chúng tôi tách riêng các từ
thanh ngang đem trích F0. Giá trị trung bình của F0 của các thanh ngang sẽ là giá trị
ngưỡng phân lớp. Giá trị này sẽ được cộng thêm P trong quá trình phân lớp, (P là phương sai của F0). (Tham khảo phần IV).
Theo khảo sát, giá trị phương sai của tần số cơ bản của thanh ngang: ở giọng nữ (8 – 16) Hz, ở giọng nam (20 – 24) Hz. Trong chương trình Demo, dữ liệu tiếng nói là giọng nam nên chúng tôi chọn P = 20.
6.2. Công đoạn nhận dạng
Sau khi huấn luyện mẫu, ta sẽ có các bộ từđiển tươngứng với các lớp. Nếu mô hình HMM nhận dạng được X tiếng, và giả sử ta có thể phân các tiếng thành A lớp; như vậy tổng số từ vựng ta có thể nhận dạng được sẽ tăng lên khoảng ~ X*A tiếng.
Hình 6.3: côngđoạn nhận dạng
Bắt đầu công đoạn nhận dạng, tín hiệu tiếng nói sẽ được đưa qua bộ xác định lớp thanh điệu. Tại đây các công việc trích pitch và phân lớp sẽđược tiến hành.
Sau khi đã xác định được lớp, chương trình sẽ lấy bộ từ vựng tương ứng của lớp đó lên để tiến hành việc nhận dạng từ. Như vậy, thay vì phải nhận dạng X*A từ
(sẽ vượt quá khả năng của mô hình HMM), chúng ta chỉ cần nhận dạng A từ của lớp thứ Xi.
Tóm lại, công đoạn nhận dạng ởđây chúng tôi chia làm hai bước: Bước 1: xác định lớp từđiển.
Chương 7. Hiện thực hoá mô hình nhận dạng tiếng Việt 7.1. Nhận dạng tiếng đơn Các tiếng dùng nhận dạng: STT Tiếng Lớp STT Tiếng Lớp STT Tiếng Lớp 1 Không 2 2 Một 2 3 Hai 2 4 Ba 2 5 Bốn 1 6 N ăm 2 7 Sáu 1 8 Bảy 2 9 Tám 1 10 Chín 1 11 Mười 2 12 Báo 1 13 Biết 1 14 Bình 2 15 Bóng 1 16 Cháy 1 17 Chèn 2 18 Chương 2 19 Có 1 20 Cửa 2 21 Đài 2 22 Đi 2 23 Điện 2 24 Đổi 2 25 Đoái 1 26 Đọc 2 27 Dạng 2 28 Dự 2 29 Giá 1 30 Giờ 2 31 Giúp 1 32 Hối 1 33 Hô 2 34 In 2 35 Lưu 2 36 Mở 2 37 Mới 1 38 Chạy 2 39 Phố 1 40 Phút 1 41 Quạt 2 42 Soạn 2 43 Tắt 1 44 Thành 2 45 Thảo 2 46 Thiếu 1 47 Thời 2 48 Thoát 1
49 Thứ 1 50 Tính 1 51 Tốc 1
52 Chuyền 2 53 Việt 2 54 Xoá 1
55 Xuống 1 56 Đỡ 2
Trong đó:
Lớp 1 (nhóm thanh cao) gồm có: sắc, ngã.
Lớp 2 (nhóm thanh thấp) gồm có: ngang, huyền, ngã, hỏi, nặng.
Các đặc trưng: Chúng tôi sử dụng phương pháp phân tích LPC để rút trích đặc trưng với các giá trị tham số như sau:
Các hệ số LPC N M P Q K Giá trị 25 ms 10 ms 10 12 3
Rút trích đặc trưng thanh điệu (F0) bằng thuật toán AMDF (M = 10ms, N = 5ms). Các tham số mô hình HMM: Số trạng thái: 5 Số Mixture: 4 Kết quả: 1. Bảng kết quả phân lớp thanh điệu:
Nhóm Nhóm thanh cao Nhóm thanh thấp Kết quả
Nhóm thanh cao 6098 22 99,64% Nhóm thanh thấp 22 7618 99,71%
2. Kết quả nhận dạng tiếng: N hận dạng trên tập huấn luyện: Số tiếng nhận dạng: 13760, đạt kết quả: 100% N hận dạng trên tập dữ liệu mới: Số tiếng dùng huấn luyện: 9174 Số tiếng dùng để thử: 4586 Các tiếng sai: Báo Sáu (1 lần)
Đi Điện (1 lần)
Số tiếng đúng: 4584, đạt tỉ lệ: 99,96%
7.2. Nhận dạng câu
Chúng tôi biến đổi sang nhận dạng từđơn, bằng cách tách các tiếng và đưa vào nhận dạng từ rời.
Quá trình nhận dạng câu được tiến hành như sau:
Hình 7.1: mô hình nhận dạng câu
Sau khi nhận dạng hết các từ trong câu, dùng luật để quyết định câu nói. Cách tính điểm và luật quyết định được miêu tả như sau:
Tính vị trí tiếng thứ i hiện tại của câu nói và nhận dạng tiếng đó.
Tại vị trí thứ i của mỗi câu nói tươngứng, nếu tiếng nhận dạng được thuộc câu nào thì câuđó sẽđược cộng thêm 1 điểm.
Kết thúc việc nhận dạng hết các từ trong câu, câu nào có số điểm cao nhất chính là kết quả.
Chương 8. Kết luận
8.1. Kết luận
Qua thời gian nghiên cứu và cài đặt, luận văn đã làm được một số công việc như sau:
Khảo sát một số đặc tính ngữ âm tiếng Việt, trong đó ứng dụng được
đặc điểm về thanh điệu vào hệ nhận dạng.
Cài đặt hệ nhận dạng sử dụng mô hình HMM liên tục.
Cài đặt hệ nhận dạng 6 thanh điệu tiếng Việt đạt hiệu quả khoảng 98,5%.
Đề nghị phương phápứng dụng đặc điểm thanh điệu tiếng Việt vào việc phân lớp trong hệ nhận dạng tiếng nói tiếng Việt và cài đặt thử nghiệm
đạt hiệu quả nâng số từ vựng nhận dạng được lên đến khoảng 60 từ.
Đề nghị và cài đặt thử nghiệm mô hình nhận dạng câu.
Trong giới hạn thời gian làm luận văn, chúng tôi chỉ mới có những bước đầu nghiên cứu tiếp cận theo hướng các đặc điểm ngữ âm tiếng Việt, vì vậy chắc chắn đề
tài còn nhiều thiếu sót. Tuy nhiên với một số ý tưởng và kết quả đã đạt được, chúng tôi hy vọng rằng luận văn này sẽ góp phần xây dựng các hệ thống nhận dạng tiếng Việt ngày càng hoàn chỉnh hơn.
Chương trình Demođược cài đặt trên hệ thống với các thông số như sau: Máy PC Celeron 1.2 Gb Bus 100, 96 Mb Ram.
Card âm thanh hiệu Creative
Micro dùng để thu dùng để thu âm dạng cầm tay.
Tiếng nói được thu với tần số lấy mẫu 16000Hz, kích thước mỗi mẫu là 16 bit.
Tiếng nói được rút trích đặc trưng bằng phương pháp LPC với chiều dài frame phân tích là N = 25 ms, phần chồng lấp M = 10 ms, số chiều vector LPC là p = 12.
8.2. Hướng phát triển:
Do trong thời gian ngắn, lượng dữ liệu thu vào có giới hạn dẫn đến kết quả
chưa được đánh giá chính xác. Điều này có thể cải tiến bằng cách thu nhiều mẫu hơn, xử lý để tăng độ chính xác, thu mẫu của nhiều người để có các thống kê, khảo sát tốt hơn, và xây dựng mô hình nhận dạng độc lập người nói.
Khảo sát thêm các đặc trưng ảnh hưởng đến thanh điệu như: phoóc măng, trường độ, ảnh hưởng của phụ âm nhằm nâng cao chất lượng nhận dạng thanh điệu, cũng như chất lượng phân lớp thanh điệu để từ đó có thể phân nhiều lớp hơn. (Hiện tại chỉ phân làm 2 lớp).
Tăng thêm số đặc điểm ngữ âm dùng để phân lớp như: nguyên âm, phụ âm, trường độ…
Tài liệu tham khảo
[1] B. H. Vu, “Về đặc trưng cơ bản của thanh điệu tiếng Việt ở trạng thái tĩnh”, 1999.
[2] Đinh Lê Thư – Nguyễn Văn Huệ, “Cơ cấu ngữ âm tiếng Việt”, NXB giáo dục, 1998
[3] Hồ Ngọc Điệp – Luận văn tốt nghiệp Khoa CNTT –ĐH KHTN, 1999
[4] L. R Rabiner, “A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition”, Proc. IEEE, 77(2), pp. 257-286, 1989. [5] Hà Việt Uyên Synh - Luận án thạc sĩ Khoa CNTT –ĐH KHTN, 1999.
[6] Lê Văn Lợi, “Thanh học – Các bệnh về giọng nói, lời nói và ngôn ngữ”, NXB Y học, 1999.
[7] Nguyễn Đức Hoàng Hạ– Luận văn tốt nghiệp Khoa CNTT –ĐH KHTN, 2002 [8] Nguyễn Quốc Cường, “Tone Recognition for Vietnamese”, 2001
[9] Steven W. Smith, “Digital Signal Processing”, 1999
[10] Steve Young et all, “The HTK Book”, the Cambridge University Engineering Department, July 2000
[11] Thái Hùng Văn - Luận án thạc sĩ Khoa CNTT –ĐH KHTN, 2000. [12] T.T. Doan. “Ngữ âm tiếng việt”, 1977
[13] Võ Tuấn Kiệt - Luận án thạc sĩ Khoa CNTT – ĐH KHTN, 1999.
[14] W.J Yang et all, "Hidden Markov Model for Mandarin Lexical Tone