Android语音识别提示通过音频而不仅仅是文本

Posted

技术标签:

【中文标题】Android语音识别提示通过音频而不仅仅是文本【英文标题】:Android speech recognize prompt by audio instead of just text 【发布时间】:2017-01-20 11:41:24 【问题描述】:

目前我有语音识别功能,但RecognizerIntent.EXTRA_PROMPT 仅在移动设备和可穿戴手表上显示为文本。

是否有任何方法或其他选项可以提示说话(作为音频播放)?

已经尝试过VoiceInteraction API,但它仅限于选择一个选项,并且必须通过系统语音命令之一启动。

    private static final int SPEECH_REQUEST_CODE = 0;

 // Create an intent that can start the Speech Recognizer activity
    private void displaySpeechRecognizer() 
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "How can I help you?");
        // Start the activity, the intent will be populated with the speech text
        startActivityForResult(intent, SPEECH_REQUEST_CODE);
    

    // This callback is invoked when the Speech Recognizer returns.
    // This is where you process the intent and extract the speech text from the intent.
    @Override
    protected void onActivityResult(int requestCode, int resultCode,
                                    Intent data) 
        if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) 
            List<String> results = data.getStringArrayListExtra(
                    RecognizerIntent.EXTRA_RESULTS);
            String spokenText = results.get(0);
            Log.d(TAG, "spokenText: " + spokenText);
            // Do something with spokenText
        
        super.onActivityResult(requestCode, resultCode, data);
    

【问题讨论】:

【参考方案1】:

我认为你走上了正轨。您必须使用 Voice Interaction API 来进行语音交互,Google Voice Actions 可以识别许多口头和键入的动作请求,并为它们创建 android 意图。

根据语音交互API的录像:

无论您的应用使用系统语音还是自定义语音actions,有时应用可能会在执行操作之前询问用户一个后续问题。例如,当用户说“播放一些音乐”时音乐应用程序启动后,它可能想问用户“什么流派?”或者,当家庭自动化应用听到用户说“OK Google,打开灯”时,它可能想问“哪个房间?”语音交互 API 让 Android M 应用可以提出类似的后续问题。

在代码实验室中,您将了解如何使用语音交互 API 将语音交互添加到您的应用中。 Voice Interaction API 允许您应用的用户仅使用他们的声音来确认操作并从选项列表中进行选择。

注意:

Google Voice Interaction API 允许 Activity 使用语音与用户交互以获取以下输入:

确认操作(例如,“你确定吗?”) 从选项列表中选择

有用的参考资料:

Introduction to Voice Interaction API (100 Days of Google Dev) Google Code Lab for Voice Interaction Android Speech To Text Tutorial

【讨论】:

感谢@Mr.Rebot 的回答和链接。我已经尝试了所有这些,到目前为止,自定义语音尚未向所有人开放,请查看developers.google.com/voice-actions/custom-actions。而“Android Speech to Text”只会提示文本不作为音频播放。【参考方案2】:

你先播放音频how to play audio file in android

音频结束后,您开始语音识别。

【讨论】:

以上是关于Android语音识别提示通过音频而不仅仅是文本的主要内容,如果未能解决你的问题,请参考以下文章

VC++基于微软语音引擎开发语音识别总结

语音识别,录制的音频去哪了?

保存 Android Stock 语音识别引擎的音频输入

蓝牙延迟和 Android 音频提示

Python调用百度接口(情感倾向分析)和讯飞接口(语音识别关键词提取)处理音频文件

Python:在语音识别中获取系统音频而不是麦克风