例如,如果用手指敲击,敲击桌子,或移动我的椅子,它会将其作为语音选择.
为什么在世界上它会将背景噪声识别为语音.
我对齐我的手指听起来不像我说的“记事本”!
这是代码
using System;using System.Threading;using System.Speech;using System.Speech.Synthesis;using System.Speech.Recognition;namespace SpeachTest{ public class MainClass { static voID Main() { MainClass main = new MainClass(); SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")); Choices choiceList = new Choices(); choiceList.Add(new string[]{"Open","Close","Then","Volume","Up","firefox","Notepad","Steam","turn","the","Now" } ); GrammarBuilder builder = new GrammarBuilder(); builder.Append(choiceList); Grammar grammar = new Grammar(new GrammarBuilder(builder,10) ); sre.SpeechRecognized += main.sreRecognizedEvent; sre.SpeechDetected += main.sreDetectEvent; sre.SpeechRecognitionRejected += main.sreRejectEvent; sre.RecognizeCompleted += main.sreCompleteEvent; sre.InitialSilenceTimeout = TimeSpan.FromSeconds(0); sre.BabbleTimeout = TimeSpan.FromSeconds(0); sre.EndSilenceTimeout = TimeSpan.FromSeconds(0); sre.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(0); sre.SetinputToDefaultAudioDevice(); sre.LoadGrammar(grammar); while(true){ sre.Recognize(); } } voID sreRecognizedEvent(Object sender,SpeechRecognizedEventArgs e){ Console.Write("Reconized ~ " + e.Result.Text + " ~ with confIDence " + e.Result.ConfIDence); Console.Writeline(); } voID sreDetectEvent(Object sender,SpeechDetectedEventArgs e){ Console.Writeline("Detected some type of input"); } voID sreRejectEvent(Object sender,SpeechRecognitionRejectedEventArgs e){ Console.Writeline("Rejected input ~ " + e.Result.Text) ; } voID sreCompleteEvent(Object sender,System.Speech.Recognition.RecognizeCompletedEventArgs e){ Console.Writeline("Completed Recongnization"); }}}解决方法 避免使用任何过滤算法,您可以检查当前显示的 Confidence属性.它介于0.0和1.0之间,其中1非常有信心.我发现0.7效果很好,但你可以搞砸试错.
voID sreRecognizedEvent(Object sender,SpeechRecognizedEventArgs e){ if(e.Result.ConfIDence >= 0.7) { Console.Write("Reconized ~ " + e.Result.Text + " ~ with confIDence " + e.Result.ConfIDence); Console.Writeline(); } }总结
以上是内存溢出为你收集整理的c# – SpeechRecognition将背景噪声识别为语音全部内容,希望文章能够帮你解决c# – SpeechRecognition将背景噪声识别为语音所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)