我想创建一个应用程序,它将从用户那里获取命令并在Edittext(或任何其他容器)中显示它。我正在使用谷歌语音识别,但它向我展示了引擎听到的一堆句子......我希望从所有这些选项中获得正确的句子,而不将列表显示在Edittext中。
如果可能的话,我会在连续的句子中这样做(比如,嗨朋友。请来参加会议,你迟到了)。请帮帮我。
先谢谢:)
答案 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);
}