Тон DTMF в RecognitionListener.onReadyForSpeech () ошибочно принимают за речь

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 .

Есть ли способ обойти это?

9
задан srf 20 April 2011 в 17:56
поделиться