(monophone)
Công cụ để thực hiện huấn luyện Embedded training trong HTK là HERest. HERest sẽ dùng các mô hình HMM vừa khởi tạo và dữ liệu huấn luyện để huấn luyện ra các HMM âm vịđộc lập ngữ cảnh monophone. Mô hình của quá trình huấn luyện như hình dưới. Chi tiết về thuật toán huấn luyện trên dữ liệu không gán nhãn âm vị Embedded training đã được chúng tôi giới thiêu ở phần trên.
Danh sách HMM (monophone0) Danh sách file huấn
luyện (trains.scp)
HÌNH 16 – Mô hình huấn luyện monophone (Từ in nghiêng trong dấu ngoặc đơn là
tên thư mục hoặc tập tin trong bài làm của nhóm)
HERest sẽ load các mô hình HMM vừa khởi tạo chứa trong file hmmdefs (file chứa định nghĩa các mô hình HMM) trong danh sách âm vị monophone0. Quá trình ước lượng tham số sẽ sử dụng các file huấn luyện chứa trong danh sách file huấn luyện trains.scp và các chuỗi các âm vị tương ứng nằm trong file phone.mlf để
tạo ra các HMM mới. Các HMM được huấn luyện được lưu trong thư mục
new_hmm. Chúng ta sẽ lặp lại số lần huấn luyện nhiều lần đến khi hội tụ. Tiêu chuẩn đểđánh giá hội tụ là xem sự hội của giá trị log_likelihood trung bình trên mỗi frame dữ liệu huấn luyện. Thường thì số lần huấn luyện là từ 2 đến 5 lần. Nếu số
HMM đã
khởi tạo HERest đượCác monophone c huấn luyện
File gán nhãn âm vị
KHOA CNTT –
ĐH KHTN
nếu số bước lặp quá lớn, sẽ xảy ra tình trạng quá luyện dẫn đến mức độ tổng quát của các HMM lại bị giảm đi. Vì vậy chúng ta sẽ phải quyết định số lượng các bước lặp sao cho hiệu quả nhất.
Chúng ta có thể quan sát sự giảm log_likelihood/frame để quyết định số bước lặp. log_likelihood trung bình sẽ giảm khi số bước huấn luyện tăng (xem HÌNH 17). Quá trình huấn luyện nên dừng khi log_likelihood/frame tiến tới điểm hội tụ.
Chúng ta cũng có thể dùng 1 ngưỡng ε để quyết định dừng quá trình huấn luyện. nếu (log_likelihoodbước trước – log_likelihood bước sau) < ε thì dùng quá trình huấn luyện. Nhưng ngưỡng ε cũng phải được quyết định thông qua quan sát sự giảm
log_likelihood sau từng bước huấn luyện để quyết định.
Likelihood/frame
Số bước huấn luyện
HÌNH 17 – Mối liên hệ giữa likelihood trung bình và số bước huấn luyện
Sau đây là kết quả thực nghiệm nhận dạng trên 4 phụ âm đầu chỉ huấn luyện trên monophone /b/, /đ/, /m/, /t/, và kết hợp với các vần /a/, /ang/, /e/, /i/, /u/ trên
cùng dữ liệu và cùng dữ liệu test Số bước lặp huấn luyện Kết quả nhận dạng trên chính dữ liệu huấn luyện Kết quả nhận dạng trên dữ liệu test 2 99.6 98.1 3 99.8 98.5 4 100.0 98.3 5 100.0 98.0
KHOA CNTT –
ĐH KHTN
Vấn đề thứ hai: quyết định ngưỡng prunning. Ngưỡng prunning làm giảm số
trạng thái được xét trong toán tử forward và toán tử backward. Trong trường hợp bình thường ngưỡng prunning là tương đối nhỏ (chỉ 1 số trường hợp đặc biệt thì ngưỡng này hơi lớn) nhưng trong 1 số trường hợp do lỗi của dữ liệu huấn luyện (thường là do gán nhãn sai hoặc dữ liệu Tiếng nói bị nhiễu quá nhiều) thì ngưỡng này sẽ phải lớn hơn. Trong chương trình của chúng tôi ngưỡng bình thường được sử
dụng là 150.0, trong trường hợp quá trình ước lượng tham số thất bại thì ngưỡng prunning sẽ tự động tăng lên 100.0. Quá trình tiếp diễn đến khi ước lượng tham số
thành công hoặc prunning vượt trên 600.0. Nếu prunning vượt trên ngưỡng này tức là đã có vấn đề trong câu huấn luyện này (thường là gán nhãn sai) và chúng ta nên xem lại nó. Lúc này ta có thể nhận ra là lỗi trong dữ liệu huấn luyện quá nặng và nên bỏ câu huấn luyện này ra khỏi dữ liệu huấn luyện.
Sau khi kết thúc giai đoạn huấn luyện chúng ta có thể dùng các mô hình
monophone vừa huấn luyện được để gán nhãn lại các file huấn luyện. Quá trình này
được gọi là realigning data. Chúng ta sẽ nhận dạng lại các file huấn luyện và tạo ra các file đánh nhãn mới. Đồng thời trong lúc này, nếu 1 âm tiết trong từ điển có nhiều cách phiên âm thì chương trình sẽ chọn cách phiên âm hợp lí nhất dựa trên các mô hình HMM vừa học được. Đồng thời thông qua bước này chúng ta có thể đánh giá mức độ đúng đắn của các file dữ liệu huấn luyện. Quá trình này được thực hiện bằng công cụ nhận dạng của HTK là HVite. Nếu file huấn luyện nào sai quá nhiều (thường là do gán nhãn sai) thì HVite sẽ không nhận dạng được. Chúng ta sẽ
loại bỏ các câu huấn luyện này ra khỏi quá trình huấn luyện ở các bước tiếp theo. Tuy nhiên, trong 1 số trường hợp chúng ta loại bỏ 1 số câu huấn luyện mà nó là 1 hiện tượng ngữ âm ít xuất hiện trong dữ liệu huấn luyện nên bị xem như là dữ
liệu sai (thường xảy ra là do gán nhãn không chính xác hoặc các âm tiết gần nhau quá không tách được). Vì vậy chúng không nên loại bỏ các dữ liệu này mà nên xem lại chúng. Nếu có nhiều câu sai theo kiểu này thì chúng ta phải xem xét lại sự đầy
KHOA CNTT –
ĐH KHTN
Kết quả của bước này là chúng ta sẽđược file gán nhãn mới align.mlf. Chúng ta sẽ thay thế file này cho file gán nhãn lúc đầu phone0.mlf mà chúng ta tạo ra trong các bước huấn luyện tiếp theo.