1

私は音声認識を有効にした魔女のプログラムを持っています..

        RecognizerInfo ri = GetKinectRecognizer();

        speechRecognitionEngine = new SpeechRecognitionEngine(ri.Id);

        // Create a grammar from grammar definition XML file.
        using (var memoryStream = new MemoryStream(Encoding.ASCII.GetBytes(fileContent)))
        {
            var g = new Grammar(memoryStream);
            speechRecognitionEngine.LoadGrammar(g);
        }

        speechRecognitionEngine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(speechEngine_SpeechRecognized);
        speechRecognitionEngine.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(speechEngine_SpeechRecognitionRejected);

speechRecognitionEngine.SetInputToAudioStream( sensor.AudioSource.Start(), new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));

        speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);

..

すべて正常に動作しており、SpeechRecognized イベントが正しく発生します。

問題は、骨格データ追跡を有効にすると、

          sensor.SkeletonStream.Enable();
          sensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Seated;
          sensor.SkeletonFrameReady += sensor_SkeletonFrameReady;

音声認識が機能しなくなりました...

あなたの助けを得ることができますか?

どうもありがとう!

4

1 に答える 1

1

オーディオ キャプチャの開始後にスケルトン ストリームが有効になっている場合、オーディオが処理されない バグが原因で、SkeletonStream を有効または無効にすると、Kinect センサーによって返される AudioSource ストリームが停止します。次の命令シーケンスは、オーディオ ストリームを停止します: kinectSensor.Start(); kinectSensor.AudioSource.Start(); // --> これによりオーディオ ストリームが作成されます kinectSensor.SkeletonStream.Enable(); // --> これにより、望ましくない副作用として音声ストリームが停止します

回避策は、呼び出しの順序を逆にするか、SkeletonStream のステータスを変更した後に AudioSource を再起動することです。

        Workaround #1 (start audio after skeleton):
        kinectSensor.Start();
        kinectSensor.SkeletonStream.Enable();
        kinectSensor.AudioSource.Start();

        Workaround #2 (restart audio after skeleton):
        kinectSensor.Start();
        kinectSensor.AudioSource.Start(); // --> this will create an audio stream
        kinectSensor.SkeletonStream.Enable(); // --> this will stop the audio stream as an undesired side effect
        kinectSensor.AudioSource.Start(); // --> this will create another audio stream

ソース - http://msdn.microsoft.com/en-us/library/jj663798.aspx

于 2012-12-29T12:30:42.617 に答える