диалоговое окно startListening () - PullRequest
0 голосов
/ 21 мая 2018

Я работаю над приложением с Dialogflow .

Приложение работает нормально, кроме слушателя.Я хотел бы, чтобы пользователь прочитал вслух из списка слов, отображаемых на экране.

В настоящее время, когда пользователь нажимает кнопку записи, появляется список слов (готов к чтению), а слушатель не готов.Каждое слово отображается в течение 2 секунд, прежде чем появится следующее.

Существует ли способ отображения слова до тех пор, пока запись не будет завершена до появления следующего слова?

1 Ответ

0 голосов
/ 21 мая 2018

Существует несколько подходов к этому.

  1. Использование таймера Вы можете использовать какой-то таймер обратного отсчета для пользователя.В этом посте обсуждается эта идея подробнее: SpeechRecognizer Time Limit .В этом посте предлагается следующее:

    Лучше всего было бы использовать какой-нибудь таймер, например, CountDownTimer:

     yourSpeechListener.startListening(yourRecognizerIntent);
     new CountDownTimer(2000, 1000) {
    
     public void onTick(long millisUntilFinished) {
         //do nothing, just let it tick
     }
    
     public void onFinish() {
         yourSpeechListener.stopListening();
     }   }.start();
    
  2. Вы можете использовать EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS RecognizerIntent

С его помощью можно контролировать уровень молчания, который распознаватель должен услышать перед остановкой.Есть два параметра, которые могут работать в такой ситуации:

EXTRA_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS или EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS

Оба служат почти одной и той же цели, если есть complete_silence для 100 мс или, возможно, для 200 мс, тогдараспознаватель прекратит прослушивание и впоследствии обработает только что услышанное слово.Например:

        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);          
        intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000);   

или

        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);          
        intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000);   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...