I tried a lot, but I can not find it, so I hope you can help me.
I am trying to create my own voice recognition application that does not display a dialog.
I already wrote the code and it works very well, but my problem is that the recognizer seems to stop without any errors or other interference in LogCat.
The strange fact is that "onRmsChanged" from the "RecognitionListener" interface is still called all the time, but "onBeginningOfSpeech" is no longer called.
If I speak right after the start of speech recognition, it works. But this is not the case if I wait a few seconds.
Used API 4.0.3 and I installed it on my Nexus 7 with version 4.2.1
I would really appreciate it if you have any good ideas.
Some snippets of code:
My class:
class SpeechListener implements RecognitionListener { public void onBeginningOfSpeech() { Log.d(TAG, "onBeginningOfSpeech()"); } public void onBufferReceived(byte[] buffer) { Log.d(TAG, "onBufferReceived()"); } public void onEndOfSpeech() { Log.d(TAG, "onEndOfSpeech()"); } public void onError(int error) { Log.d(TAG, "onError(): " + error); if(error == SpeechRecognizer.ERROR_NO_MATCH) { } else if(error == SpeechRecognizer.ERROR_SPEECH_TIMEOUT) { } else { tvOutput.setText("Error: " + error); } } public void onEvent(int eventType, Bundle params) { Log.d(TAG, "onEvent()"); } public void onPartialResults(Bundle partialResults) { Log.d(TAG, "onPartialResults()"); } public void onReadyForSpeech(Bundle params) { Log.d(TAG, "onReadyForSpeech()"); } public void onResults(Bundle results) { Log.d(TAG, "onResults(): " + results); String str = new String(); ArrayList<String> data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); for(int i = 0; i < data.size(); i++) { str += data.get(i) + "\n"; } tvOutput.setText(tvOutput.getText().toString() + "\n\n" + "Results: " + str); } public void onRmsChanged(float rmsdB) { Log.d(TAG, "onRmsChanged()"); } }
And my implementation in MainActivity:
this.srSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this); this.srSpeechRecognizer.setRecognitionListener(new SpeechListener()); this.iSpeechIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); this.iSpeechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); this.iSpeechIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "voice.recognition.test"); this.iSpeechIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10);
And so it began:
srSpeechRecognizer.startListening(iSpeechIntent);
Magazines with language:
12-16 13:50:53.576: D/DreamManagerService(485): Dream finished: android.os.Binder@415bbf38 12-16 13:50:53.576: I/DreamManagerService(485): Leaving dreamland. 12-16 13:50:53.576: I/DreamController(485): Stopping dream: name=ComponentInfo{com.google.android.deskclock/com.android.deskclock.Screensaver}, isTest=false, userId=0 12-16 13:50:53.586: I/PowerManagerService(485): Waking up from dream... 12-16 13:50:53.616: I/ActivityManager(485): No longer want com.google.android.gsf.login (pid 13171): empty #17 12-16 13:50:56.796: I/GoogleRecognitionServiceImpl(1461): #startListening [de-DE] 12-16 13:50:56.806: I/ActivityManager(485): Start proc com.google.android.gsf.login for service com.google.android.gsf.login/com.google.android.gsf.loginservice.GoogleLoginService: pid=13343 uid=10019 gids={50019, 3003, 1007, 1028, 1015, 2001, 3006} 12-16 13:50:56.866: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:56.886: D/dalvikvm(1461): GC_FOR_ALLOC freed 516K, 12% free 8706K/9892K, paused 18ms, total 18ms 12-16 13:50:56.906: D/dalvikvm(1461): GC_CONCURRENT freed 160K, 9% free 9015K/9892K, paused 3ms+2ms, total 21ms 12-16 13:50:56.906: I/AudioService(485): AudioFocus requestAudioFocus() from android.media.AudioManager@4135e960com.google.android.speech.audio.AudioController$1@41261910 12-16 13:50:56.916: I/VS.G3EngineManager(1461): create_rm: m=ENDPOINTER_VOICESEARCH,l=en-US 12-16 13:50:56.916: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:56.916: I/VS.G3EngineManager(1461): Brought up new g3 instance :/system/usr/srec/en-US/endpointer_voicesearch.config for: en-USin: 3 ms 12-16 13:50:56.926: I/ConnectionFactoryImpl(1461): Opening SSL connection: vs.google.com:14259 12-16 13:50:56.966: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.016: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.066: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.116: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.166: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.216: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.266: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.316: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.366: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.416: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.466: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.516: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.566: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.616: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.666: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.716: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.766: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.816: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.866: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.916: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:57.966: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.016: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.066: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.116: I/MainActivity/SpeechListener(13268): onBeginningOfSpeech() 12-16 13:50:58.126: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.176: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.226: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.276: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.326: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.376: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.426: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.476: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.526: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.576: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.626: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.676: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.726: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.776: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.826: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.876: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.926: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:58.976: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.026: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.076: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.126: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.176: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.236: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.286: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.336: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.386: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.436: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.486: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.536: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.586: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.636: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.646: I/MicrophoneInputStream(1461): mic_close 12-16 13:50:59.666: I/AudioService(485): AudioFocus abandonAudioFocus() from android.media.AudioManager@4135e960com.google.android.speech.audio.AudioController$1@41261910 12-16 13:50:59.666: D/dalvikvm(1461): threadid=37: thread exiting, not yet detached (count=0) 12-16 13:50:59.666: I/MainActivity/SpeechListener(13268): onEndOfSpeech() 12-16 13:50:59.676: I/decoder(1461): INFO: recognition time wall: 2.732 sec user: 0.54 sec sys: 0.08 sec 12-16 13:50:59.686: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.736: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.786: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.826: I/MainActivity/SpeechListener(13268): onResults(): Bundle[mParcelledData.dataSize=292] 12-16 13:50:59.836: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.886: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.936: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:50:59.986: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:51:00.046: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:51:00.096: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:51:00.146: D/MainActivity/SpeechListener(13268): onRmsChanged() 12-16 13:51:00.196: D/MainActivity/SpeechListener(13268): onRmsChanged()
Logs without a conversation:
12-16 13:53:39.246: I/GoogleRecognitionServiceImpl(1461):