- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个语音识别器可以听语音,它是通过一个分别切换 startListening() 和 stopListening() 的按钮激活的。我的问题是 stopListening() 在第一次之后实际上并没有停止 speechRecognizer。使用按钮激活和停用 speechRecognizer 时,您可以清楚地听到与众不同的声音。但是,第一次调用stopListening()后(成功),并没有产生结束音,只有超时才结束。
我这样创建 speechRecognizer:
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 3);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
this.getPackageName());
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
mSpeechRecognizer.setRecognitionListener(this);
我覆盖了所有必要的方法:
@Override
public void onReadyForSpeech(Bundle params) {
Log.i(TAG, "Ready for speech input");
}
@Override
public void onBeginningOfSpeech() {
mIsEndOfSpeech = false;
Log.i(TAG, "Speech beginning");
}
@Override
public void onRmsChanged(float rmsdB) {
Log.i(TAG, "Speech RMS Changed: " + rmsdB);
}
@Override
public void onBufferReceived(byte[] buffer) {
Log.i(TAG, "Speech buffer received: " + buffer.toString());
}
@Override
public void onEndOfSpeech() {
mIsEndOfSpeech = true;
Log.i(TAG, "Speech recognition ended");
}
@Override
public void onError(int error) {
Log.e(TAG, "Speech recognition error: " + error);
}
@Override
public void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
if (mSpeechRecognizer != null) {
mSpeechRecognizer.destroy();
Log.i(TAG, "Speech destroy");
}
}
@Override
public void onResults(Bundle results) {
Log.i(TAG, "Speech recognition results received");
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
}
@Override
public void onPartialResults(Bundle partialResults) {
Log.i(TAG, "Speech recognition partial results received");
}
@Override
public void onEvent(int eventType, Bundle params) {
Log.i(TAG, "Speech recognition event called: " + eventType);
}
我的问题在于调用 startListening() 和 stopListening() 的第一次尝试成功了。但是,此后的任何尝试 stopListening() 都不起作用,它必须超时才能结束。我注意到的一件事是,在 LogCat 中,它声明“即使调用了 startListening(),也不能在没有先于 startListening() 的情况下调用 stopListening()”。
最佳答案
假设 Google 是您的默认识别服务提供商,当前版本的 Google“Now”stopListening()
无法正常工作。
请参阅this thread for more information和其他相关的错误。
它已在 most recent beta release 中修复如果你想测试它来确认你的问题。其他一些错误仍然存在。
关于android - SpeechRecognizer stopListening() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183759/
我目前有一个语音识别器可以听语音,它是通过一个分别切换 startListening() 和 stopListening() 的按钮激活的。我的问题是 stopListening() 在第一次之后实际
TLDR;对于 Backbone 事件,有没有办法在事件对象没有更多监听器时触发一些代码? 我有一个 Backbone Marionette View 正在监听 Model A 上的更改事件。完成 V
我在调用 startListening() 后在 Android 上使用 SpeechRecognizer.stopListening() 时遇到问题。它似乎没有任何效果。继续处理音频,并返回识别结果
仅从名称,我就可以得出 stopListening()与startListening()相反. 我也能理解destroy()与createSpeechRecognizer()相反. 但是cancel(
据我所知,listenTo和 stopListening应该替换 on和 off分别。我理解正确吗?有没有什么情况on/off应该使用而不是 listenTo/stopListening ? 编辑:
我是一名优秀的程序员,十分优秀!