Các bước trong quá trình học tiếng Việt

Một phần của tài liệu nhận dạng tiếng nói việt nam từ vựng lớn (Trang 43 - 67)

L ỜI CẢM ƠN Error! Bookmark not defined.

2.3.2Các bước trong quá trình học tiếng Việt

Bước 1 Tạo ra thư mục VT nằm trong cùng một thư mục với SphinxTrain

Bước 2 Mở CMD đưa đường dẫn tới thư mục VT và thực hiện lệnh:

Bước 3 Tạo ra một cấu trúc cây có các tập tin và thư mục như sau VT wav etc VT.dic VT.filler VT.phone VT _train.fileids VT _train.transcription feat.params sphinx_train.cfg

Trong thư mục wav chứa tất cả các tập tin âm thanh mà chúng ta dùng để chạy

Tập tin feat.params và sphinx_train.cfg là của SphinxTrain có sẵn. Các tập tin VT.dic, VT.filler, VT.phone, VT _train.fileids, VT _train.transcription đã được

chuẩn bị trước.

Bước 4: Kiểm tra lại cấu hình

Mở file sphinx_train.cfg và lưu ý đến các thuộc tính $CFG_BASE_DIR, $CFG_SPHINXTRAIN_DIR nếu chúng ta đã di chuyển thư mục.

Ví dụ:

$CFG_BASE_DIR = "C:/VT";

$CFG_SPHINXTRAIN_DIR = "C:/VT";

Tìm thuộc tính $CFG_WAVFILE_EXTENSION và điền thông tin thích hợp

(raw hoặc wav).

Xét thuộc tính $CFG_WAVFILE_TYPE phù hợp.

Mặc định là: $CFG_WAVFILE_TYPE = 'raw';

Chọn loại mô hình huấn luyện:

$CFG_HMM_TYPE = '.cont.'; # Sphinx-3. Sphinx-4

#$CFG_HMM_TYPE = '.semi.'; # Sphinx-2, PocketSphinx

Bước 5: Tạo mô hình: Thực hiện lệnh sau:

Sau đó là lệnh:

Trong quá trình học SphinxTrain đã ghi lại tất cả các bước trong tập tin

CHƯƠNG 3: DEMO ĐỌC SỐ 3.1.Chương trình demo đọc số liên tục

Đây là demo về nhận dạng đọc số tiếng Việt Nam liên tục.

Để chạy demo đọc số: chạy file HelloNGram.java.

Chọn “Bắt Đầu” để bắt đầu đọc nhận dạng, “Đóng” để kết thúc demo.

Kết quả chạy demo đọc số liên tục như sau:

Hình 3.1: Màn hình ban đầu của demo đọc số

Hình 3.2:Màn hình sau khi nhận dạng một câu đọc số 3.2.Zip City

Đây là một demo minh họa về nhận dạng số. ZipCity sẽ nghe đọc mã bưu điện

Sau khi ZipCity chạy, bấm vào nút speak và đọc mã bưu điện Các chữ số được nhận dạng và hiển thị tỉnh, thành phố tương ứng. (adsbygoogle = window.adsbygoogle || []).push({});

CHƯƠNG 4: TẠO MODEL DÙNG CHO SPHINX-4 4.1 Tạo model dùng cho sphinx-4.

Model được tạo ra trong sphinx-4.

Bước 1: Tạo thư mục sphinx-4/models/VT

Bước 2: Trong thư mục VT tạo cấu trúc cây thư mục như sau:

cd_continuous_8gau/means cd_continuous_8gau/mixture_weights cd_continuous_8gau/variances cd_continuous_8gau/transition_matrices dict/ VT.dic dict/ VT.filler etc/VT_8gau_13dCep_16k_40mel_130Hz_6800Hz.4000.mdef etc/VT_8gau_13dCep_16k_40mel_130Hz_6800Hz.ci.mdef

Các file trong thư mục cd_continuous_8gau là các tập tin trong

VT/model_parameters/ VT.ci_cont / là kết quả của quá trình học.

Hai tập tin trong thư mục dict là hai tập tin VT.dic và VT.filler đã được chuẩn

bị khi học dữ liệu.

Thư mục etc sử dụng hai file trong VT/model_architecture/ là kết quả của quá

trình học.

Đổi tên các tập tin cho giống với cây thư mục ở trên.

Giải thích tên tập tin VT_8gau_13dCep_16k_40mel_130Hz_6800Hz.jar:

VT: là tên của bộ dữ liệu được sử dụng để huấn luyện mô hình. 8gau: số gaussians

16k: tỷ lệ mẫu của dữ liệu huấn luyện.

40mel: số lượng các bộ lọc mel

130Hz: tần số tối thiểu.

6800Hz: tần số tối đa.

Trong thư mục sphinx-4/models/VT tạo tập tin model.props với nội dung:

description = any description of your model file

modelClass = edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_130Hz_6800Hz.M odel modelLoader = edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_130Hz_6800Hz.M odelLoader isBinary = true featureType = 1s_c_d_dd vectorLength = 39 sparseForm = false numberFftPoints = 512 numberFilters = 40 gaussians = 8 minimumFrequency = 130 maximumFrequency = 6800 sampleRate = 16000 dataLocation = cd_continuous_8gau modelDefinition = etc/VT.ci.mdef

Trong thư mục sphinx-4/models/VT/etc tạo tập tin variables.def có nội

dung:

set exptname = VT set vector_length = 13

set dictionary = $base_dir/lists/VT.dic set fillerdict = $base_dir/lists/VT.filler set statesperhmm = 3

set skipstate = no

