Click here to register.

Step 9 - Making Triphones from Monophones

Background 

In the dict file you created in Step 2, the pronunciation of a word was given by a series of phonemes (also called monophones - i.e. a single phone).   To generate a triphone (i.e. a group of 3 phones) declaration from monophones, the "L" phone  (i.e. the left-hand phone) precedes "X" phone and the "R" phone (i.e. the right-hand phone) follows it.  The triphone is declared in the form "L-X+R". 

Below is an example of the conversion to a triphone declaration of the word "TRANSLATE" (the first line shows the "monophone" declaration, and the second line shows the "triphone" declaration):

TRANSLATE [TRANSLATE] t r @ n s l e t
TRANSLATE [TRANSLATE] t+r t-r+@ r-@+n @-n+s n-s+l s-l+e l-e+t e-t

We are therefore moving to an improved level of recognition accuracy.  So far, we have created a monophone Acoustic Model, which can be used with Julius.  But with such a model, we are not looking at the 'context' of the monophone.  The SRE is trying to match the sound that it has heard to a single phone - a  single sound.

With a triphone acoustic model, we are essentially looking for a monophone in the "context" other monophones - i.e. the one immediately before and the one immediately after (if they exist - it may be the beginning or end of the word).  This greatly improves recognition accuracy, because the SRE is looking to match a specific sequence of 3 sounds together (a triphone), rather than only one sound.  This is like using a 3 word Google search rather than a single word Google search - you get more accurate results.  Triphones reduce the possibility of error caused by confusing one sound with another, because we are now looking for a distinct sequence of 3 sounds. 

Note that some commercial systems use quintphones (5 phone groupings) in their recognition systems - but this requires a very large amounts of speech audio data.

Tutorial 

To convert the monophone transcriptions in the  aligned.mlfaligned.mlf file you created in Step 8 to an equivalent set of triphone transcriptions, you need to execute the HLEd command. 

First you need to create the mktri.led edit script:

WB sp
WB sil
TC
 

Then you execute the HLEd command as follows:

$HLEd -A -D -T 1 -n triphones1 -l '*' -i wintri.mlf mktri.led aligned.mlf

This creates 2 files:

Next, to create the mktri.hed file by executing the following script:

$perl ../HTK_scripts/maketrihed monophones1 triphones1

This creates the mktri.hedmktri.hed file.

Then create  3 more folders: hmm10-12

Then execute the HHEd command:

$HHEd -A -D -T 1 -H hmm9/macros -H hmm9/hmmdefs -M hmm10 mktri.hed monophones1 

The files created by this command are:

 

 Next run HERest 2 more times: 

$HERest  -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm10/macros -H hmm10/hmmdefs -M hmm11 triphones1

The files created by this command are:

 

$HERest  -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -s stats -S train.scp -H hmm11/macros -H hmm11/hmmdefs -M hmm12 triphones1

 

The files created by this command are:


Comments

Click the 'Add' link to add a comment to this page; click the 'Read More' link to view replies to a posted comment.

AddSearch

The "@" in the pronunciation format!
By Babak - 7/29/2011 - 1 Replies

 

Any body know what the following signs "@" mean? I couldnt find its definition in the phone list:

TRANSLATE [TRANSLATE] t r @ n s l e t
TRANSLATE [TRANSLATE] t+r t-r+@ r-@+n @-n+s n-s+l s-l+e l-e+t e-t

untitled
By swbluto - 9/9/2010 - 2 Replies

I think I already posted a thread with the same issue in the auto section, but it looks like it's gone. Anyways, when I run 

 HHEd -A -D -T 1 -H hmm12/macros -H hmm12/hmmdefs -M hmm13 tree.hed triphones1

 

I eventually get the error message:

"

AU ./interim_files/fulllist

 Creating HMMset using trees to add unseen triphones

  ERROR [+2662]  AssignStructure: cannot find tree for b state 2

 FATAL ERROR - Terminating program C:\cygwin\HTK\htk-3.3-windows-binary\htk\HHEd

.exe

"

 

And the hmm13 files aren't created. There's a whole bunch of "warnings earlier", for example...

 

"

TB 350.00 ST__4_ {}

 Tree based clustering

 WARNING [-2631]  TreeBuildCommand: No items to cluster for ST__4_

 in C:\cygwin\HTK\htk-3.3-windows-binary\htk\HHEd.exe

 

TB 350.00 ST_si_4_ {}

 Tree based clustering

 WARNING [-2631]  TreeBuildCommand: No items to cluster for ST_si_4_

 in C:\cygwin\HTK\htk-3.3-windows-binary\htk\HHEd.exe

