I am trying to develop a basic connected digit recogniser using HTK. At the moment, the recognizer is required to recognize digits from 0-10 only and is speaker dependant (which is not a problem right now). Here is how I do the recognition:
- Get the wavfile recorded by user and create MFCC.
Run HVite on the mfcc file with wordnet and dictionary as inputs.
Note on training for the hmm models:
The basic units for training the initial HMM models have been culled from spoken digit strings. I end up with some 20 units of each digit (approx.) which go into the making of the initial models. Embedded training models have been synthesized by concatenating the basic units (which basic unit to concatenate is chosen randomly). The total number of sentences generated in this way is about 20000. Another 109 sentences have been taken from actual words spoken during testing phase.
The problem I am facing is as follows:
1. In a connected digit string of length more than 4, I get digits inserted into the input string at the output. eg.) Input: 99102, Output: 989818082 Notice that all the digits from the input are recognized correctly, it is just that there are extraneous digits introduced at the output. Looking at the mlf file shows that the likelihood values associated with these words is also similar. Any idea why this may be happ开发者_如何转开发ening?I have looked through the net for solutions to this, but have not come across any. Any help is most welcome.
You need to set the word insertion penalty (for HVite -p option) - its most probably set to 0.0 (default). You'll have to play around with this value. Start at -1.0 and go more negative.
精彩评论