Android语音识别应用

时间:2012-03-03 19:42:47

标签: android

我想创建一个应用程序,它将从用户那里获取命令并在Edittext(或任何其他容器)中显示它。我正在使用谷歌语音识别,但它向我展示了引擎听到的一堆句子......我希望从所有这些选项中获得正确的句子,而不将列表显示在Edittext中。

如果可能的话,我会在连续的句子中这样做(比如,嗨朋友。请来参加会议,你迟到了)。请帮帮我。

先谢谢:)

1 个答案:

答案 0 :(得分:2)

此代码可以连接到“Speak”按钮,并且会收到一个字符串,这与所说的内容最匹配。

开始语音识别活动:

private static final int VOICE_RECOGNITION_REQUEST_CODE = 1;

private void startVoiceRecognitionActivity() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Speak Now");
    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}

收到结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
        ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        if (matches != null && matches.size() > 0) {
            String spokenText = matches.get(0);
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}