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?
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.