gpt4 book ai didi

java - SpeechRecognizer onResults 未触发

转载 作者:行者123 更新时间:2023-12-01 06:19:34 27 4
gpt4 key购买 nike

我有一个相当奇怪的问题。我有一个 Android 应用程序,我使用 SpeechRecognizer 类为其添加语音识别。我创建了实现 RecognitionListener 的类,它只打印每个事件的日志消息。一切看起来都很好。 onReadyForSpeech 被触发,onBeginningOfSpeech 被触发,onEndOfSpeech 被触发。

但是,一个重要的事件不会被触发,onResults :p

所以在夏天,一切看起来都很好,没有抛出异常,并且我收到事件告诉我它已成功启动并停止监听。我是否遗漏了一些额外的 Intent ,告诉 SpeechRecognizer 它需要将结果发送到 onResults 或类似的东西?

我设置 Intent 如下

    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5);

SpeechRecognizer 的完成方式为

    SpeechRecognizer speech = SpeechRecognizer.createSpeechRecognizer(this);
speech.setRecognitionListener(this);

我开始听

speech.startListening(intent);

最佳答案

我遇到的问题与问题陈述中所述完全一致。我有两种可用的语音识别服务(Google 和另外一种)。我在内部类中出错了:

private final Handler handler = new Handler();
private final Runnable stopListeningRunnable = new Runnable() {
@Override
public void run() {
speechRecognizer.stopListening();
}
};

我没有将其写在使用它的方法中,而是将其放在内部类的开头。

这会停止对 onResults 的调用。一旦我将其内联到实际使用它的方法中,onResults 就可以正常工作。

希望这对你有帮助..:)

关于java - SpeechRecognizer onResults 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com