- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在我的应用程序中添加一个启动 Google 语音输入(或默认语音识别)的按钮。我试过关注 this tutorial .本教程令我非常困惑。我导入了 .jar,并将必要的权限、服务和 Activity 添加到我的 list 中。但我似乎无法弄清楚如何“把它们放在一起”。我想知道:
我怎样才能让它发挥作用?
最佳答案
如果您想按照您提到的教程进行操作,那么您需要先实现一个 IME(输入法编辑器),请参阅 http://developer.android.com/guide/topics/text/creating-input-method.html
此 IME 可以具有常规的键盘外观或仅包含一个麦克风按钮。
您的应用程序的用户首先必须单击文本字段才能启动 IME。 (请注意,设备上可以安装多个 IME,并且必须在“设置”中明确启用它们。)然后用户必须单击麦克风按钮以触发语音识别。
本教程提供了一个 jar,可以让您直接调用 Google 的识别器。如果改为通过 SpeechRecognizer 接口(interface) ( http://developer.android.com/reference/android/speech/SpeechRecognizer.html ) 调用识别器会更好,这样用户可以决定是使用 Google 的还是其他的。
SpeechRecognizer
被赋予一个支持方法 onPartialResults 的监听器,它允许您在用户说话时监控识别假设。这取决于您如何显示它们。但是请注意,SpeechRecognizer
的规范并不保证会调用此方法。这取决于识别器服务的实现。关于 Google 的实现:它支持的内容不断变化,没有宣布,它没有公共(public) API,甚至没有发行说明。
您可以重用我的项目 Kõnele ( http://kaljurand.github.io/K6nele/about/ ),它包含 SpeechRecognizer
的两个实现和一个使用它们的 IME。其中一个实现使用 Kaldi GStreamer 服务器 (https://github.com/alumae/kaldi-gstreamer-server) 提供对任意长音频输入的连续识别。您需要设置自己的服务器实例,将其移植到您想要识别的语言(除非您想使用 Kõnele 默认使用的爱沙尼亚服务器)。
关于java - 如何在我的应用程序中实现 Google 语音输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28413692/
我是一名优秀的程序员,十分优秀!