How to train Syllables instead of phones using HTK?
I am trying to develop a Speech to Text conversion system using the Hidden Markov Model Toolkit (HTK). There are several possible methods to model HMMs for isolated word recognition:
The HTK Manual and VoxForge Tutorial on HTK give us step by step instructions on how to model HMMs for every monophone or triphone. I have implemented this for an Indian Langauge (Kannada) with success. However, neither source tells us how the same can be implemented using Syllable-based HMM modelling.
According to a paper on ASR using context-dependent syllables :
Neither HTK nor LASER had the direct support for working with syllables we had to implement a transformation algorithm. This only transforms configuring files for monophone ASR into the form for syllable ASR.
They say we need to modify the configuration files to suit syllables instead of monophones. Following the 10 steps in the VoxForge Tutorial , The configuration files are as follows :
config, wav_config : Specifies the configuration parameters for generating feature vectors from training wav files
sample.jconf : Configuration for using julius for Speech Recognition.
However, changing these files in any way doesn't help in recognising syllables.
Instead, I performed the steps similar to the phone based modelling ie create a monophone pronunciation dictionary and HMM training with 9 rounds. This is equivalent to the 1st 8 steps of the voxforge tutorial. In case of triphone modelling however, instead of creating triphones for every single word, I split every word into syllables and created trihphones (and biphones) from every syllable. You may not be able to read this language Kannada, but I'll show a few samples so you can see what I'm dealing with.
During triphone modelling while I was just modelling for normal triphones, a part of my triphone dictionary dict-tri
was the following (which worked perfectly):
ಅತಿ ಅ+ತ್ ಅ-ತ್+ಇ ತ್-ಇ sp
ಅದರ ಅ+ದ್ ಅ-ದ್+ಅ ದ್-ಅ+ರ್ ಅ-ರ್+ಅ ರ್-ಅ sp
ಅದು ಅ+ದ್ ಅ-ದ್+ಉ ದ್-ಉ sp
In the new method of breking down the words into syllables and converting each syllable to mono, bi & triphones, the same dictionary is like:
ಅತಿ ಅ ತ್+ಇ ತ್-ಇ sp
ಅದರ ಅ ದ್+ಅ ದ್-ಅ ರ್+ಅ ರ್-ಅ sp
ಅದು ಅ ದ್+ಉ ದ್-ಉ sp
Even though you may not be able to read the language, it should be clear that I aim to reduce the number of HMM models significantly. Yet while running julius, I got the following error :
STAT: include config: sample.jconf
STAT: jconf successfully finalized
STAT: *** loading AM00 _default
Stat: init_phmm: Reading in HMM definition
Stat: rdhmmdef: ascii format HMM definition
Stat: rdhmmdef: limit check passed
Stat: check_hmm_restriction: an HMM with several arcs from initial state found: "sp"
Stat: rdhmmdef: this HMM requires multipath handling at decoding
Stat: rdhmmdef: no <SID> embedded
Stat: rdhmmdef: assign SID by the order of appearance
Stat: init_phmm: defined HMMs: 200
Stat: init_phmm: loading ascii hmmlist
Stat: init_phmm: logical names: 562 in HMMList
Stat: init_phmm: base phones: 48 used in logical
Stat: init_phmm: finished reading HMM definitions
STAT: making pseudo bi/mono-phone for IW-triphone
Stat: hmm_lookup: 5 pseudo phones are added to logical HMM list
STAT: *** AM00 _default loaded
STAT: *** loading LM00 _default
STAT: reading [sample.dfa] and [sample.dict]...
Error: voca_load_htkdict: line 3: triphone "*-ಅ+ತ್" or biphone "ಅ+ತ್" not found
Error: voca_load_htkdict: line 3: triphone "ಅ-ತ್+ಇ" not found
Error: voca_load_htkdict: the line content was: 2 [ಅತಿ] ಅ ತ್ ಇ
Error: voca_load_htkdict: line 4: triphone "*-ಅ+ತ್" or biphone "ಅ+ತ್" not found
Error: voca_load_htkdict: line 4: triphone "ಅ-ತ್+ಯ್" not found
Error: voca_load_htkdict: line 4: triphone "ತ್-ಯ್+ಅ" not found
Error: voca_load_htkdict: line 4: triphone "ಯ್-ಅ+ದ್" not found
Error: voca_load_htkdict: line 4: triphone "ಅ-ದ್+ಭ್" not found
Error: voca_load_htkdict: line 4: triphone "ದ್-ಭ್+ಉ" not found
Error: voca_load_htkdict: line 4: triphone "ಭ್-ಉ+ತ್" not found
Error: voca_load_htkdict: line 4: triphone "ಉ-ತ್+ಅ" not found
Error: voca_load_htkdict: the line content was: 2 [ಅತ್ಯದ್ಭುತ] ಅ ತ್ ಯ್ ಅ ದ್ ಭ್ ಉ ತ್ ಅ
Error: voca_load_htkdict: line 5: triphone "*-ಅ+ಥ್" or biphone "ಅ+ಥ್" not found
Error: voca_load_htkdict: line 5: triphone "ಅ-ಥ್+ಅ" not found
Error: voca_load_htkdict: line 5: triphone "ಥ್-ಅ+ವ್" not found
Error: voca_load_htkdict: line 5: triphone "ಅ-ವ್+ಆ" not found
.
.
.
(over 200 more lines of the same)
.
.
Error: voca_load_htkdict: ಹ್-ಒ+ಯ್
Error: voca_load_htkdict: ಹ್-ಒ+ರ್
Error: voca_load_htkdict: ಹ್-ಒ+ಳ್
Error: voca_load_htkdict: ಹ್-ಓ+ಗ್
Error: voca_load_htkdict: ಹ್-ಓ+ರ್
Error: voca_load_htkdict: ಹ್-ಯ್+ಅ
Error: voca_load_htkdict: ಹ್-ಯ್+ಆ
Error: voca_load_htkdict: end missing phones
Error: init_voca: error in reading sample.dict: 748 words failed out of 7 words
ERROR: failed to read dictionary "sample.dict"
ERROR: m_fusion: some error occured in reading grammars
ERROR: Error in loading model
What exactly have I done wrong? From the looks of it, the error states I have fed it triphones that have not been modeled. But all the Error
s displayed are triphones that I haven not even used! For reference, here is the list of ALL mono, bi and triphones used to create syllables (triphones1 replacement):
ಲ್-ಅ+ಮ್
ತ್-ಇ+ಮ್
ಘ್-ಅ+ಮ್
ನ್-ಊ+ಮ್
ಛ್-ಈ
ಛ್-ಅ
ಛ್-ಆ
ಛ್-ಇ
ಭ್-ಆ
ಭ್-ಇ
ಭ್-ಅ
ಭ್-ಊ
ಭ್-ಈ
ಭ್-ಉ
ಕ್-ಒ+ಮ್
ಭ್-ಏ
ಬ್+ಓ
ಬ್+ಒ
ಞ್+ಆ
ಬ್-ಅ+ಮ್
ಬ್+ಔ
ಬ್+ಇ
ಬ್+ಆ
ಬ್+ಅ
ಬ್+ಉ
ಬ್+ಈ
ಬ್+ಏ
ಬ್+ಎ
ರ್-ಒ+ಮ್
ತ್+ಊ
ತ್+ಉ
ಲ್-ಆ+ಮ್
ತ್+ಏ
ತ್+ಎ
ತ್+ಇ
ತ್+ಆ
ತ್+ಅ
ತ್+ಐ
ಕ್-ಇ+ಮ್
ಹ್-ಒ
ಹ್-ಓ
ಹ್-ಎ
ಹ್-ಈ
ಹ್-ಉ
ಹ್-ಆ
ಹ್-ಇ
ಖ್-ಅ+ಮ್
ಹ್-ಅ
ವ್-ಒ
ವ್-ಐ
ಖ್+ಊ
ಖ್
ವ್-ಉ
ವ್-ಎ
ವ್-ಏ
ಢ್+ಇ
ಢ್+ಆ
ವ್-ಆ
ವ್-ಇ
ವ್-ಅ
ಕ್-ಆ+ಮ್
ಹ್-ಅ+ಮ್
ಠ್-ಈ
ಠ್-ಏ
ಠ್-ಅ
ಳ್-ಎ+ಮ್
ಸ್-ಎ+ಮ್
ಸ್-ಅ
ಸ್-ಇ
ಸ್-ಆ
ಸ್-ಉ
ಸ್-ಈ
ದ್-ಅ+ಮ್
ಸ್-ಊ
ಶ್-ಇ
ಶ್-ಆ
ಶ್-ಅ
ಸ್-ಎ
ಸ್-ಐ
ಸ್-ಓ
ಸ್-ಒ
ಸ್-ಔ
ಗ್-ಅ+ಮ್
ಡ್-ಉ
ಶ್+ಅ
ಶ್+ಇ
ಶ್+ಆ
ಡ್-ಇ
ದ್
ಡ್-ಅ
ಡ್-ಎ
ಪ್-ಔ
ಪ್-ಓ
ಪ್-ಐ
ಧ್+ಊ
ಪ್-ಎ
ಧ್+ಈ
ಧ್+ಉ
ಪ್-ಊ
ಪ್-ಉ
ಪ್-ಇ
ಪ್-ಆ
ಪ್-ಅ
ಯ್-ಅ
ನ್
ಧ್+ಇ
ಧ್+ಅ
ಜ್
ಧ್+ಆ
ಷ್-ಈ
ತ್-ಅ+ಮ್
ಷ್-ಏ
ಷ್-ಅ
ಷ್-ಆ
ಷ್-ಇ
ಛ್+ಇ
sp
ಹ್
ಞ್-ಆ
ಥ್-ಈ
ಥ್-ಎ
ಥ್-ಏ
ಥ್-ಆ
ಥ್-ಇ
ಥ್-ಅ
ಚ್
ಯ್
ಮ್
ಟ್
ಳ್+ಎ
ಜ್+ಇ
ಜ್+ಆ
ಜ್+ಅ
ಳ್+ಉ
ಳ್+ಆ
ಳ್+ಇ
ಜ್+ಉ
ಳ್+ಅ
ಜ್+ಎ
ಖ್+ಐ
ಜ್+ಓ
ಜ್+ಐ
ಊ+ಮ್
ಳ್
ಶ್
ರ್-ಎ+ಮ್
ರ್-ಓ
ಆ-ಮ್
ರ್-ಉ
ಗ್+ಒ
ರ್-ಊ
ರ್-ಏ
ರ್-ಎ
ರ್-ಅ
ಟ್-ಊ
ರ್-ಇ
ರ್-ಆ
ಚ್+ಉ
ಚ್+ಈ
ಟ್-ಋ
ಬ್-ಎ+ಮ್
ಚ್+ಎ
ಚ್+ಅ
ಚ್+ಇ
ಚ್+ಆ
ದ್-ಒ+ಮ್
ನ್+ಓ
ನ್+ಒ
ನ್+ಐ
ನ್+ಇ
ನ್+ಆ
ನ್+ಅ
ಗ್-ಒ+ಮ್
ನ್+ಏ
ನ್+ಎ
ನ್+ಊ
ನ್+ಉ
ನ್+ಈ
ತ್-ಉ+ಮ್
ಧ್-ಈ
ಧ್-ಉ
ಧ್-ಊ
ಟ್+ಆ
ಟ್+ಇ
ಟ್+ಅ
ಟ್+ಊ
ಟ್+ಋ
ಟ್+ಈ
ಟ್+ಉ
ಧ್-ಅ
ಧ್-ಆ
ಧ್-ಇ
ಗ್+ಊ
ಚ್-ಎ
ಗ್+ಈ
ಗ್+ಉ
ಗ್+ಎ
ಗ್+ಏ
ಚ್-ಉ
ಚ್-ಈ
ಚ್-ಇ
ಚ್-ಆ
ಚ್-ಅ
ಗ್+ಆ
ಗ್+ಇ
ಖ್+ಓ
ಗ್+ಅ
ಖ್+ಏ
ತ್+ಈ
ಖ್+ಉ
ಟ್-ಅ
ಟ್-ಆ
ಟ್-ಇ
ಖ್+ಅ
ಟ್-ಉ
ಖ್+ಇ
ಖ್+ಆ
ನ್-ಅ+ಮ್
ಬ್-ಔ
ವ್+ಐ
ವ್+ಒ
ಒ-ಮ್
ಫ್-ಎ
ಸ್-ಅ+ಮ್
ವ್+ಉ
ವ್+ಎ
ವ್+ಏ
ವ್+ಅ
ವ್+ಆ
ಯ್-ಅ+ಮ್
ಹ್+ಉ
ಕ್-ಅ+ಮ್
ದ್-ಇ+ಮ್
ವ್+ಇ
ಖ್-ಇ
ಡ್-ಅ+ಮ್
ಥ್+ಅ
ಖ್-ಅ
ಸ್+ಇ
ಸ್+ಆ
ಸ್+ಅ
ಫ್+ಅ
ರ್+ಎ
ಫ್+ಎ
ಸ್+ಎ
ಎ+ಮ್
ಸ್+ಉ
ಸ್+ಈ
ಖ್-ಆ
ಸ್+ಔ
ಸ್+ಓ
ಸ್+ಒ
ಸ್+ಐ
ಗ್-ಆ+ಮ್
ಖ್-ಓ
ದ್+ಋ
ಠ್+ಏ
ಠ್+ಈ
ಠ್+ಅ
ಣ್+ಎ
ಣ್+ಉ
ಣ್+ಆ
ಣ್+ಇ
ಣ್+ಅ
ಏ-ಮ್
ಲ್+ಅ
ಲ್+ಇ
ಲ್+ಆ
ಲ್+ಉ
ರ್-ಇ+ಮ್
ಲ್+ಊ
ಲ್+ಏ
ಲ್+ಎ
ನ್-ಇ+ಮ್
ಬ್-ಅ
ಬ್-ಇ
ಬ್-ಆ
ಬ್-ಏ
ಬ್-ಎ
ಬ್-ಉ
ಬ್-ಈ
ಛ್+ಆ
ರ್-ಆ+ಮ್
ಛ್+ಅ
ಧ್
ಬ್-ಓ
ಬ್-ಒ
ರ್-ಅ+ಮ್
ಕ್-ಏ+ಮ್
ಛ್+ಈ
ಷ್+ಏ
ದ್-ಒ
ದ್-ಋ
ದ್-ಊ
ದ್-ಉ
ದ್-ಈ
ದ್-ಏ
ದ್-ಎ
ದ್-ಇ
ದ್-ಆ
ದ್-ಅ
ಗ್
ತ್-ಐ
ತ್-ಏ
ತ್-ಎ
ತ್-ಉ
ತ್-ಈ
ತ್-ಊ
ತ್-ಅ
ತ್-ಇ
ತ್-ಆ
ಝ್+ಓ
ಯ್-ಆ+ಮ್
ಘ್-ಅ
ಘ್-ಆ
ತ್-ಎ+ಮ್
ಘ್-ಓ
ಢ್+ಅ
ಛ್-ಅ+ಮ್
ಮ್+ಔ
ಸ್-ಇ+ಮ್
ಮ್+ಐ
ಮ್+ಒ
ಮ್+ಅ
ಮ್+ಇ
ಮ್+ಆ
ಮ್+ಏ
ಮ್+ಎ
ಮ್+ಉ
ಮ್+ಈ
ಮ್+ಊ
ಪ್+ಐ
ಪ್+ಓ
ಇ-ಮ್
ನ್-ಒ+ಮ್
ಪ್+ಉ
ಪ್+ಊ
ಪ್+ಎ
ಪ್+ಅ
ಪ್+ಇ
ಪ್+ಆ
ಘ್+ಆ
ಘ್+ಅ
ಮ್-ಅ+ಮ್
ಇ+ಮ್
ಘ್+ಓ
ಒ+ಮ್
ಔ-ಮ್
ಪ್-ಉ+ಮ್
ಬ್
ಳ್+ಊ
ಭ್+ಏ
ಡ್
ಬ್-ಇ+ಮ್
ಟ್-ಈ
ಢ್-ಇ
ಢ್-ಆ
ಢ್-ಅ
ಯ್-ಇ+ಮ್
ಜ್+ಈ
ಷ್-ಎ
ಫ್
ತ್-ಊ+ಮ್
ಥ್+ಈ
ಖ್-ಊ
ಖ್-ಉ
ಖ್-ಏ
ಥ್+ಎ
ಥ್+ಏ
ರ್+ಓ
ರ್+ಒ
ಥ್+ಆ
ಥ್+ಇ
ರ್+ಏ
ನ್-ಎ+ಮ್
ಕ್
ರ್+ಊ
ರ್+ಉ
ರ್+ಈ
ರ್+ಇ
ರ್+ಆ
ರ್+ಅ
ಖ್-ಐ
ಳ್-ಅ
ಳ್-ಆ
ಳ್-ಇ
ಲ್-ಇ+ಮ್
ಳ್-ಎ
ಹ್-ಇ+ಮ್
ಳ್-ಉ
ಳ್-ಊ
ಸ್+ಊ
ಭ್+ಈ
ಲ್
ಔ
ಐ
ಓ
ಒ
ಎ-ಮ್
ಅ
ಇ
ಆ
ಉ-ಮ್
ಸ್+ಏ
ಏ
ಎ
ಉ
ಈ
ಋ
ಊ
ಷ್
ನ್-ಓ
ನ್-ಒ
ಭ್+ಅ
ಭ್+ಆ
ಭ್+ಇ
ತ್
ಭ್+ಉ
ಭ್+ಊ
ದ್+ಈ
ನ್-ಐ
ದ್+ಏ
ದ್+ಎ
ದ್+ಉ
ಜ್-ಐ
ಜ್-ಓ
ದ್+ಊ
ದ್+ಅ
ದ್+ಇ
ದ್+ಆ
ಜ್-ಅ
ಜ್-ಇ
ಜ್-ಆ
ನ್-ಅ
ನ್-ಇ
ನ್-ಆ
ನ್-ಉ
ನ್-ಈ
ನ್-ಊ
ಜ್-ಉ
ಜ್-ಈ
ನ್-ಏ
ನ್-ಎ
ಲ್-ಇ
ಲ್-ಆ
ಲ್-ಅ
ಯ್+ಆ
ಯ್+ಇ
ಯ್+ಅ
ಲ್-ಏ
ಲ್-ಎ
ಯ್+ಉ
ಸ್
ಲ್-ಊ
ಲ್-ಉ
ಯ್+ಓ
ವ್
ಆ+ಮ್
ಕ್-ಎ+ಮ್
ಝ್-ಓ
ಊ-ಮ್
ವ್-ಒ+ಮ್
ಗ್-ಈ
ಗ್-ಉ
ಗ್-ಊ
ಜ್-ಎ
ರ್
ಗ್-ಎ
ಗ್-ಏ
ಕ್-ಒ
ಕ್-ಓ
ಗ್-ಅ
ಗ್-ಆ
ಗ್-ಇ
ಕ್-ಊ
ಕ್-ಋ
ಕ್-ಈ
ಕ್-ಉ
ಕ್-ಎ
ಗ್-ಒ
ದ್+ಒ
ಕ್-ಆ
ಕ್-ಇ
ಕ್-ಅ
ಣ್
ಳ್-ಇ+ಮ್
ಪ್+ಔ
ವ್-ಅ+ಮ್
ಲ್-ಏ+ಮ್
ಹ್+ಒ
ಹ್+ಓ
ಪ್-ಆ+ಮ್
ಹ್+ಅ
ಹ್+ಆ
ಹ್+ಇ
ಫ್-ಅ
ಹ್+ಎ
ಹ್+ಈ
ಕ್-ಉ+ಮ್
ರ್-ಒ
ಯ್+ಎ
ಕ್+ಒ
ಕ್+ಓ
ಯ್+ಏ
ಕ್+ಈ
ಕ್+ಉ
ಕ್+ಊ
ಕ್+ಋ
ಕ್+ಎ
ಕ್+ಏ
ಕ್+ಅ
ಕ್+ಆ
ಕ್+ಇ
ಷ್+ಈ
ಷ್+ಎ
ಮ್-ಅ
ರ್-ಈ
ಹ್-ಒ+ಮ್
ಷ್+ಆ
ಷ್+ಇ
ಷ್+ಅ
ಣ್-ಅ
ಣ್-ಆ
ಣ್-ಇ
ಮ್-ಉ+ಮ್
ಮ್-ಊ
ಣ್-ಎ
ಣ್-ಉ
ಡ್+ಎ
ಡ್+ಉ
ಡ್+ಅ
ಡ್+ಇ
ಪ್
ಅ-ಮ್
ಟ್-ಉ+ಮ್
ಪ್-ಅ+ಮ್
ಸ್-ಔ+ಮ್
ಮ್-ಐ
ಸ್-ಏ
ಮ್-ಇ
ಮ್-ಆ
ಯ್-ಆ
ಯ್-ಇ
ಯ್-ಉ
ಮ್-ಉ
ಮ್-ಈ
ಮ್-ಏ
ಮ್-ಎ
ಯ್-ಎ
ಯ್-ಏ
ಮ್-ಒ
ಯ್-ಓ
ಮ್-ಔ
Regardless, The error I recieved should be common to every langauge. What is wrong exactly? What should I do to implement Syllable modeling in HTK?
链接地址: http://www.djcxy.com/p/34434.html上一篇: HTML5语音输入和Google翻译文本
下一篇: 如何训练音节而不是使用HTK的手机?