Mục đích của chúng tôi là cho thấy khi huấn luyện mô hình HMM trên dữ
liệu không gán nhãn vào nhận dạng âm vị Tiếng Việt, chúng ta có thể nhận dạng
được trên số lượng lớn các âm tiết và đồng thời có thể nhận dạng được trên tiếng nói liên tục. Vì vậy chúng tôi xây dựng 2 chương trình:
1. Chương trình nhận dạng tiếng nói liên tục nhận dạng các chưỗi số hình thành từ 10 chữ số.
2. Chương trình thứ hai nhận dạng từđơn trên 104 âm tiết bao gồm các phụ âm đầu được kí hiệu trong chữ viết Tiếng Việt là /d/, /đ/, và /k/, /kh/, /m/,
KHOA CNTT –
ĐH KHTN
5.2.1. Các bước chính
Các bước chính mà chúng tôi xây dựng chương trình bao gồm: 1. Chuẩn bị dữ liệu huấn luyện
Thu dữ liệu. Gán nhãn dữ liệu. Đánh giá về dữ liệu. Rút trích đặc trưng.
2. Xây dựng mô hình ngôn ngữ. 3. Huấn luyện
Khởi tạo tham số cho HMM
Huấn luyện trên mô hình mohophone Huấn luyện mô hình tied-state triphone . 4. Xây dựng chương trình nhận dạng.
5.2.2. Thu dữ liệu và gán nhãn dữ liệu
5.2.2.1.Thu dữ liệu
Do không có dữ liệu huấn luyện nên chúng tôi phải tự thu lấy dữ liệu huấn luyện. Để thuận tiện cho quá trình gán nhãn, chúng tôi đã sử dụng mô hình ngôn ngữ và công cụ của HTK để phát sinh các câu ngẫu nhiên (bằng văn bản). Sau đó, thu mẫu theo các câu đã phát sinh.
Đối với nhận dạng từ đơn chúng tôi thu mỗi âm tiết từ 20 đến 40 mẫu. Đối với nhận dạng tiếng nói liên tục, trung bình mỗi âm tiết thu 60 mẫu.
Đối với dữ liệu tiếng nói liên tục chúng tôi chia làm hai phần. Phần thứ nhất: tiến hành thủ công, tách các câu ra thành các từđơn. Phần thứ hai: giữ nguyên các câu với tiếng nói liên tục.
KHOA CNTT –
ĐH KHTN
Chúng ta có thể nhận thấy nếu dữ liệu tách ra càng nhiều thì kết quả nhận dạng càng chính xác. Tuy nhiên, nếu chúng ta phải nhận dạng tiếng nói liên tục trên số lượng âm tiết lớn thì lượng dữ liệu huấn luyện sẽ rất lớn. Vì vậy, công sức bỏ ra
để tách dữ liệu cũng không nhỏ. Vì vậy 1 yêu cầu nữa là giảm số lượng dữ liệu phải tách xuống mà kết quả nhận dạng không bị ảnh hưởng nhiều. Đây là 1 bài toán lớn của huấn luyện tiếng nói.
Trong chương trình, dữ liệu của chúng tôi được chia như sau: 40% là dữ liệu
đã tách âm tiết và 60% là dữ liệu tiếng nói liên tục (chưa tách âm tiết).
5.2.2.2.Gán nhãn dữ liệu
Chúng ta chỉ cần tạo các file mô tả thứ tự các âm tiết trong câu và dùng từ điển âm vị để chuyển chuỗi âm tiết thành chuỗi âm vị. Trong lúc gán nhãn, chúng ta nên thêm âm vị silence vào giữa 2 âm tiết. Điều này làm tăng hiệu quả của quá trình nhận dạng lên nhiều, vì thực tế là giữa 2 âm tiết thường có khoảng silence. Nhưng nếu không có âm vị sillence giữa 2 âm tiết thì cũng không ảnh hưởng tới quá trình huấn luyện.
5.2.2.3.Đánh giá dữ liệu
Sau khi thu và gán nhãn dữ liệu, chúng ta cũng nên đánh giá mức độ đầy đủ
và cân đối của dữ liệu. Chúng ta sẽ thống kê xem trong dữ liệu huấn luyện có bao nhiêu tỉ lệ % số lần xuất hiện của các âm tiết, các âm vị. Nếu âm tiết hoặc âm vị nào có tần số xuất hiện quá ít, chúng ta có thể nhân dữ liệu huấn luyện có chứa âm tiết hoặc âm vị đó lên.
5.2.2.4.Rút trích đặc trưng dữ liệu
Dữ liệu sóng âm được thu dưới tần số lấy mẫu 16000 mẫu /giây, kích thước mỗi mẫu là 16 bit.
Kích thước mỗi cửa sổ là 25 ms. Độ chồng lấp của các cửa sổ là 15 ms. Sử
KHOA CNTT –
ĐH KHTN
tốc biến thiên (accelerator) ∆∆ (13 đặc trưng). Như vậy mỗi vector đặc trưng sẽ có 39 thành phần.
5.2.3. Khởi tạo mô hình HMM
Mô hình HMM được dùng có 5 trạng thái, trong mỗi trạng thái vector µ và ∑
sẽ có định dạng là MFCC_0_D_A.
Như đã giới thiệu trong giải thuật Embedded Training, khời tạo HMM cho các mô hình là rất quan trọng, nó ảnh hưởng đến tốc độ hội tụ của thuật toán, và sự
chính xác của thuật toán.
Ởđây chúng tôi đã thực hiện 2 phương pháp khởi tạo tham số cho HMM:
Phương pháp thứ nhất: Khởi tạo Flat-start. Đây là phương pháp khởi tạo trên dữ liệu không gán nhãn của HTK. Ý tưởng của cách khởi tạo này là dựa vào các dữ
liệu huấn luyện được đưa vào, chúng ta sẽ khởi tạo các HMM sao cho chúng có vector trung bình và hiệp phương sai bằng nhau và bằng với vector trung bình toàn cục và vector hiệp phương sai toàn cục của dữ liệu huấn luyện.
Trong HTK, công cụ dùng để khởi tạo mô hình HMM là HCompV. HCompV sẽ load 1 số file huấn luyện tự động tách trên dữ liệu huấn luyện và xác
định các vector thuộc về các trạng thái của HMM. Và chúng sẽ tính vector trung bình và vector hiệp phương sai toàn cục dựa trên các dữ liệu đó.
Tuy nhiên cách khởi tạo này gần giống như khởi tạo ngẫu nhiên, các trạng thái là các trạng thái toàn cục của dữ liệu huấn luyện vì vậy nó vẫn chưa có ảnh hưởng nhiều tới quá trình huấn luyện.
Phương pháp thứ 2: Sử dụng 1 số dữ liệu nhỏ huấn luyện ra các mô hình monophone cho các âm vị. Sau đó sử dụng các mô hình này làm mô hình khởi tạo
để huấn luyện trên khối lượng lớn dữ liệu còn lại. Trong 2 phần dữ liệu đã thu nói trên chúng tôi sử dụng 1 số ít dữ liệu đã được tách ở phần 1 để huấn luyện tạo ra các mô hình HMM khởi tạo. Cụ thể mỗi âm tiết có 10 mẫu huấn luyện.
KHOA CNTT –
ĐH KHTN