Распознавание голоса в приложении
Программа при распознавании голоса, выводит на экран массив похожих слов. Возможно ли сделать так, чтобы выводился не массив слов,а именно сказанное слово? Если да, то как?
emailText = findViewById(R.id.email_text);
private static final int Print_Words = 100;
Button mButton = (Button) findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//Вызываем RecognizerIntent для голосового ввода и преобразования голоса в текст:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Скажите слово для распознавания");
startActivityForResult(intent, Print_Words);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//Проверяем успешность получения обратного ответа:
if (requestCode == Print_Words && resultCode == RESULT_OK) {
//Как результат получаем строковый массив слов, похожих на произнесенное:
ArrayList<String> result=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
//и отображаем их в элементе TextView:
assert result != null;
emailText.setText(result.toString());
}
super.onActivityResult(requestCode, resultCode, data);
}
Ответы (1 шт):
Автор решения: Unknown3-3-3
→ Ссылка
Так как это массив, то мы просто выводим его первый (в массиве нулевой) результат, потому что на первом (нулевом) месте стоит самый, похожий на сказанный, результат.
emailText.setText(result.get(0));