#android
#Android
Вопрос:
в softkeyboard у меня есть опция преобразования речи в текст, когда я говорю, она показывает список предложений, когда я выбираю текст, мне нужно заполнить мой EditText этим текстом, как я могу это сделать, я вижу класс SpeechRecognizer, я не знаю, как я могу это использовать, пожалуйста, помогите мне
SpeechRecognizer rec=SpeechRecognizer.createSpeechRecognizer(context);
RecognitionListener listener = new RecognitionListener() {
@Override
public void onRmsChanged(float rmsdB) {
}
@Override
public void onResults(Bundle results) {
ArrayList<String> voiceResults = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
}
@Override
public void onReadyForSpeech(Bundle params) {
// TODO Auto-generated method stub
}
@Override
public void onPartialResults(Bundle partialResults) {
}
@Override
public void onEvent(int eventType, Bundle params) {
}
@Override
public void onError(int error) {
}
@Override
public void onEndOfSpeech() {
}
@Override
public void onBufferReceived(byte[] buffer) {
}
@Override
public void onBeginningOfSpeech() {
}
};
rec.setRecognitionListener(listener);
Ответ №1:
Предполагая, что ваша правка текста называется «te»:
public void onResults(Bundle results) {
ArrayList<String> voiceResults = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
StringBuilder sb = new StringBuilder();
for(String p: voiceResults) {
sb.append(p);
sb.append("n"); } te.setText(sb.toString());
}
Обычно вас интересует только первый результат (т. е. voiceResults (0)), поскольку это наиболее вероятное совпадение, но приведенный выше код показывает их все, чтобы вы могли видеть, что возвращается.