14.6.1 Running the speech recognition

Prepare two terminals. Run speech recognition using JuliusMFT in one terminal, and run speech separation using HARK in another terminal. The commands and results are shown in Figs. 14.33 and 14.34, respectively. Note that you need run JuliusMFT first to make sure that the separated sound is sent after the initialization of JuliusMFT. After the separation, you will find many wave files in wav/ directory, and a result.txt, a speech recognition log file.

> julius_mft -C julius.jconf 2>&1 | tee result.txt
STAT: include config: julius.jconf
STAT: loading plugins at "/usr/lib/julius_plugin":
STAT: file: calcmix_heu.jpi  #0 [Gaussian calculation plugin for Julius.
                                                            (ADD_MASK_TO_HEU)]
      ... skipped ...
----------------------- System Information end -----------------------------
Figure 14.33: An execution example of JuliusMFT
> Recognition.sh 
 UINodeRepository::Scan()
 Scanning def /usr/local/lib/flowdesigner/toolbox
 done loading def files
 loading XML document from memory
 done!
 Building network  :MAIN
 TF = 1,INITW = 0,FixedNoise = 0
 SSMethod = 2LC_CONST = 0LC_Method = 1
 reading A matrix
 Try to read loc_tf.dat as HARK format.
 72 directions, 1 ranges, 8 microphones, 512 points
 done
 initialize
 Source 0 is created.
 Source 1 is created.
    ... skipped ...
Figure 14.34: An execution example of HARK

The wave files are intermediate files of speech separation. The first few letters indicate the stage in the processing, and the succeeding numbers indicate the index of localized sound. The files starts from “GHDSS” are separated sounds, “NR” are leakage noise reduced files using post processing, and “WN” are white noise added files. The MSLS features are extracted from the sounds correspond to “WN”, and sent to JuliusMFT. Since these wave files are standard, you can listen to them by your audio player.

The text file result.txt is a raw speech separation log. Note that this includes Japanese characters whose encoding is EUC-JP. The lines beginning from “pass1_best:” is the recognition result. By running the command below, you will see a list of recognition results.

grep pass1_best: result.txt | nkf 

Trouble shooting

If no wave files are created, it means that HARK does not work correctly. Check if you have all files listed in Table , and wav/ directory is writable. Next, check if you successfully installed HARK (See the recipe 3.1Installation fails for this.)

If result.txt includes no recognition result, it means that JuliusMFT does not work. Check if JuliusMFT is installed. Run julius_mft in your terminal. If you see command not found, it is not installed yet. Next, check if all files listed in Table exist. Finally, check if you typed exactly the same command shown in Fig. 14.33.

For any case, the reason of the error will be written in log file or error messages. Read them carefully.