Dữ liệu huấn luyệ n

Một phần của tài liệu Luận văn: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 ppt (Trang 68)

Dữ liệu huấn luyện phải đầy đủ. Nếu dữ liệu không đầy đủ thì kết quả học sẽ

không tốt đều. Ví dụ: huấn luyện dữ liệu cho âm vị /t/. Nếu chúng ta có nhiều dữ

liệu cho âm vị /t/ ởđầu và có rất ít dữ liệu có âm vị /t/ khi xuất hiện ở cuối từ thì khi huấn luyện xong, chương trình sẽ không nhận dạng tốt các âm vị /t/ ở cuối từ.

Dữ liệu phải chính xác. Trường hợp không chính xác thường do đọc sai hoặc

đánh nhãn theo thứ tự các âm tiết trong câu bị sai. Chúng ta có thể loại bỏ dữ liệu xấu bằng cách: sau khi huấn luyện được 1 số bước, cho nhận dạng lại ngay trên các

KHOA CNTT –

ĐH KHTN

mẫu đã huấn luyện. Nếu kết quả nhận dạng trên mẫu nào không tốt thì loại bỏ mẫu

KHOA CNTT –

ĐH KHTN

CHƯƠNG 5 Thực hiện chương trình

5.1. Các khó khăn trong quá trình nhận dạng 5.1.1. Âm vịđộc lập và âm vị phụ thuộc ngữ cảnh

Trong âm tiết phần vần thường dài, trong đó phần nguyên âm là trọng âm sẽ

chiếm phần lớn độ dài của âm tiết còn phụ âm đầu và cuối thường rất ngắn nên rất khó để nhận dạng.

Thêm vào đó ảnh hưởng của các nguyên âm lên các phụ âm này thường rất lớn. Do đó, chúng dễ sinh ra những biến điệu. Các nguyên âm (thường là trọng âm) tuy dài nhưng sự ảnh hưởng của các yếu tố khác lên nguyên âm còn lớn hơn nữa nên những biến điệu trên nguyên âm còn lớn hơn. Những biến điệu này đôi khi làm các thể hiện của cùng 1 âm vị trở nên rất xa nhau. Ví dụ âm vị /b/ trong “ba” khác với âm vị /b/ trong “bi” rất nhiều và đặc biệt sự khác nhau này càng lớn đối với trường hợp âm vịđầu và âm vị cuối. Do sự khác nhau đó, chúng ta không thể không thể xây dựng 1 mô hình HMM độc lập ngữ cảnh cho tất cả các âm vị triphone của cùng 1 âm vị monophone. Chẳng hạn đối với nhận dạng âm vị /b/ chúng ta có thể có các âm vị triphone sau đây /b+a/4, /b+e/, /b+i/, /b+u/. Qua thực nghiệm, chúng tôi thấy rằng nếu xem âm vị /b/ trong các từ này đều là 1 âm vị (/b/) thì nó sẽ gây nhầm lẫn với các âm vị rất giống nó, chẳng hạn /đ/.

Như đã nói ở trên trong 1 số trường hợp, sự ảnh hưởng của các âm vị lẫn nhau gây ra những biến điệu rất lớn. Đặc biệt là khi phân bố các âm vị phụ thuộc ngữ cảnh (triphone) của cùng 1 âm vị độc lập ngữ cảnh (monophone) không phải là

