6

System.Speechライブラリを使用して音声を認識できますが、通常は非常に異なって認識されます。

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

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

どうすれば認識を改善できますか?文法クラスと関係がありますか?

4

3 に答える 3

8

信頼性の高い出力を得るには、音声認識エンジンで使用されるモデル(基本的に音声入力から許可された英語のテキスト出力へのマッピング)を制限する必要があります。モデルが小さいほど、認識機能が2つの類似した発音の単語の間に間違った単語を選択する可能性が低くなるため、一般的に結果は良くなります。

この簡略化された例では、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);
于 2011-03-30T16:25:00.353 に答える
6

ユーザーにトレーニングプロセスに行くように頼む余裕があれば、確かにはるかに良い結果が得られます。私は自分自身のために使用しました(そして私はアクセントを持っています)そしてそれは私のアプリケーションでの認識の精度を大幅に改善しました。少なくとも、自分で試すことができます(コントロールパネル、音声認識、コンピューターをトレーニングして理解を深めます)。実際、モデルをトレーニングまたは縮小する(またはもちろん、より良いマイクを備えた静かな場所でアプリを使用する)ことが、結果の精度を向上させる唯一の方法です。

于 2011-03-30T18:55:51.293 に答える
3

DictationGrammarはどういうわけか奇妙な結果をもたらします、私はSpeechRecognitionEngineのさまざまなプロパティを試しましたが、ほとんど成功しませんでした。試してみてください:SpeechRecognitionEngine.BabbleTimeOutしかし、エラーを防ぐために最初に使用法について読んでください。

于 2015-10-05T10:05:48.247 に答える