Recently, I have used Sphinx4 and Sphinxtrain to do Speech Recogniton test.
I need help so much,because this system puzzled me too long time.I tried to solve it by myself.BUT so for, I still do not know where the error is.
please read it with patience ,because it seems long :-)
1.At the beginning,I trained an CI model by SphinxTrain.I just followed the scriptman1.htm which describes the procedures for training acoustic models using the Sphinx3 trainer.My model just had two phones:IH [b(i)t] and UH [b(oo)k].They were both record in windows . Each of them were just record about 100 times.
Before train, the data files should be prepared.So as follows:
1)the audio files to feature files :use the command wave2feat in SphinxTrain, set -mswav yes.So I have got the feature files.
(The files belowed are generated manually)
control file:
IH1
IH2
....
IH7
UH1
...
UH7
dictionary:
IH IH
UH UH
transcript:
<s> IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH </s> (IH0)
<s> IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH </s> (IH1)
............
<s> IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH </s> (IH7)
<s> UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH </s> (UH1)
<s> UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH </s> (UH2)
............
<s> UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH </s> (UH7)
fillerdict:
<s> SIL
</s> SIL
<sil> SIL
phonelist:
SIL - - -
IH - - -
UH - - -
Then, I just used those files to do training. I put the commands into one perl files.
The perl files is:
!/usr/bin/perl
$comman="./mk_model_def -moddeffn /train/model/test_8gau_13dCep_16k_40mel_130Hz_6800Hz.mdef -phonelstfn /train/phonelist/phone.list -n_state_pm 5";
system $comman;
2 Training worked .After that ,I got the model and 4 files.Then ,I followed" Using SphinxTrain Models in Sphinx-4",So,The system worked.
BUT,The recognition ratio is so poor!!How to solve that!
Is my Training procedure right? The Procedure is enough for CI model?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Recently, I have used Sphinx4 and Sphinxtrain to do Speech Recogniton test.
I need help so much,because this system puzzled me too long time.I tried to solve it by myself.BUT so for, I still do not know where the error is.
please read it with patience ,because it seems long :-)
1.At the beginning,I trained an CI model by SphinxTrain.I just followed the scriptman1.htm which describes the procedures for training acoustic models using the Sphinx3 trainer.My model just had two phones:IH [b(i)t] and UH [b(oo)k].They were both record in windows . Each of them were just record about 100 times.
Before train, the data files should be prepared.So as follows:
(The files belowed are generated manually)
control file:
IH1
IH2
....
IH7
UH1
...
UH7
dictionary:
IH IH
UH UH
transcript:
<s> IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH </s> (IH0)
<s> IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH </s> (IH1)
............
<s> IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH IH </s> (IH7)
<s> UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH </s> (UH1)
<s> UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH </s> (UH2)
............
<s> UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH UH </s> (UH7)
fillerdict:
<s> SIL
</s> SIL
<sil> SIL
phonelist:
SIL - - -
IH - - -
UH - - -
Then, I just used those files to do training. I put the commands into one perl files.
The perl files is:
!/usr/bin/perl
$comman="./mk_model_def -moddeffn /train/model/test_8gau_13dCep_16k_40mel_130Hz_6800Hz.mdef -phonelstfn /train/phonelist/phone.list -n_state_pm 5";
system $comman;
$comman="./mk_flat -moddeffn /train/model/test_8gau_13dCep_16k_40mel_130Hz_6800Hz.mdef -topo /train/topofile/topofile -mixwfn /train/mixwfn/m_w -tmatfn /train/tmatfn/t_m -nstream 1 -ndensity 1 ";
system $comman;
$comman="./init_gau -accumdir /train/init_gau_accumdir -ctlfn /train/ctl/ctl.ctl -part 1 -npart 1 -cepdir /train/feature -cepext mfcc -feat 1s_c_d_dd -ceplen 13";
system $comman;
$comman="./norm -accumdir /train/init_gau_accumdir -meanfn /train/meanfn/mean -feat 1s_c_d_dd -ceplen 13";
system $comman;
$comman="./init_gau -accumdir /train/init_gau_accumdir -ctlfn /train/ctl/ctl.ctl -part 1 -npart 1 -cepdir /train/feature -cepext mfcc -feat 1s_c_d_dd -ceplen 13 -meanfn /train/meanfn/mean";
system $comman;
$comman="./norm -accumdir /train/init_gau_accumdir -varfn /train/varfn/var -feat 1s_c_d_dd -ceplen 13";
system $comman;
$comman="./cp_parm -cpopsfn /train/cpopsfn/cpopsfile -igaufn /train/meanfn/mean -ncbout 20 -ogaufn /train/ogaufile/ogau_mean -feat 1s_c_d_dd";
system $comman;
$comman="./cp_parm -cpopsfn /train/cpopsfn/cpopsfile -igaufn /train/varfn/var -ncbout 20 -ogaufn /train/ogaufile/ogau_var -feat 1s_c_d_dd";
system $comman;
$comman="./bw -moddeffn /train/model/test_8gau_13dCep_16k_40mel_130Hz_6800Hz.mdef -ts2cbfn .cont. -mixwfn /train/mixwfn/m_w -tmatfn /train/tmatfn/t_m -meanfn /train/ogaufile/ogau_mean -varfn /train/ogaufile/ogau_var -dictfn /train/dict/dictionary -fdictfn /train/filler/fillerdict -ctlfn /train/ctl/ctl.ctl -part 1 -npart 1 -cepdir /train/feature -cepext mfcc -lsnfn /train/lsnfn/digits.transcript -accumdir /train/bw_accumdir -varfloor 0.0001 -topn 1 -feat 1s_c_d_dd ";
system $comman;
$comman="./norm -accumdir /train/bw_accumdir -feat 1s_c_d_dd -mixwfn /train/result/mixture_weights -tmatfn /train/result/transition_matrices -meanfn /train/result/means -varfn /train/result/variances -ceplen 13 ";
system $comman;
for ( $i=1 ; $i<15; $i++ )
{
$comman="./bw -moddeffn /train/model/test_8gau_13dCep_16k_40mel_130Hz_6800Hz.mdef -ts2cbfn .cont. -mixwfn /train/result/mixture_weights -tmatfn /train/result/transition_matrices -meanfn /train/result/means -varfn /train/result/variances -dictfn /train/dict/dictionary -fdictfn /train/filler/fillerdict -ctlfn /train/ctl/ctl.ctl -part 1 -npart 1 -cepdir /train/feature -cepext mfcc -lsnfn /train/lsnfn/digits.transcript -accumdir /train/bw_accumdir -varfloor 0.0001 -topn 1 -feat 1s_c_d_dd ";
system $comman;
$comman="./norm -accumdir /train/bw_accumdir -feat 1s_c_d_dd -mixwfn /train/result/mixture_weights -tmatfn /train/result/transition_matrices -meanfn /train/result/means -varfn /train/result/variances -ceplen 13 ";
system $comman;
}
2 Training worked .After that ,I got the model and 4 files.Then ,I followed" Using SphinxTrain Models in Sphinx-4",So,The system worked.
BUT,The recognition ratio is so poor!!How to solve that!
Is my Training procedure right? The Procedure is enough for CI model?