4 /a0-a1+a2/ là ký hiệu của âm vị triphone a1. Nó cho biết rằng trong ngữ cảnh, âm vịđứng trước a1 là a0 và âm vịđứng sau a1 là a2. /b+a/ là ký hiệu của âm vị triphone /b/ xuất hiện trong những từ bắt đầu bằng “ba” (âm vịđứng sau /b//a/)

KHOA CNTT –

ĐH KHTN

1 tập lồi (không nằm trong 1 siêu cầu) thì sự nhầm lẫn với các âm vị khác rất lớn (như hình dưới). Phân bố âm vị /p/ không nằm trên 1 siêu cầu Âm vị khác Kết quả huấn luyện âm vị /p/

HÌNH 15 – Các âm vị không nằm trong 1 siêu cầu

Chúng tôi đã thử nghiệm trên 2 chương trình nhận dạng nhận dang từ đơn. Cả hai chương trình đều nhận dạng trên các phụ âm đầu /b/, /d9/5, /kh/, /s/, /t/ và

các vần /a/, /ang/, /u/, /e/, /i/:

ƒ Chỉ huấn luyện mô hình monophone và nhận dạng trên mô hình HMM monophone. Kết quả nhận dạng: sự nhầm lẫn giữa phụ âm /b/ và /đ/, vần

/a/ và vần /ang/ tương đối nhiều

ƒ Huấn luyện trên mô hình âm vị phụ thuộc ngữ cảnh (triphone), và gom nhóm các âm vị triphone giống nhau. Quá trình nhận dạng được thực hiện trên các HMM triphone đã gom nhóm. Sự nhầm lẫn trên hầu như không còn.

KHOA CNTT –

ĐH KHTN

5.1.2. Tách âm tiết trong tiếng nói liên tục và sự phụ thuộc giữa các âm vị lẫn nhau trong tiếng nói liên tục vị lẫn nhau trong tiếng nói liên tục

Khi con người nói chuyện ở tốc độ bình thường thì ranh giới giữa các âm tiết (adsbygoogle = window.adsbygoogle || []).push({});

đôi khi khó phân biệt. Vì vậy, khó đưa việc tách âm hết vào quá trình tiền xử lí. Chúng tôi thực hiện tách âm tiết theo hướng vừa nhận dạng vừa tách.

Một đặc điểm nữa là khi nói chuyện ở tốc độ liên tục, các âm tiết kề nhau sẽ ảnh hưởng tới nhau rất nhiều, gây ra các biến thiên trong âm tiết, đặc biệt là đối với các âm tiết mở có âm vị cuối là nguyên âm đơn (ví dụ “ba”, “bi”, “bo”, “na”, “nu”, …) Ví dụ đối với âm tiết “ba”, nếu trong chuỗi tiếng nói liên tục có hai âm tiết gần nhau là “ba” và “na”, thì nếu chúng ta tách riêng hai âm tiết ra, chúng ta sẽ

nghe âm tiết “ba” giống với âm tiết “ban” hơn là “ba”. Điều này là do ảnh hưởng của âm mũi /n/ của âm tiết “na” lên âm vị /a/ của âm tiết “ba”. Và nếu chúng ta huấn luyên không khéo thì chương trình sẽ nhận ra là âm tiết “ban” chứ không phải là “ba”. Nhưng nếu trong dữ liệu huấn luyện của chúng ta có đầy đủ dữ liệu có dạng trên (sau âm tiết “ba” là “na” hoặc một âm tiết khác có phụ âm /n/ đứng đầu) thì vấn đề trên sẽ không xảy ra. Vì vậy chúng ta không thể đưa chương trình huấn luyện trên tiếng nói rời rạc vào vào nhận dạng tiếng nói liên tục. Trong thực tế thì không phải lúc nào chúng ta chúng ta cũng có đầy đủ dữ liệu như thế.

5.1.3. Các nguyên âm đôi

Trong ngữ âm học Tiếng Việt có 3 nguyên âm đôi được viết là /iê/, /uô/ và /ươ/. Trong các âm tiết mở các nguyên âm đôi này được ghi là /ia/, /ua/ và /ưa/. Trong ngữ âm Tiếng Việt người ta xem các nguyên âm đôi này là 1 âm vị, nhưng trong nhận dạng trong 1 số trường hợp nếu chúng ta xem chúng như 1 âm vị thì kết quả nhận dạng sẽ rất kém.

Chúng ta có thể quan sát trên chuỗi sóng âm các âm tiết chứa các nguyên âm

đôi trên và đi đến quyết định xem các nguyên âm đơn trên là 1 âm vị hay hai âm vị. Trong phần này chúng tôi không có thời gian để tìm hiểu hết các đặc trưng của tất

KHOA CNTT –

ĐH KHTN

cả các nguyên âm đôi nên ở đây chúng tôi chỉ nêu lên 1 ví dụ là không nên xem tất cả các nguyên âm đôi như là 1 âm vị.

Ví dụđối với trường hợp âm vị /ia/ trong các âm tiết mở. Nếu chúng ta xem

/ia/ như là 1 âm vị đôi thì kết quả nhận dạng sẽ kém hơn chúng ta xem nó bao gồm 2 âm vị.

5.1.4. Ảnh hưởng của thanh điệu lên âm vị

Thanh điệu làm biến đổi các âm vị đi đôi chút, đặc biệt là ảnh hưởng của nó tới trọng âm trong phần vần. Qua thực nghiệm chúng tôi thấy được rằng đặc biệt trong trường hợp thanh sắc, nó làm âm tiết và âm vị bị biến đổi đi rất nhiều dẫn đến rất khó nhận dạng.

Ví dụ âm tiết “ba” với thanh sắc (“bá”) trên sóng âm bao gồm 3 âm vị sau:

/b/ /a/ /a/ nên nếu lúc huấn luyện, nếu chỉ cho huấn luyện trên các âm tiết “ba” (có thanh ngang) thì lúc nhận dạng âm tiết “bá” có thể cho ra 2 âm tiết /ba/ và /a/.

Thực tế, nếu chỉ cho huấn luyện các âm tiết trên thanh ngang và cho nhận dạng âm tiết trên tất cả các thanh thì kết quả nhận dạng sẽ không tốt bằng huấn luyện âm tiết trên nhiều thanh điệu.

5.2. Quá trình thực hiện chương trình

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 (adsbygoogle = window.adsbygoogle || []).push({});

ƒ 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 liu

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 liu

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 liu

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 liu

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ữ (adsbygoogle = window.adsbygoogle || []).push({});

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

5.2.4. Huấn luyện mô hình HMM

5.2.4.1.Hun luyn mô hình HMM cho âm v độc lp ng cnh

(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

Một phần của tài liệu Luận văn: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 ppt (Trang 68)