改进语音识别,C#

发布于 2024-10-27 19:11:00 字数 334 浏览 1 评论 0原文

我使用 System.Speech 库来识别语音,但它通常识别的结果非常不同。

SpeechRecognizer_rec = new SpeechRecognizer();
DictationGrammar grammar = new DictationGrammar();

grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized);
_rec.LoadGrammar(grammar);

我怎样才能提高识别能力?它和语法课有关系吗?

I use System.Speech library to able to recognize speech but it usually recognizes very different.

SpeechRecognizer_rec = new SpeechRecognizer();
DictationGrammar grammar = new DictationGrammar();

grammar.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(grammar_SpeechRecognized);
_rec.LoadGrammar(grammar);

How can I improve the recgonition? Does it have a relation with Grammer class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

歌枕肩 2024-11-03 19:11:00

您必须限制语音识别引擎使用的模型(基本上是从语音输入到允许的英语文本输出的映射)以获得高置信度输出。模型越小,一般来说结果就越好,因为识别器在两个发音相似的单词之间挑选错误单词的机会较小。

这个简化的例子只能识别从一到三的数字:

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);

You have to limit the model (basically the mapping from speech input to allowed English text output) used by the speech recognition engine to get high confidence output. The smaller your model is, the better your results will be in general, since there is less chance for the recognizer picking i.e. the wrong word between two similar sounding words.

This simplified example i.e. would only be able to recognize the numbers from one to three:

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);
孤云独去闲 2024-11-03 19:11:00

如果您有能力要求用户参加培训过程,那肯定会给您带来更好的结果。我自己使用过(我有口音),它显着提高了我的应用程序中识别的准确性。
至少你可以自己尝试一下(控制面板、语音识别、训练你的计算机以更好地理解你)。实际上,训练或减少模型(或者当然是在安静的地方使用更好的麦克风使用您的应用程序)是提高结果准确性的唯一方法。

If you can afford to ask users go to the training process that will certainly yield you much better results. I have used for myself (and I have an accent) and it improved significantly the accuracy of the recognition in my applications.
At the very least you can try it yourself (Control Panel, Speech Recognition, Train your computer to better understand you). Really, training or reducing the model (or of course using your app in a quiet place with a better microphone) are the only ways to improve the accuracy of your results.

赠佳期 2024-11-03 19:11:00

DictationGrammar 产生了某种奇怪的结果,我尝试了 SpeechRecognitionEngine 的不同属性,但勉强成功。
试用:
语音识别引擎.BabbleTimeOut
但请先阅读用法以防止错误。

The DictationGrammar yields somehow weird results, I tried out different properties of the SpeechRecognitionEngine, barely successful.
Try out:
SpeechRecognitionEngine.BabbleTimeOut
But read about usage first to prevent Errors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文