5

我试图了解RecognitionServiceRecognitionService.Callback的功能。我对这个框架很陌生,想知道如何在 RecognitionService 中调用 onStartListening() 函数。我看到帖子如何注册自定义语音识别服务?但是我在所有主要函数中都插入了日志消息,以查看何时调用了哪个函数。

我还查看了 sdk 中的示例应用程序,但它在解释事情如何发生方面做得非常糟糕。我想从活动中调用 startService。

我使用以下意图

Intent startServiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    startServiceIntent.setClass(this, SimpleVoiceService.class);

    startService(startServiceIntent);

有人可以帮我完成这项工作。如果有人能指点我这方面的教程,或者描述如何做到这一点的一般流程,那就太好了。

非常感谢。

4

1 回答 1

1

基本思想是用于SpeechRecognizer连接到RecognitionService用户在一般 Android 设置中选择的。

SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(context);
sr.setRecognitionListener(new RecognitionListener() {
    @Override
    public void onResults(Bundle b) { /* ... */ }

    // other required methods
});

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "");
sr.startListening(intent);

您必须提供RecognitionListener-methods 的实现,允许您更新 UI 以响应语音识别事件(用户开始说话、部分结果可用、用户停止说话、转录仍在进行、发生错误等)。

请参阅某些键盘应用程序的源代码中的完整实现,例如Hacker's Keyboard 中的 VoiceInput 类

于 2012-07-26T14:44:27.080 回答