改进语音识别,C#
我使用System.Speech library来识别语音,但它通常能识别非常不同的语音改进语音识别,C#,c#,speech-recognition,speech-to-text,C#,Speech Recognition,Speech To Text,我使用System.Speech library来识别语音,但它通常能识别非常不同的语音 SpeechRecognizer_rec = new SpeechRecognizer(); DictationGrammar grammar = new DictationGrammar(); grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized); _
SpeechRecognizer_rec = new SpeechRecognizer();
DictationGrammar grammar = new DictationGrammar();
grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized);
_rec.LoadGrammar(grammar);
SpeechRecognizer\u rec=newspeechrecognizer();
听写语法=新听写语法();
grammar.SpeechRecognized+=新事件处理程序(grammar\u SpeechRecognized);
_记录加载语法(语法);
我怎样才能改善这种关系?它和语法课有关系吗 您必须限制语音识别引擎使用的模型(基本上是从语音输入到允许的英语文本输出的映射),以获得高置信度输出。你的模型越小,你的结果通常就越好,因为识别器在两个发音相似的单词之间选择错误单词的机会就越小 此简化示例,即只能识别1到3之间的数字:
SpeechRecognizer rec = new SpeechRecognizer();
Choices c = new Choices();
c.Add("one");
c.Add("two");
c.Add("three");
var gb = new GrammarBuilder(c);
var g = new Grammar(gb);
rec.LoadGrammar(g);
如果你能负担得起要求用户参加培训的费用,那么培训过程肯定会给你带来更好的结果。我自己用过(而且我有口音),这大大提高了我应用程序中识别的准确性。
至少你可以自己试试(控制面板,语音识别,训练你的计算机更好地理解你)。事实上,训练或减少模型(当然也可以在一个安静的地方使用你的应用程序,使用更好的麦克风)是提高结果准确性的唯一方法。听写语法产生了奇怪的结果,我尝试了SpeechRecognitionEngine的不同属性,但几乎没有成功。 试行: SpeechRecognitionEngine.BabbleTimeOut
但是,为了防止错误,请先阅读使用方法。但是我需要识别用户所说的话。@Kaan:通常对于呼叫中心语音识别,模型仅限于特定的选择,例如“我想要我的蛋糕”或“也吃它”,您必须建立自定义语法以允许不同的组合。如果您想坚持使用标准型号,则无法提高准确性-除非您根据特定的扬声器(或口音)重新训练型号,这是不实际的,甚至通常是不可行的。您能以编程方式培训语音识别引擎吗?看起来您可以使用SAPI。@NuWin您能提供一些指示,说明如何使用SAPI以编程方式培训语音识别引擎吗?