onStartListening什么时候被调用?

3

我正在开发一款安卓应用,它基本上是一个将语音转换为文本作为后台进程的服务。我正在得到如何注册自定义语音识别服务?的帮助,但我无法确定何时调用onStartListening()

签名:

protected void onStartListening(Intent recognizerIntent, Callback listener)

有没有人能帮我在给定的链接代码中添加更多语句,以便我可以将语音识别为文本并在toast中显示出来?

1个回答

0

一般来说,有两种类型的应用程序:

  • 将用户引导转换音频为文本,但实际上并不实现语音识别部分,只是做UI部分(麦克风按钮、VU可视化器)(我们称之为app1);
  • 实际上将音频转换为文本,无论是在设备上还是通过调用云服务,并使自己对app1可用,它们扩展了RecognitionService(我们称之为app2)。

由于您提到了“toast”(即UI元素),我猜您想要实现app1

app1需要执行以下操作:

Intent intent = ...
SpeechRecognizer recognizer = ...
recognizer.setRecognitionListener(new RecognitionListener() { ... });
recognizer.startListening(intent)

基于指定的意图并考虑用户设置,Android会找到一个合适的app2来为app1提供服务。

app2扩展了抽象类RecognitionService,即它需要实现一堆方法,其中包括onStartListening。当app1调用startListening时,后者会被Android调用。

作为app1的作者,您只需要使用各种意图附加项提供识别器的输入详细信息,使用接口RecognitionListener的方法处理识别器的输出,并使用startListening启动app2


@TàýýábHùsśâįñ,您能否在问题中提供更多细节,例如您对onStartListening的实现以及如何在清单中注册服务。从当前版本的问题中,我不太明白您遇到了什么问题... - Kaarel
我创建了一个服务,并扩展了RecognitionService。当服务启动时,onStartListening方法从未被调用。它该如何开始工作? - Gaurav Arora
@GauravArora 你能提供更多细节吗?最好作为一个新问题的一部分。 - Kaarel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接