0

We're trying to get CMU Sphinx4 to recognize only between the words yes and no in spanish (si and no). We've implented Sphinx4 with the spanish model es_cont_2000 from voxforge. We've created the language model (attached below), and when recognizing the word "No" we have almost 100% accuracy. However, when recognizing "Si" (Yes) it's only about 50%.

Does someone have suggestions for how to get better accuracy for such a reduced set of words aside from adapting the language model (http://cmusphinx.sourceforge.net/wiki/tutorialadapt)?

Are there better language models for Latin American Spanish or other ways?

This is an ARPA-format language model file, generated by CMU Sphinx
\data\
ngram 1=4
ngram 2=4
ngram 3=4

\1-grams:
-0.7782 </s> -0.1761
-0.3010 <s> -0.5228
-0.7782 no -0.3978
-0.7782 si 0.0000

\2-grams:
-0.1761 </s> <s> -0.0791
-0.3978 <s> no 0.1761
-0.3978 <s> si -0.2217
-0.1761 no </s> 0.1761

\3-grams:
-0.3010 </s> <s> si 
-0.3010 <s> no </s> 
-0.3010 <s> si </s> 
-0.3010 no </s> <s> 

\end\
Shevliaskovic
  • 1,562
  • 4
  • 26
  • 43
jblaya
  • 5
  • 2
  • In order to get help on accuracy it's worth to provide complete data set to reproduce your issues (audio recording, exact decoder setup and so on). – Nikolay Shmyrev Jul 15 '14 at 06:33
  • Thanks Nikolay, I've included the audios, and other variables in this file https://www.dropbox.com/s/lzzcamoduc7uir3/sphinx.tar.gz If there's a better way or you need anything else, let me know. – jblaya Jul 16 '14 at 16:58

1 Answers1

0

You can use the following command line:

for f in *.wav ; do echo $f; pocketsphinx_continuous -infile $f -hmm es_cont_2000 -jsgf es.jsgf -dict es.dic -lw 1.0 -logfn /dev/null; done

The following es.dic

si S I
no N O

The following jsgf grammar:

#JSGF V1.0;
grammar sino;
public <sino> = si | no;

Result woudl be:

no_andrea_converted.wav
000000000: no
no_dani_converted.wav
000000000: no
no_IM_converted.wav
000000000: no
si_andrea_converted.wav
000000000: si
si_dani_converted.wav
000000000: si
si_IM_converted.wav
000000000: si

You need to use latest pocketsphinx and sphinxbase from http://github.com/cmusphinx. -lw 1.0 parameter is important.

Nikolay Shmyrev
  • 24,897
  • 5
  • 43
  • 87
  • Thanks Nikolay, but why did you put pocketsphinx_continuous in your first line? Should it be sphinx since we're using Sphinx4? As far as I understand you use either pocketsphinx or sphinx4. – jblaya Jul 16 '14 at 21:17