Google Voice Search идет со значительной задержкой с момента его вызова через startActivityForResult () до отображения диалогового окна, готового принять вашу речь.
Это требует, чтобы пользователь всегда смотрел на экран, ожидая отображения диалогового окна, прежде чем говорить.
Итак, я подумал о создании звукового сигнала вместо диалогового окна, реализовав RecognitionListener и воспроизведя тон DTMF в onReadyForSpeech (), как показано в следующем фрагменте:
@Override
public void onReadyForSpeech(Bundle params) {
Log.d(LCTAG, "Called when the endpointer is ready for the user to start speaking.");
mToneGenerator.startTone(ToneGenerator.TONE_DTMF_1);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
Log.e(LCTAG, "InterruptedException while in Thread.sleep(50).");
e.printStackTrace();
} // SystemClock.sleep(50);
mToneGenerator.stopTone();
}
Тон звучит красиво, но ... это также " слышен »микрофоном, поступает в службу распознавания голоса и всегда генерирует ошибку распознавания ERROR_NO_MATCH .
Есть ли способ обойти это?