Click here to register.

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 command 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; click the 'Read More' link to view replies to a posted comment.

AddSearch

how to do the recognition by phonem withe htk????
By person - 9/21/2008 - 1 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

Julius performance
By DRF - 8/8/2008 - 1 Replies

I went through the steps to test the tutorial but found that the performance of Julius was considerably inferior to what was posted here.  I have not been able to get above %50 word error rate.

In particular, the recognizer seems to have lots of difficulty in identifying a long stream of digits.  It is only able to recognize the first few digits.  My guess is that the settings in the Julian.jconf file might need changing.  Any suggestions?