java – 如何在我的应用程序中实现Google语音输入?
我正在尝试在我的应用程序中添加启动Google语音打字(或默认语音识别)的按钮.我试过跟着
this tutorial.这个教程是令人难以置信的迷惑我.我导入了.jar,并将必要的权限,服务和活动添加到我的清单.但我似乎无法弄清楚如何“把它放在一起”.我在想:
我应该从我的主要活动中的按钮点击调用inputMethodService?还是我的inputMethodService实质上成为我的主要活动? 我该如何让这个工作? 解决方法
如果你想遵循你提到的教程,那么你需要首先实现一个IME(输入法编辑器),参见
http://developer.android.com/guide/topics/text/creating-input-method.html
这个IME可以有一个普通的键盘外观,或只包含一个麦克风按钮. 您的应用程序的用户首先必须单击文本字段才能启动IME. (请注意,设备上可能安装了几个IME,并且必须在“设置”中显式启用).然后用户将必须单击麦克风按钮才能触发语音识别. 本教程提供了一个可让您直接致电Google识别器的jar.如果您通过SpeechRecognizer界面(http://developer.android.com/reference/android/speech/SpeechRecognizer.html)呼叫识别器,那么用户可以决定是使用Google还是其他内容,这将会更好一些. SpeechRecognizer被给予支持方法onPartialResults的监听器,它允许您在用户说话时监视识别假设.这取决于你如何显示它们.但是请注意,SpeechRecognizer的规范不承诺此方法被调用.这取决于识别器服务的实现.关于Google的实施:它支持什么不断变化,没有公开的API,甚至没有发布说明. 您可能可以重用我的项目K?nele(http://kaljurand.github.io/K6nele/about/),其中包含SpeechRecognizer和使用它们的IME的两个实现.其中一个实现使用Kaldi GStreamer服务器(https://github.com/alumae/kaldi-gstreamer-server)可以连续识别任意长的音频输入.您将需要将您自己的服务器端口设置为您想要识别的语言(除非您希望使用K?nele默认使用的爱沙尼亚语服务器). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |