Я работаю над приложением для Android, которое принимает голосовой ввод и устанавливает текст результата в TextView
. Хотя язык распознаваемой речи не является английским, в результате текст, который приложение предоставляет, является английским. Проще говоря, цель распознавания речи, которую я создаю, выглядит следующим образом:
Locale locale = new Locale.Builder().setLanguage("bn").setScript("Beng").setRegion("BD").build();
intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,locale);
intent.putExtra(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES,locale);
intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE,locale);
А метод RecognitionListener onResult()
выглядит следующим образом:
public void onResults(Bundle results) {
ArrayList<String> voiceResults = results
.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (voiceResults == null) {
text = "";
Log.e("Listener","No voice results");
} else {
text = voiceResults.get(0);
display.setText(text);
}
}
Я хочуresults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
для возврата ArrayList, состоящего из бенгальских букв.
Ожидаемое поведение:
Токовый выход: