且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

音频识别问题

更新时间:2022-10-15 15:11:15

异常的类型是什么


你可以解释一下


I have a project for recognition. It works, but if i use this project how a class and call its methods from other class i have a problem with exception on line  sre = new SpeechRecognitionEngine(ri.Id); :

No recognizer of the required ID found.

   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.SystemMode = SystemMode.OptibeamArrayOnly;            speechRecognizer = CreateSpeechRecognizer();                using (Stream s = source.Start())                {                    speechRecognizer.SetInputToAudioStream(                        s, new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));                    Console.WriteLine("Recognizing speech. Say: 'purple', 'green' or 'blue'. Press ENTER to stop");                    speechRecognizer.RecognizeAsync(RecognizeMode.Multiple);                    Console.ReadLine();                    Console.WriteLine("Stopping recognizer ...");                    speechRecognizer.RecognizeAsyncStop();                }


 private static SpeechRecognitionEngine CreateSpeechRecognizer()        {            RecognizerInfo ri = GetKinectRecognizer();                        SpeechRecognitionEngine sre;            //if (ri == null) return 0;            sre = new SpeechRecognitionEngine(ri.Id);            var colors = new Choices();            colors.Add("red");            colors.Add("green");            colors.Add("blue");            var gb = new GrammarBuilder { Culture = ri.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.SpeechRecognized += SreSpeechRecognized;            sre.SpeechHypothesized += SreSpeechHypothesized;            sre.SpeechRecognitionRejected += SreSpeechRecognitionRejected;            return sre;        }


  private static RecognizerInfo GetKinectRecognizer()        {            Func<RecognizerInfo, bool> matchingFunc = r =>            {                string value;                r.AdditionalInfo.TryGetValue("Kinect", out value);                return "True".Equals(value, StringComparison.InvariantCultureIgnoreCase) && "en-US".Equals(r.Culture.Name, StringComparison.InvariantCultureIgnoreCase);            };            return SpeechRecognitionEngine.InstalledRecognizers().Where(matchingFunc).FirstOrDefault();        }

what is the type of the exception

could you please explain