Hi, Sphinx Android is pretty good. But when it comes to a kind of noisy environment, it just can't stop recording voice. Is there any way that I can set volume threshold or something like that so that low volume environment noise can be tolerated or ignored?
Another problem is how to set the maximum listening time. I think there should be an interface to set it up.
Any help is appreciated!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
However in the last version of Miro I used the Android CountDownTimer for timing. If you are interested I can attach the java last version of a testing code.
Personally I found PocketShinks robust to noise, comparing with the Android SpeechRecogniser in the same conditions. The hack with the timer is important since if listening sufficiently long it will have false positive for sure.
Cheers,
Konstantin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
// If we are not spotting, start listening with timeoutif(searchName.equals(KWS_SEARCH))recognizer.startListening(searchName);elserecognizer.startListening(searchName,10);Stringcaption=getResources().getString(captions.get(searchName));((TextView)findViewById(R.id.caption_text)).setText(caption);}
~~~~~~~~~~~~
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you so much! Simply replace the /libs directory with the new updated one, and the new api works.
BTW, I wonder what kind of features CMU PocketSphinx uses, because I'm also working on the speaker recognition stuff. And from my experience, I think PNCC features are stronger than MFCC features.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
BTW, I wonder what kind of features CMU PocketSphinx uses, because I'm also working on the speaker recognition stuff. And from my experience, I think PNCC features are stronger than MFCC features.
pocketsphinx uses noise-robust MFCC.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you want to implement PNCC you can do that, however, our features are better than PNCC for many practical tasks. For example, our features are more more accurate on clean speech and also robust to channel characteristics (due to use of log and CMN instead of cubic nonlinearity in pncc).
Last edit: Nickolay V. Shmyrev 2014-08-25
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, Sphinx Android is pretty good. But when it comes to a kind of noisy environment, it just can't stop recording voice. Is there any way that I can set volume threshold or something like that so that low volume environment noise can be tolerated or ignored?
Another problem is how to set the maximum listening time. I think there should be an interface to set it up.
Any help is appreciated!
Can anyone help me with this..I'm kind of in a hurry here...
Somehow I saw there are some answers posted in this thread but can't see any. What the hack is going on?
Hi,
You are right. This subject was already discussed here:
http://sourceforge.net/p/cmusphinx/discussion/help/thread/c6109f2f/
However in the last version of Miro I used the Android CountDownTimer for timing. If you are interested I can attach the java last version of a testing code.
Personally I found PocketShinks robust to noise, comparing with the Android SpeechRecogniser in the same conditions. The hack with the timer is important since if listening sufficiently long it will have false positive for sure.
Cheers,
Konstantin
In latest code (github/subversion trunk) there is startListening(searchName, timeout) method, so there is no need for a separate timeout.
As for setting threshold, you can use
to set threshold of voice activation
I'm sorry I can't find that trunk directory...Can you give me the URL...Thank you.
New code and demo is here:
http://github.com/cmusphinx/pocketsphinx-android-demo
See the code to start listening with timeout:
~~~~~~~~~~
private void switchSearch(String searchName) {
recognizer.stop();
~~~~~~~~~~~~
Thank you so much! Simply replace the /libs directory with the new updated one, and the new api works.
BTW, I wonder what kind of features CMU PocketSphinx uses, because I'm also working on the speaker recognition stuff. And from my experience, I think PNCC features are stronger than MFCC features.
pocketsphinx uses noise-robust MFCC.
Just out of curiosity, is there any other option? is it possible that we move PNCC features on pocketsphinx?
If you want to implement PNCC you can do that, however, our features are better than PNCC for many practical tasks. For example, our features are more more accurate on clean speech and also robust to channel characteristics (due to use of log and CMN instead of cubic nonlinearity in pncc).
Last edit: Nickolay V. Shmyrev 2014-08-25
Thanks, I appreciate it.