破解 EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS?

Hack for EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS?

我正在开发一个 android 应用程序,它提供连续的语音识别。

除了最后一个词发音后的静音延迟大约 6 秒外,一切正常。

我发现这是 Android 中的一个已知错误,但是是否有任何替代方案/技巧/解决方法?

Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

intent.putExtra (RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, Locale.getDefault ());
intent.putExtra (RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
intent.putExtra (RecognizerIntent.EXTRA_CONFIDENCE_SCORES, true);
intent.putExtra (RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 0);
intent.putExtra (RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 0);
intent.putExtra (RecognizerIntent.EXTRA_CALLING_PACKAGE, getApplication ().getPackageName ());

speechRecognizer.startListening (intent);

所以基本上RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS根本没有考虑

有什么办法可以解决吗?或替代 API ? (我用过 PocketSphinx,但无法使其适用于词典外的句子和单词)。

我建议试试这个:

mNoSpeechCountDown = new CountDownTimer(COUNT, COUNT) {

        @Override
        public void onTick(long l) {

        }

        @Override
        public void onFinish() {
            Log.v(TAG, "CountDown Finished");
            processResults(mResult + ' ' + mPartialResult);
            mListener.restartListener();

        }
    };
    mNoSpeechCountDown.start();

}

并在每次 onPartial 时重新开始倒计时当然这需要您实现自己的 RecognitionListener。

ContinuousRecognizer implements RecognitionListener

    08-13 15:50:22.680 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:22.680 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the
08-13 15:50:22.689 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:22.689 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the
08-13 15:50:22.765 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:22.765 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the
08-13 15:50:22.833 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:22.833 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the
08-13 15:50:22.970 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:22.970 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime
08-13 15:50:23.155 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:23.155 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime
08-13 15:50:23.327 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:23.327 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime
08-13 15:50:23.412 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:23.412 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series
08-13 15:50:23.734 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:23.734 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I
08-13 15:50:23.953 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:23.953 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I
08-13 15:50:24.523 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:24.523 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I want me Direct
08-13 15:50:24.754 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:24.754 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I
08-13 15:50:25.350 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:25.351 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I will
08-13 15:50:25.505 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:25.505 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I
08-13 15:50:25.835 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:25.837 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I
08-13 15:50:26.046 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:26.047 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I want you to
08-13 15:50:26.365 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: OnPartial
08-13 15:50:26.365 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: by the way for the lifetime series should I want you to direct
08-13 15:50:30.865 30790-30790/com.praktikum.bp.myambient V/ContinuousRecognizer: CountDown Finished