[英]How to get speech recognition results from Google's “Voice Actions”?
尝试通过RecognizerIntent.ACTION_WEB_SEARCH
在我的应用中使用Google的“语音操作”。 根据文档,我应该能够通过RecognizerIntent.EXTRA_RESULTS
获得语音识别结果。 似乎在startActivityForResult()
之后立即调用下面代码中的onActivityResult()
,结果还不行。 有人可以帮忙吗? 谢谢!
int VOICE_ACTIONS_CODE = 1234 ;
Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH) ;
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) ;
startActivityForResult(intent, VOICE_ACTIONS_CODE) ;
. . .
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == VOICE_ACTIONS_CODE) {
if(resultCode == RESULT_OK) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS) ;
// The following should print speech recog. results
Log.w("Results from Voice Actions:", result.get(0)) ;
}
}
super.onActivityResult(requestCode, resultCode, data) ;
}
如果结果不是RESULT_OK
是因为某种原因意图不顺利。 您是否在应用程序清单中有互联网连接和相应的权限?
如果没有,请尝试添加它们。
顺便说一句,如果你没有得到RESULT_OK
,你得到的resultCode
值是多少?
@@@@@@@@ EDIT @@@@@@@
现在我完全理解你的问题。
问题是以下几点,就启动与行动意图RecognizerIntent.ACTION_WEB_SEARCH
,它永远不会返回时的结果,根据基准 ,它应该。 它只是在显示“Speak Now”对话框时调用onActivityResult
,它不可能返回语音识别的任何结果。
然而,它触发了相应的行动。 但我同意你的看法,行为不是文档中描述的行为。
对不起,我可以说它看起来像API的实现错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.