【问题标题】:onStartListening when is it called?onStartListening 什么时候调用?
【发布时间】:2014-05-15 13:16:21
【问题描述】:

我正在开发一个 android 应用程序,该应用程序基本上是将语音转换为文本作为后台进程的服务,我从 How to register a custom speech recognition service? 获得帮助,但我无法知道何时调用 onStartListening()

签名:

protected void onStartListening(Intent recognizerIntent, Callback listener)

任何人都可以帮助或帮助我在该链接中给出的代码中添加更多语句,以便我可以识别文本中的语音并将其显示在 toast 中吗?

【问题讨论】:

    标签: java android service speech-recognition voice-recognition


    【解决方案1】:

    一般来说,有两种应用:

    • 指导用户将音频转换为文本的应用程序,但实际上并未实现语音识别部分,而只是执行 UI 部分(麦克风按钮、VU 可视化器)(我们称它们为 app1 );
    • 实际将音频转换为文本的应用程序,无论是在设备上还是通过调用云服务,并让自己可供 app1 使用,它们扩展了 RecognitionService(让我们称之为 应用程序2)。

    既然你提到了“toast”(即一个 UI 元素),我猜你想实现 app1

    app1 需要做以下事情:

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

    根据指定的intent并考虑用户设置,Android 会找到合适的app2 来为app1 提供服务。

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

    作为 app1 的作者,您只需使用各种 Intent Extras 向识别器提供输入详细信息,使用接口RecognitionListener 的方法处理识别器的输出,然后使用startListening启动app2

    【讨论】:

    • @TàýýábHùsśâįñ 您能否更详细地更新您的问题,例如您对onStartListening 的实现以及如何在清单中注册服务。从当前版本的问题来看,我不太明白你在哪里卡住了......
    • 我在使用 RecognitionService 扩展时创建了一个服务。启动服务时,永远不会调用 onStartListening 方法。它将如何开始工作。 ?
    • @GauravArora 你能否提供更多细节,最好是作为新问题的一部分
    猜你喜欢
    • 2019-12-25
    • 2014-03-27
    • 2010-10-18
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多