私のプロジェクトで音声制御を使用するために kinect のオーディオ ストリームにアクセスする際に問題があります。これまでのところ、オーディオ ストリームからの応答はありません。最新のkinect sdkパックがインストールされたxnaを使用しています。
私が使用しているコードは、xna で音声制御を使用する SDK のサンプルからのものですが、コンソール アプリケーションです。
何らかの理由でオーディオストリームが開始されていないと思われるリスナーイベントはトリガーされていませんか?
どんな助けでも大歓迎です。
このコードはInitializeKinect()
私のプログラムのセクションにあります:
// Obtain the KinectAudioSource to do audio capture
KinectAudioSource source = kinectSensor.AudioSource;
source.EchoCancellationMode = EchoCancellationMode.None; // No AEC for this sample
source.AutomaticGainControlEnabled = false; // Important to turn this off for speech recognition
source.Start();
RecognizerInfo ri = GetKinectRecognizer();
if (ri == null)
{
lol = "Could not find Kinect speech recognizer. Please refer to the sample requirements";
}
lol = "Using: {0}"+ ri.Name;
// NOTE: Need to wait 4 seconds for device to be ready right after initialization
using (var sre = new SpeechRecognitionEngine(ri.Id))
{
var colors = new Choices();
colors.Add("Kinect");
colors.Add("test center ");
colors.Add("left");
colors.Add("right");
colors.Add("indirect controls");
colors.Add("gesture control");
colors.Add("exit application");
var gb = new GrammarBuilder { Culture = ri.Culture };
// Specify the culture to match the recognizer in case we are running in a different culture.
gb.Append(colors);
// Create the actual Grammar instance, and then load it into the speech recognizer.
var g = new Grammar(gb);
sre.LoadGrammar(g);
sre.SpeechHypothesized += new EventHandler<SpeechHypothesizedEventArgs>(sre_SpeechHypothesized);
sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
sre.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(sre_SpeechRecognitionRejected);
using (Stream s = source.Start())
{
sre.SetInputToAudioStream(
s, new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
sre.RecognizeAsync(RecognizeMode.Multiple);
}
}