java - 开发类似于 "Google now"的应用程序-是否可以在没有按键输入的情况下使用语音识别?

标签 java android speech-recognition text-to-speech google-now

我正在尝试开发一个使用TTS 引擎和语音识别的很酷的应用程序。到目前为止还可以,但我想要更多。我想创建一个服务(我认为服务是正确的方式),它总是“倾听”,当有人说 “ok google” 或其他东西时,语音识别开始,比如 google现在。例如,如果您说 "ok google" google 现在启动。我不知道从哪里开始,所以我直接在这里问是否可能。我试着在 [这里] ( Listening for keywords at all times, like "Ok google" on 4.4 ) 查看这个线程,最后一个答案谈到了服务,正如我所想的那样。有人可以帮我处理代码吗?

例如,这是通过点击按钮启动语音识别的代码:

/**
 * Instruct the app to listen for user speech input
 */
private void listenToSpeech() {
    //start the speech recognition intent passing required data
    Intent listenIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    //indicate package
    listenIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
    //message to display while listening
    listenIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say a word!");
    //set speech model
    listenIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    //specify number of results to retrieve
    listenIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10);
    //start listening
    startActivityForResult(listenIntent, VR_REQUEST);
}

您认为可以仅通过语音启动 listenIntent 而无需按任何按钮吗?这就是我的意思。

最佳答案

(更新于 06.01.2018:在之前的答案中添加了一些内容)

可以引用Saiy , 以前 Utter

此应用使用热词检测作为“Google Now”。

并且Android没有提供这样的API来执行这样的操作。

Saiy 应用现已开源 repository here .从我在代码中看到的一点点来看,它似乎已经使用 CMU Pocketshinx 实现了功能。

不要忘记发布您的发现。

注意- 一直在后台收听非常耗费 CPU 和电池。

关于java - 开发类似于 "Google now"的应用程序-是否可以在没有按键输入的情况下使用语音识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400462/

相关文章:

C# 调制解调器和 AT 命令

azure - 牛津语音项目 API 的客户端 ID

java - 如何在使用reactive-postgresql-client时将不确定的参数传递给preparedQuery?

java - Android 程序失败。没有错误,没有日志猫。没有任何线索

android - android中具有不同颜色词的自定义TextView

java - LibGDX 简单的二维 block 图渲染

java - 在 Play 框架中测试 Controller

java - 如何在 Netbeans 中使用打开 WAR 文件夹

android - eclipse : Specify multiple res directories like specifying multiple src directories

audio - YouTube语音识别-音频中包含特殊单词?