set gaussiansperstate = 8 set feature = 1s_c_d_dd set n_tied_states = 4000 set agc = none

set cmn = current set varnorm = no

Bước 3: Chỉnh sửa tập tin build.xml trong sphinx-4:

Chú ý thêm các tag tương ứng ở các vị trí thích hợp trong tập tin xml, có thể (adsbygoogle = window.adsbygoogle || []).push({});

sửa name và value của thẻ có sẵn nếu không muốn build cái có trước.

Thêm các thuộc tính:

<property name="test_name" value = "VT_8gau_13dCep_16k_40mel_130Hz_6800Hz"/>

<property name="VT_data_dir" value="models/acoustic/VT"/>

Tìm thẻ target có tên create_all_model_classes thêm vào: <antcall target="create_my_model_classes">

</antcall>

Tìm thẻ target có tên delete_all_model_classes thêm vào: <antcall target="delete_my_model_classes">

<param name="my_model_name" value="${VT_name}"/> </antcall>

Tìm thẻ target có tên create_all_models thêm vào: <antcall target="create_my_model">

<param name="my_model_data_dir" value="${VT_data_dir}"/> <param name="my_model_name" value="${VT_name}"/> </antcall>

Bước 4: Rebuild

Trong cmd tới đường dẫn sphinx-4 rồi thực hiện lệnh:

ant

Chú ý: Máy phải cấu hình biến môi trường cho ant trước đó.

Bước 5: Để sử dụng trong sphinx-4 Sửa file cấu hình:

<component name="VT"

type="edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_130Hz_680 0Hz.Model">

<property name="loader" value="sphinx3Loader"/> <property name="unitManager" value="unitManager"/> </component>

Type="edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_130Hz_68 00Hz.ModelLoader">

<property name="logMath" value="logMath"/>

<property name="unitManager" value="unitManager"/> </component> <component name="dictionary" type="edu.cmu.sphinx.linguist.dictionary.FullDictionary"> <property name="dictionaryPath" value="resource:/edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_1 30Hz_6800Hz.Model!/edu/cmu/sphinx/model/acoustic/VT_8gau_13dCep_16k_40 mel_130Hz_6800Hz/dict/VT.dic"/> ... </component> 4.2 Audio Tool.

Để phục vụ cho việc ghi âm dữ liệu nhóm chúng em đã xây dụng một bộ công

cụ hỗ trợ ghi âm và kiểm tra dữ liệu sau khi ghi âm là Audio Tool. Audio Tool

gồm hai phần là recorder.jar và player.jar

Recorder

Recorder.jar dùng để ghi âm dữ liệu thành tập tin âm thanh .raw có độ nén cao, dung lượng thấp.

Hình 4.1 Màn nhìn cấu hình ghi âm

Chạy file recorder.jar. Khi cửa sổ Audio Tool hiện lên chọn Edit -> Option, màn hình Config suất hiện. Vì tool hỗ trợ tự động save file nên cần phải đặt một số

thông số cấu hình sau: (adsbygoogle = window.adsbygoogle || []).push({});

Record Fotmat: là thông số cấu hình cho file âm thanh.

Output Dir: đường dẫn chỉ nơi sẽ lưu các file âm thanh. Train File: là đường dẫn tới file chứa các câu cần thu âm. Length Name: là độ dài tên file âm thanh.

Jum Line: dòng bắt đầu thu âm.

Init Name: là ký tự gắn trước tên file âm thanh (nếu cần).

Hình 4.2 Màn hình ghi âm

Sau khi cấu hình thì có thể bắt đầu ghi âm. Câu cần ghi âm được hiển thị trên màn hình. Bấm Record để ghi âm, Stop để kết thúc ghi âm. Sau khi bấm Stop thì

chương trình tự động cho nghe lại câu vừa ghi âm, hoặc bấm Play để nghe lại lần

nữa. Nếu muốn save và chuyển sang câu khác thì chỉ cần bấm Next.

Khi chúng ta muốn mở nghe một tập tin đã ghi âm thì chọn File -> Open. Nếu

muốn ghi âm lại câu đó chỉ việc bấm record ghi âm như thường, sau đó chọn File -

> Save để lưu đè lên tập tin đó.

Player

Player.jar hỗ trợ nghe nhiều file âm thanh liên tiếp, dùng để kiểm tra lại dữ

liệu sau khi ghi âm. Giúp chúng ta phát hiện những file không đạt chất lượng,

Hình 4.3 Màn hình của player khi mới khởi động

File -> Open để chọn danh sách các file .raw cần nghe.

Hình 4.4 Màn hình kiểm tra dữ liệu

Khi nghe thì câu text và dạng sóng được hiển thị song song trên màn hình.

Điều này giúp chúng ta kiểm soát được dữ liệu thu âm một cách chính xác. Những

CHƯƠNG 5: KẾT QUẢ ĐẠT ĐƯỢC

Sau một quá trình học và thực hiện đề tài với sự giúp đỡ tận tình của thầy giáo

hướng dẫn là thầy Lê Quân Hà, nhóm em đã đạt được kết quả như sau:

- Đã huấn luyện được mô hình cú âm cho tiếng Việt.

- Đã hoàn thành demo nhận dạng số liên tục và demo Zip Code cho 4 người

huấn luyện nước Việt Nam của tiếng Việt Nam.

- Độ chính xác nhận dạng đọc số như sau: Nhận dạng đúng Nhận dạngsai Tổng số % tỉ lệ đúng % tỉ lệ lỗi 4644 356 5000 92.88% 7.12%

Một phần của tài liệu nhận dạng tiếng nói việt nam từ vựng lớn (Trang 43 - 67)