private void startAudio()
{
var audioSource = this.sensor.AudioSource;
audioSource.BeamAngleMode = BeamAngleMode.Adaptive;
// This should be off by default, but just to be explicit, this MUST be set to false.
audioSource.AutomaticGainControlEnabled = false;
var kinectStream = audioSource.Start();
this.preSpeechRecognizer.SetInputToAudioStream(
kinectStream, new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
// Keep recognizing speech until window closes
this.preSpeechRecognizer.RecognizeAsync(RecognizeMode.Multiple);
this.postSpeechRecognizer.SetInputToAudioStream(
kinectStream, new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
// Keep recognizing speech until window closes
this.postSpeechRecognizer.RecognizeAsync(RecognizeMode.Multiple);
sensor = (from sensorToCheck in KinectSensor.KinectSensors where sensorToCheck.Status == KinectStatus.Connected select sensorToCheck).FirstOrDefault();
sensor.Start();
source = sensor.AudioSource;
source.EchoCancellationMode = EchoCancellationMode.None; // No AEC for this sample
source.AutomaticGainControlEnabled = false; // Important to turn this off for speech recognition
ri = System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers().FirstOrDefault();
recoEngine = new System.Speech.Recognition.SpeechRecognitionEngine(ri.Id);
customDictationGrammar = new System.Speech.Recognition.DictationGrammar();
customDictationGrammar.Name = "Dictation";
customDictationGrammar.Enabled = true;
recoEngine.LoadGrammar(customDictationGrammar);
recoEngine.SpeechRecognized += new EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs>(recoEngine_SpeechRecognized);
s = source.Start();
recoEngine.SetInputToAudioStream(s, new System.Speech.AudioFormat.SpeechAudioFormatInfo(System.Speech.AudioFormat.EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
recoEngine.RecognizeAsync(System.Speech.Recognition.RecognizeMode.Multiple);
}