当前位置: 首页 > 编程语言 > C#

C#语音识别多个单词?(承认吧)分享

时间:2023-04-10 17:27:49 C#

C#语音识别多词?(承认的话)我正在构建一个可以识别用户多个单词的应用程序;从而用一个可识别的词组成一个句子。这就是我现在所拥有的:SpeechSynthesizersp=newSpeechSynthesizer();publicForm1(){InitializeComponent();}privatevoidbtnListen_Click(objectsender,EventArgse){ChoicessList=newChoices();sList.Add(newString[]{"what","is","a","car"});语法gr=newGrammar(newGrammarBuilder(sList));recog.RequestRecognizerUpdate();recog.LoadGrammar(gr);recog.SpeechRecognized+=sRecognize_SpeechRecognized;recog.SetInputToDefaultAudioDevice();recog.RecognizeAsync(RecognizeMode.Multiple);recog.SpeechRecognitionRejected+=sRecognize_SpeechRecognitionRejected;}privatevoidsRecognize_SpeechRecognitionRejected(objectsender,SpeechRecognitionRejectedEventArgse){sentenceBox.Text="抱歉,我无法识别";}privatevoidsRecognize_SpeechRecognized(objectsender,SpeechRecognizedEventArgse){sentenceBox.Text=e.Result.Text.ToString();但是,此代码一次只能识别一个单词,即使我编辑我的代码来执行此操作:文本.ToString();当我说“whatisacar”时,应用程序无法在我说出时不休息就继续识别这个词。我可以更改什么以使程序能够识别使用这些单词构建的整个句子,而不会在说出句子时出现语音中断?需要输出:我完成了这句话:WhatisacarAppdisplay:Whatisacar完美示例:GoogleSpeechRecognitionGoogle使用他们词库中提供的词开发了一个句子非常感谢:)它识别了一个词,因为你构建了语法不正确。由于您构建的语法包括选择单词“what”、“is”、“a”、“car”,因此它可以准确识别其中一个单词。您可能希望阅读语法介绍和相关文档。http://msdn.microsoft.com/en-us/library/hh378438(v=office.14).aspx如果你想构建描述短语的语法,你可以像这样使用GrammarBuilder:Grammargr=newGrammar(newGrammarBuilder("什么是汽车"));这个语法识别一个短语。要了解Choices的工作原理,您可以阅读有关Choices的文档:http://msdn.microsoft.com/en-us/library/microsoft.speech.recognition.choices(v=office.14).aspx这个答案可能是有点晚了,但我还没有在其他任何地方找到这个问题的实际答案。所以为了节省别人的时间和挫折感,我是这样做的。使用系统线程;使用系统语音;使用System.Speech.Synthesis;使用System.Speech.Recognition;namespaceSpeachTest{publicclassGrammerTest{staticvoidMain(){选择choiceList=newChoices();选择列表。Add(newstring[]{"what","is","a","car","are","you","robot"});GrammarBuilder生成器=newGrammarBuilder();builder.Append(choiceList);语法grammar=newGrammar(newGrammarBuilder(builder,0,4));//将识别最少0个选项,最多4个选项SpeechRecognizerspeechReco=newSpeechRecognizer();speechReco.LoadGrammar(语法);}}}这里的关键是行newGrammarBuilder(builder,0,4)这告诉语音识别器识别构建器最多可以重复元素4次,最小值为零。所以它现在会识别“什么是汽车”如果你想要超过4次重复,只需将newGrammarBuilder(builder,0,4)替换为newGrammarBuilder(builder,0“你想要的重复次数”)about详情,请参考这个GrammarBuilder(builder,minRepeat,maxRepeat)以上是C#学习教程:C#SpeechRecognitionMultipleWords?(一言以蔽之)如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: