我应该从我的主要活动中的按钮点击调用inputMethodService?还是我的inputMethodService实质上成为我的主要活动?
> IME是什么意思?我尝试Google,但它给我的定义没有帮助我的理解.
>当我尝试将整个DemoInputMethodService代码复制并粘贴到我当前的活动中时,我收到一个错误,指出我不能在此活动内扩展InputMethodService. (其中回头问一个问题)
我该如何让这个工作?
解决方法
这个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默认使用的爱沙尼亚语服务器).