- Mở đầu
3.3.3 Tạo Model
Để tạo mô hình cho hệ thống chương trình dùng cho nền tảng Sphinx-4, ta thực hiện các bước sau:
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
Chép các tập tin sau vào thư mục vừa tạo.
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 tập tin trong thư mục cd_continuous_8gau là các tập tin trong là kết quả của quá trình huấn luyện.
Hai tập tin trong thư mục dict là hai tập tin VT.dic và VT.filler đã được chuẩn bị khi chuẩn bị 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 huấn luyện.
Đổi tên các tập tin cho giống với cây thư mục ở trên.
Trong thư mục sphinx-4/models/VT tạo tập tin model.props với nội dung:
modelClass = edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_130Hz_6 800Hz.Model modelLoader = edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_130Hz_6 800Hz.ModelLoader 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/TEST_8gau_13dCep_16k_40mel_130Hz_6800Hz.ci.mdef
Trong thư mục sphinx-4/models/VT/etc tạo tập tin variables.def có nội dung:
set exptname = test set vector_length = 13
set dictionary = $base_dir/lists/test.dic set fillerdict = $base_dir/lists/test.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ể 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">
<param name="my_model_name" value="${VT_name}"/> </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>
<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
chuyển sang chế độ dòng lệnh Cmd và chuyển đến thư mục sphinx-4 rồi thực hiện lệnh:
ant
Chú ý: Máy phải được cấu hình biến môi trường cho ant trước đó.
Bước 5: Trước khi tạo mô hình 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_13 0Hz_6800Hz.Model">
<property name="loader" value="sphinx3Loader"/> <property name="unitManager" value="unitManager"/> </component>
<component name="sphinx3Loader"
Type="edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_16k_40mel_1 30Hz_6800Hz.ModelLoader">
<property name="logMath" value="logMath"/>
<property name="unitManager" value="unitManager"/> </component>
type="edu.cmu.sphinx.linguist.dictionary.FullDictionary"> <property name="dictionaryPath" value="resource:/edu.cmu.sphinx.model.acoustic.VT_8gau_13dCep_1 6k_40mel_130Hz_6800Hz.Model!/edu/cmu/sphinx/model/acoustic/VT _8gau_13dCep_16k_40mel_130Hz_6800Hz/dict/VT.dic"/> ... </component>