Android 编程:循环语音识别

Posted

技术标签:

【中文标题】Android 编程:循环语音识别【英文标题】:Android Programming: Looping Voice Recognition 【发布时间】:2013-01-21 21:00:56 【问题描述】:

我正在寻找一个定制的 android 应用来帮助一个身体残疾的人。我需要严重依赖语音识别。这个想法是:

    应用(通过语音识别)接受他的讲话 应用程序解析他的讲话并执行他的命令(“给爸爸发电子邮件”、“发短信”、“现在几点了?”等,以及我将添加的其他内容来控制他的电视、灯光等) 执行后,应用等待他的下一个命令(循环回到#1)

我的#1 和#2 工作正常,但我想不出#3 的好方法。我不能让谷歌的语音识别视图无限期地运行,因为它可能在下一个命令之前几个小时。但是“触发器”确实必须基于声音/声音。必须完全解放双手。

理想情况下,该应用只听声音,如果该声音高于某个预先编程的分贝水平,我就会开始语音识别。是否可以不断循环只听噪音,然后在“如此”响亮时做出反应?

有什么想法吗?

谢谢

【问题讨论】:

【参考方案1】:

因此,您希望语音识别能够持续进行。很难做到这一点。但我实现这一点的方法是使用:

   try 
       Thread.sleep(4500);
       mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
     catch (InterruptedException e) 
        // It depends on your app logic what to do with InterruptedException
        // You can process it or rethrow or restore interrupted flag
   

onReady 之后(因此,如果用户在 4.5 秒左右没有说什么,它会重置并显示结果。这对我来说非常有用。

【讨论】:

【参考方案2】:

CMUSphinx 是一个很好的解决方案:

    您可以轻松连续收听,提供语音检测API 您可以提高自定义命令集的准确性 您可以使模型适应用户的声音,从而显着提高准确性

有关在 Android 上使用 CMUSphinx 的更多详细信息,请参阅

http://cmusphinx.sourceforge.net/2011/05/building-pocketsphinx-on-android/

【讨论】:

以上是关于Android 编程:循环语音识别的主要内容,如果未能解决你的问题,请参考以下文章

Android语音播报后台播报语音识别

Android集成讯飞语音百度语音阿里语音识别

java 用于android的语音识别器(语音到文本)

为android mainactivity添加电容语音识别

一个超简单的语音识别编程,听写程序

Android 语音中的关键字识别?