Giai đoạn huấn luyện

Một phần của tài liệu Nghiên cứu về nhận dạng giọng nói tiếng việt và ứng dụng trong điều khiển (Trang 80)

i. Chuẩn bị file "mktrled" để tạo triphoned

4.6.4.Giai đoạn huấn luyện

1. Tạo Flat Start Monophones

Tại bước này, chúng ta sẽ định nghĩa ra một prototype cho HMM. Việc gán thông tin nào cho prototype là không quan trọng, chủ yếu là xây dựng một cái khung. Một mô hình tốt mà HTK Book đề xuất là mô hình 3 trạng thái trái – giữa – phải tuần tự.

HCompV -A -D -T 1 -C cfg\HCompV.cfg -f 0.01 -m -S train\train.scp -M hmm0 proto

Đầu vào:

 HCompV.cfg: tập tin cấu hình để HCompV sử dụng(xem nội dung trong file) .

 -f 0.01: yêu cầu xuất file vFloor chứa vector floor có giá trị bằng 0.01 vector variance.

 -S train.scp: chứa danh sách các tập tin đặc trưng mfc.

 -M hmm0: thư mục mà HCompV sẽ dùng để chứa proto (phải được tạo trước).

 proto.txt: tập tin chứa cấu trúc proto như phần trên đã trình bày (nhớ là lưu trong thư mục hmm0).

Sau khi chạy HCompV, hai tập tin proto và vFloors được tạo ra trong thư mục hmm0.

2. Tạo macros tự động

perl pl\mkMacrosFile.pl hmm0\vFloors hmm0\macros

Đầu vào:

 hmm0/vFloors: file vFloors được tạo từ lệnh HCompV ở trên. Đầu ra:

 hmm0/macros: file macros cần tạo. 3. Tạo hmmdefs tự động

perl pl\mkHmmdefsFile.pl hmm0\proto ph\monophones0.txt hmm0\hmmdefs

Đầu vào:

 hmm0/proto: tập tin proto có được từ bước trước.  monophones0: tập tin monophones0 có từ bước trước. Đầu ra:

 hmm0/hmmdefs: tên tập tin hmm sẽ được lưu lại. 4. Ước lượng các tham số trong hmmdefs.

HERest -A -D -T 1 -C cfg\HERest.cfg -I mlf\phones0.mlf -t 250.0 150.0 1000.0 -S train\train.scp -H hmm0\macros -H hmm0\hmmdefs -M hmm1 ph\monophones0.txt

Đầu vào:

 C HERest.cfg: tập tin cấu hình

 I mlf/phones0.mlf: tập tin MLF được tạo từ trước.  t 250.0 150.0 1000.0: tham số prunning.

 S txt/train.scp: danh sách các file .mfc.  H hmm0/macros: vừa tạo.

 H hmm0/hmmdefs: vừa tạo.

 ph/monophones0: danh sách các phones (ngoại trừ sp). Đầu ra:

 M hmm1: chứa tập tin hmmdefs và macros mới.

Sau khi đã có hmm1, ta huấn luyện tiếp hmm2 và hmm3 bằng HERest. Lưu ý là khi huấn luyện hmm ở bước sau thì dựa vào hmm của bước trước

HERest -A -D -T 1 -C cfg\HERest.cfg -I mlf\phones0.mlf -t 250.0 150.0 1000.0 -S train\train.scp -H hmm1\macros -H hmm1\hmmdefs -M hmm2 ph\monophones0.txt

HERest -A -D -T 1 -C cfg\HERest.cfg -I mlf\phones0.mlf -t 250.0 150.0 1000.0 -S train\train.scp -H hmm2\macros -H hmm2\hmmdefs -M hmm3 ph\monophones0.txt

5. Xây dựng mô hình sp tu file "sil.hed" và hiệu chỉnh mô hình sp -Copy các file trong thư mục hmm3 vào thư mục hmm4 (adsbygoogle = window.adsbygoogle || []).push({});

-Mở file hmmdefs trong thư mục hmm4 và chỉnh sửa như sau:

-Copy mô hình “sil” rồi past xuống cuối file sửa lại thành mô hình “sp” -Trong mô hình “sp” xóa 2 state 2 và 4 đi

-Thay đổi <NUMSTATES> thành 3 -Thay đổi <STATE> thành 2

-Thay đổi <TRANSP> thành 3

-Thay đổi ma trận trong <TRANSP> thành

0.0 1.0 0.0 0.0 0.9 0.1 0.0 0.9 0.1 0.0 0.0 0.0

Tạo ra mô hình hmm mới đã được chỉnh sửa bằng lệnh:

HHEd -A -D -T 1 -H hmm4/macros -H hmm4/hmmdefs -M hmm5 ins/sil.hed ph/monophones1.txt

Đầu vào:

 hmm4/macros :file macro được tạo ra từ các bước trước  hmm4/hmmdefs: file hmmdefs sau khi đã thêm mô hình sp  ins/sil.hed :file chứa thông số hiệu chỉnh hmm mới

 ph/monophones1.txt : danh sách các phones (ngoại trừ sp). Đầu ra:

 hmm5: thư mục chưa hmmdefs và macro mới 6. Trainning mô hình mới hiệu chỉnh sp ở bước trên .

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/phones1.mlf -t 250.0 150.0 3000.0 -S train/train.scp -H hmm5/macros -H hmm5/hmmdefs -M hmm6 ph/monophones1.txt

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/phones1.mlf -t 250.0 150.0 3000.0 -S train/train.scp -H hmm6/macros -H hmm6/hmmdefs -M hmm7 ph/monophones1.txt

