public BotAudioProvider(RadioInformation receivedRadioInfo, ConcurrentQueue <byte[]> responseQueue) { LogClientId = receivedRadioInfo.name; _speechAudioProvider = new BufferedWaveProvider(PcmMono16Ks16Le) { BufferDuration = new TimeSpan(0, 1, 0), DiscardOnBufferOverflow = true, ReadFully = false }; _silence = new byte[_speechAudioProvider.WaveFormat.AverageBytesPerSecond * 2]; SpeechRecognitionListener = new SpeechRecognitionListener(_speechAudioProvider, responseQueue, receivedRadioInfo); }
private bool startEnqueueAudio = true; //a flag to indicate whether to put received audio in the queue. public EBookSpeechRecognizer(SpeechRecognitionListener listener) { this.listener = listener; if (recEngine == null) { recEngine = new SpeechRecognitionEngine(); recEngine.EndSilenceTimeout = TimeSpan.FromMilliseconds(UNAMBIGUOUS_SILENCE_TIMEOUT); recEngine.EndSilenceTimeoutAmbiguous = TimeSpan.FromMilliseconds(AMBIGUOUS_SILENCE_TIMEOUT); recEngine.SpeechRecognized += recEngine_SpeechRecognized; recEngine.SpeechHypothesized += recEngine_SpeechHypothesized; recEngine.SpeechRecognitionRejected += recEngine_SpeechRecognitionRejected; recEngine.SpeechDetected += recEngine_SpeechDetected; recEngine.AudioStateChanged += recEngine_AudioStateChanged; recEngine.LoadGrammarCompleted += recEngine_LoadGrammarCompleted; recEngine.RecognizeCompleted += recEngine_RecognizeCompleted; recEngine.AudioLevelUpdated += recEngine_AudioLevelUpdated; } }