使用特定词语(例如“Hi Galaxy”或“Ok Google”)唤醒安卓手机。

9
我希望能通过说出例如“你好,乔治”来唤醒安卓手机,但是没有找到有用的答案。 首先,这个功能需要安卓应用作为后台服务进行监听吗? 如果有人知道如何实现这个问题或者有任何线索,我会非常感激。 最好的问候 谢谢

2
“语音唤醒”是Moto X的一个功能,它使用特殊的CPU在设备处于待机状态时监听语音命令,以避免大量耗电。要很好地实现此功能,您需要构建自己的设备和自定义ROM。 - Morrison Chang
2个回答

7

你好,我是Open Mic+的开发者,网址是http://OpenMic.RSenApps.com,它能够实现与你想要的功能非常相似的操作。但事实上,这比听起来要复杂得多,我才刚刚开始实现真正高效的系统。所以,主要问题是你想走多远?你可以使用Google语音识别,但最终它会出现很多错误,并且长期来看并不可靠,或者你可以实现自己的语音识别,这正是我正在进行的过程...


3

CMUSphinx最近在Android平台上实现了连续听取功能。您可以在wiki页面上找到演示。

您可以配置一个或多个关键词进行监听,其中默认关键词是“oh mighty computer” 。您还可以配置检测阈值。目前支持的语言包括美式英语和其他一些语言(法语、西班牙语、俄语等)。您可以为自己的语言训练自己的模型。

听取很简单,您只需创建一个识别器并添加关键词搜索即可:

recognizer = defaultSetup()
        .setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
        .setDictionary(new File(modelsDir, "lm/cmu07a.dic"))
        .setKeywordThreshold(1e-5f)
        .getRecognizer();

recognizer.addListener(this);
recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE);
switchSearch(KWS_SEARCH_NAME);

并定义一个监听器:

@Override
public void onPartialResult(Hypothesis hypothesis) {
    String text = hypothesis.getHypstr();
    if (text.equals(KEYPHRASE))
      //  do something
} 

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