7. Canh chỉnh lại dữ liệu huấn luyện

Trong từ điển phát âm có một số từ có nhiều kiểu phát âm khác nhau. Ở bước trước, HLEd chọn tùy ý một trong các kiểu phát âm. Ở bước này, chúng ta sẽ canh chỉnh lại tập tin transcription words.mlf. Nó sẽ chọn cách phiên âm nào khớp nhất so với dữ liệu ngữ âm.

Chú ý: Ta có thể bỏ qua bước này nếu từ điển của chúng ta nhỏ và tạo một file mlf/aligned.mlf copy nội dung từ file worlds.mlf để thực hiện cho các bước tiếp theo. Nhưng sẽ không cho hiệu quả nhận diện cao.

HVite -A -D -T 1 -l * -o SWT -b sent-end -C cfg/HERest.cfg -H hmm7/macros -H hmm7/hmmdefs -i mlf/aligned.mlf -m -t 250.0 150.0 1000.0 -y lab -a -I mlf/words.mlf -S train/train.scp txt/mydict.txt ph/monophones1.txt > Hvite_log

8. Training 2 bước nữa

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/aligned.mlf -t 250.0 150.0 3000.0 -S train/train.scp -H hmm7/macros -H hmm7/hmmdefs -M hmm8 ph/monophones1.txt

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/aligned.mlf -t 250.0 150.0 3000.0 -S train/train.scp -H hmm8/macros -H hmm8/hmmdefs -M hmm9 ph/monophones1.txt

9. Tạo triphones,wintri.mlf từ aligned.mlf

HLEd -A -D -T 1 -n ph/triphones1 -l * -i mlf/wintri.mlf ins/mktri.led mlf/aligned.mlf

Đầu vào:

 ins/mktri.led: chứa lệnh tạo triphones từ monophones

 mlf/aligned.mlf: monophones transcription đã được ước lượng lại. Đầu ra:

 -n ph/triphones1: danh sách các triphones.  -i mlf/wintri.mlf: triphones transcription. 10.Tạo "mktri.hed"

perl pl/mkTriHed.pl ph/monophones1.txt ph/triphones1 ins/mktri.hed

HHEd -A -D -T 1 -H hmm9/macros -H hmm9/hmmdefs -M hmm10 ins/mktri.hed ph/monophones1.txt

Đầu vào: (adsbygoogle = window.adsbygoogle || []).push({});

 H hmm9/macros -H hmm9/hmmdefs: hmm của monophones.

 Ins/mktri.hed: tập tin chứa lệnh thực hiện “trói buộc” các ma trận chuyển của mỗi triphone trong tập tin triphones1.

 B: lưu trữ hmmdefs ở dạng nhị phân thay vì text (giảm không gian chiếm dụng).

Đầu ra:

 M hmm10: hmm10 được huấn luyện thành triphones. 12.Training 2 vong

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/wintri.mlf -t 250.0 150.0 3000.0 -S train/train.scp -H hmm10/macros -H hmm10/hmmdefs -M hmm11 ph/triphones1

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/wintri.mlf -t 250.0 150.0 3000.0 -s stats -S train/train.scp -H hmm11/macros -H hmm11/hmmdefs -M hmm12 ph/triphones1

13.Tao full list + full hmm

HDMan -A -D -T 1 -b sp -n fulllist -g global.ded -l flog dict-tri dict.txt

Sau đó tạo mới 1 file “fulllist1” rồi copy hết nội dung của file fulllist và file triphones1 vào sau đó chạy lệnh sau để xóa hết các dòng trung nhau trong file fulllist1

$perl fixfulllist.pl fulllist1 fulllist

Tiếp tục tạo file tree.hed

perl pl/mkTree.pl TB 350 ph/monophones0.txt ins/tree.hed

14.Tao mo hinh HMM moi

HHEd -A -D -T 1 -H hmm12/macros -H hmm12/hmmdefs -M hmm13 ins/tree.hed ph/triphones1

Đầu vào :

 H hmm12/macros -H hmm12/hmmdefs: hmm đã tạo ở bước trước

 tree.hed: là tập hợp các chỉ thị tìm kiếm các ngữ cảnh phù hợp cho việc gom nhóm.

Đầu ra:

 M hmm13: Thư mục chứa mô hình hmm mới 15.Training 2 vong

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/wintri.mlf -s stats -t 250.0 150.0 3000.0 -S train/train.scp -H hmm13/macros -H hmm13/hmmdefs -M hmm14 tiedlist

HERest -A -D -T 1 -C cfg/HERest.cfg -I mlf/wintri.mlf -s stats -t 250.0 150.0 3000.0 -S train/train.scp -H hmm14/macros -H hmm14/hmmdefs -M hmm15 tiedlist

Một phần của tài liệu Nghiên cứu về nhận dạng giọng nói tiếng việt và ứng dụng trong điều khiển (Trang 80)