Test Acoustic Model Using Julius

1. First compile the Julian grammar files (i.e. the one you added to you test directory in Step 2) as follows:

$mkdfa.pl sample

2. Next, create a file in your test directory to tell Julius where all your wav files are located (Julius can use the same mfc files as does HTK, but recognition rates seem better when using the original wav files).  It should look like this:  wavlstwavlst

3. Next update your Julian configuration file as follows:

julian.jconfjulian.jconf

4. Then use Julian to recognize the test data as follows:

a.  If you created your Acoustic Model using the VoxForge How-to or Tutorial, execute the following command:

$ julian -input rawfile -filelist wavlst -smpFreq 48000  -C julian.jconf  > juliusOutput

b. If you Adapted the VoxForge Speaker Independent Acoustic Models to your voice using the adaptation tutorial, execute the following command:

$ julian -input rawfile -filelist wavlst -smpFreq 8000  -C julian.jconf  > juliusOutput

which creates the following file: juliusOutputjuliusOutput

5. Next you need process the Julius output so that HTK's HResults command can read it.  Download the following script: ProcessJuliusOutput.pl (note that if you download this file, you need to rename it to 'processjuliusoutput.pl' - otherwise it will download as 'processjuliusoutput_pl.txt').

6. Then execute it as follows (note: you may need to make this script executable - see Cheat Sheet on the Docs page):

$./ProcessJuliusOutput.pl juliusOutput juliusProcessed
which generates the following output:

juliusProcessedjuliusProcessed 

7. Finally, run the following command to determine the actual recognition performance of the Acoustic Model:

$HResults -I testref.mlf tiedlist juliusProcessed

which will display output similar to this (note: these are results for the 8kHz:16-bit VoxForge Speaker Independent Acoustic Model, build 396, which includes speech audio using my voice, so the results are better than what you would get):

====================== HTK Results Analysis =======================
  Date: Fri Sep 29 12:42:14 2006
  Ref : testref.mlf
  Rec : juliusProcessed
------------------------ Overall Results --------------------------
SENT: %Correct=82.00 [H=41, S=9, N=50]
WORD: %Corr=96.83, Acc=94.71 [H=183, D=2, S=4, I=4, N=189]
===================================================================

What this means is that:

  • for the line starting with SENT, there were 50 test sentences and 82% were correctly recognized. 
  • for the line starting with WORD, there were 189 words in total, of which 96.83% were recognized correctly.  But because Julius recognized words that are not in the audio file (i.e. insertion errors) it only gets a 94.71% accuracy rating.
  • Count definitions:
    • D - Deletion Error
    • S - Substitution Error
    • I - Insertion Error


Comments

Click the 'Add' link to add a comment to this page.

Note: You need to be logged in to add a comment!

Search

By Mona Salem - 3/22/2020 - 574 Replies

Read 1818 physical / 2361 logical HMMs
  ERROR [+8251]  ReadLattice: Word A3 not in dict
  ERROR [+3210]  DoAlignment: ReadLattice failed
 FATAL ERROR - Terminating program HVite

By Masoud - 4/25/2016 - 224 Replies

I have followed the HTKbook tutorial and voxforge.org to create the HMMs. Now, I'd like to test these HMMs with the test files.

I use this command to test HMMs with some wav files

 

HVite -A -D -T 1 -H hmm15/macros-H hmm15/hmmdefs -C config -S test.scp -l '*' -i recout.mlf -w wdnet -p 0.0 -s 5.0 dict tiedlist

My config file like this:

TARGETKIND = MFCC_0_D_N_Z

TARGETRATE = 100000.0

SAVECOMPRESSED = T

SAVEWITHCRC = T

WINDOWSIZE = 250000.0

USEHAMMING = T

PREEMCOEF = 0.97

NUMCHANS = 26

CEPLIFTER = 22

NUMCEPS = 12

test.scp contain feature vectors of my wav files that want to test.


wdnet and dict and tiedlist make according to tutorial.

Now, when I run this command I see the belowe error.

ERROR [+3219] HVite: HMM list file name expected FATAL ERROR - Terminating program HVite

What's this error and how can I fix it?

By bad result? - 3/26/2016 - 262 Replies

hi

can any one help me plz?

I used the recognizer to recognise monophones model as following :

HResults -t -I testref.mlf ( tiedlist)  recout.mlf

instead of (tiedlist) I used 

HResults -t -I testref.mlf monophones1  recout.mlf

 

before this step I used gram1,wdnet1 which contain only one sentence from prompotstest.....

i defined gram1 as following :

$WORD= dubay  tuxaTiTu ltazwydi rijAli  AlOiTfA` biOjhzpi TyrAnK  maHmwlp ;

 

 ( {SENT-START} <$WORD> {SENT-END} )

and I;ve got this bad result?
====================== HTK Results Analysis =======================
  Date: Sat Mar 26 19:15:58 2016
  Ref : testref1.mlf
  Rec : recout1.mlf
------------------------ Overall Results --------------------------
SENT: %Correct=0.00 [H=0, S=1, N=1]
WORD: %Corr=0.00, Acc=-625.00 [H=0, D=0, S=8, I=50, N=8]
===========================
why?

By person - 9/21/2008 - 589 Replies

In this tutorial you are doing  the recognition by words.
Is it is possible with the same stages to do the recognition by phoneme,  of course  we change the  grammar and the dictionary
 
I tried to do that but the result (recout.mlf) was only the phoneme "sil" for each sentence in test file.
Is the problem that each sentence is begins and finished by a "sil" !!  And the rate of recognition was 2% !!!!

How to make the decoding with the phoneme in htk?? is there a forum to do that in this site web??

 

please help me and thans befor