"

 

 

I don't know if that would elucidate the issue. I'll try to post the entire program output in a followup, if I can get the entire program output.

Error InitHMMSet: Expected NewLine after 2'th HMM
By Aswin Juari - 4/10/2009 - 2 Replies

Hello,


When I am using HHEd Command:

HHEd -A -D -T 1 -H hmm9/macros -H hmm9/hmmdefs -M hmm10 mktri.hed monophones1

I got error message:

ERROR [+7060]  InitHMMSet: Expected newline after 2'th HMM
  ERROR [+2628]  CloneCommand: MakeHMMSet failed
 FATAL ERROR - Terminating program HHEd

 

Can anybody help me? I can't find the mistakes.

untitled
By Moe - 3/16/2009 - 3 Replies

Hi,

when I execute the HHEd command to create the files in the hmm10 folder I get this warning message:

HHEd -A -D -T 1 -H hmm9/macros -H hmm9/hmmdefs -M hmm10 mktri.hed monophones1

...

TI T_sil {}
 Tie items
 WARNING [-2631]  ApplyTie: Macro T_sil has nothing to tie of type t in prog/HHEd

Saving new HMM files ...
Edit Complete

No HTK Configuration Parameters Set

 


Can anybody help me with this problem? I can't find my mistake! Regards!

Problem during re-estimation
By Annie - 12/26/2007 - 1 Replies

Hi!

I have a problem during the re-estimation for 11 times after the triphones compilation has been succeded.

the command :

HERest -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm10/macros -H hmm10/hmmdefs -M hmm11 triphones1

and it gives me this error :

ERROR [+7321] CreateInsts : Unknown label B

I'll already followed and checked everything, but can't find the solution...please help me!

 Thank you;

Regards;

Annie

 

Create hmm11
By Manuel - 9/11/2007 - 5 Replies

At the point to create hmm11:


HERest -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm10/macros -H hmm10/hmmdefs -M hmm11 triphones1

It give me many warning like this:

WARNING [-2331]  UpdateModels: t+ae[1] copied: only 1 egs
 in HERest
 WARNING [-2331]  UpdateModels: t+ay[3] copied: only 2 egs
 in HERest

....

It's a problem, or it's all ok?

Because I reach the end of tutorial to create my personal acoustic model, but when I try to use it with Julian it give me some errors:


Reading in dictionary...
line 3: triphone "*-f+ow" or biphone "f+ow" not found
line 3: triphone "f-ow+n" not found
> 2     [PHONE] f ow n
line 4: triphone "*-k+ao" or biphone "k+ao" not found
line 4: triphone "k-ao+l" not found
> 2     [CALL]  k ao l
line 5: triphone "d-ay+ax" not found
> 3     [DIAL]  d ay ax l
line 6: triphone "t-iy+v" not found
> 4     [STEVE] s t iy v
line 8: triphone "b-aa+b" not found
> 4     [BOB]   b aa b
line 9: triphone "*-jh+aa" or biphone "jh+aa" not found
line 9: triphone "jh-aa+n" not found
line 9: triphone "aa-n+s" not found
> 4     [JOHNSTON]      jh aa n s t ax n
line 10: triphone "*-jh+aa" or biphone "jh+aa" not found
line 10: triphone "jh-aa+n" not found
> 4     [JOHN]  jh aa n
line 11: triphone "*-jh+ao" or biphone "jh+ao" not found
line 11: triphone "jh-ao+r" not found
line 11: triphone "r-d+ax" not found
> 4     [JORDAN]        jh ao r d ax n
line 13: triphone "f-ay+v" not found
> 5     [FIVE]  f ay v
line 15: triphone "n-ay+n" not found
> 5     [NINE]  n ay n
line 21: triphone "th-r+iy" not found
> 5     [THREE] th r iy
line 23: triphone "z-ih+r" not found
line 23: triphone "ih-r+ow" not found
> 5     [ZERO]  z ih r ow
////// Missing phones:
*-f+ow or biphone f+ow
*-jh+aa or biphone jh+aa
*-jh+ao or biphone jh+ao
*-k+ao or biphone k+ao
aa-n+s
b-aa+b
d-ay+ax
f-ay+v
f-ow+n
ih-r+ow
jh-aa+n
jh-ao+r
k-ao+l
n-ay+n
r-d+ax
t-iy+v
th-r+iy
z-ih+r
//////////////////////
error in reading sample.dict: 12 words failed out of 23 words
ERROR: failed to read dictionary, terminated

If I try to use monophones model It start but all the recognizes are wrong Cry

Tks

Manuel