Search code examples
androidspeech-recognitioncmusphinxpocketsphinx

What is the minimum value of keyword threshold


Reading the other Q&A that are on stackoverflow and the information on the official site of CMUSphinx, I read that I have to adjust the threshold but nobody exactly says, what is the threshold. I understood that if the value of the threshold is bigger then you have bigger chances to have valid results but you can loose some, if the threshold is smaller then you don't loose results but you get some that are invalid... (a lot of them in some cases). I've tried to make a keyword search but I couldn't find appropriate values for the thresholds for my keywords. Could anyone explain how this thing works ?

Specific question: when you make a keyword search you adjust the threshold for keyword , then when you set the recognizer like this:

recognizer = SpeechRecognizerRecorderSetup.defaultSetup()
           .setAcousticModel(new File(appDir, "models/hmm/en-us-semi"))
           .setDictionary(new File(appDir, "models/lm/cmu07a.dic"))
           .setRawLogDir(appDir)
           .setKeywordThreshold(1e-40)
           .setAudioStorageDirectory("SpeechTutor")
           .getRecognizer();

What is the meaning of the setKeywordThreshold() method if you have already set the threshold for every keyword?

Another question : What is the range of the threshold? I found that the maximam is 1.0. But the minimum?


Solution

  • What is the meaning of the setKeywordThreshold() method if you have already set the threshold for every keyword?

    It is ignored

    Another question : What is the rage of the threshold ? I found that the maximam is 1.0. But the minimum ?

    1e-50 is a minimal value. It is documented in tutorial

    http://cmusphinx.sourceforge.net/wiki/tutoriallm#keyword_lists

    which I recommend you to read.