繁体   English   中英

如何从Google的“语音操作”获得语音识别结果?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM