2011-06-27 25 views
2

スピーチは、私はこれだけsystem.speechの数字の認識に問題がありますか?

  SpeechRecognitionEngine RecognitionEngine = new SpeechRecognitionEngine(new CultureInfo("en-US", true)); 

      // Created Grammar For only Numbers 1 to 10 
      var NumberChoice = new Choices(); 
      for (var i = 0; i <= 10; i++) 
      { 
       NumberChoice.Add(i.ToString()); 
      } 
      var NumGrammarBuilder = new GrammarBuilder(NumberChoice); 
      var NumGrammar = new Grammar(NumGrammarBuilder); 
      RecognitionEngine.LoadGrammar(NumGrammar); 

      RecognitionEngine.SetInputToDefaultAudioDevice(); 
      RecognitionResult Result = RecognitionEngine.Recognize(); 

      txt_vtc.Text = Result.Text; 

のように番号を検出grmmarを追加しましたが、私は出力は、いくつかの倍異なる取得している話すとき、私はそれが8を取得し、私はオンにしたときに最も悪い方のものが2つを言うとき、私のファンと話す、小さな音でも認識しない。これは通常のクライアントには便利ですか?クライアントがピンと言うと、ピンコードをキャプチャしてテキストファイルに保存する必要があります。これは私には有益なのですか?

私は1から10まで正しく認識すれば十分でしょうか?このシナリオで誰も助けてくれますか? ユーザーが話すときにプログレスバーやメーターを表示できますか? 私は音声認識にENglish - UK Cultureを使用できますか? これにはサードパーティのDLLがありますか?

よろしく Bhuvan

+0

音声認識は、ノイズの多い環境で障害が発生した問題を克服するために、このコードサンプルを試すことができます。ノイズを減らすか失敗する。 – spender

+0

ok ..私は雑音を減らしたと仮定します...数字を正確に表示しますか?ユーザーが話しているときに進行状況バーはどうですか?これはプログレスバーを実装することが可能ですか? – Bhuvan

+0

あなたはどのような進行状況を覚えていましたか? – BrokenGlass

答えて

2

あなたは

SpeechRecognitionEngine rec = new SpeechRecognitionEngine(); 
    var c = new Choices(); 
    for (var i = 0; i <= 100; i++) 
     c.Add(i.ToString()); 
    var gb = new GrammarBuilder(c); 
    var g = new Grammar(gb); 
    g.Priority = 127; 
    rec.SetInputToDefaultAudioDevice(); 

    rec.LoadGrammar(g); 
    rec.RecognizeAsync(RecognizeMode.Multiple); 
+2

素敵でシンプルです。なぜあなたは文法の優先順位を設定しますか?エンジンに読み込まれた文法が1つだけの場合は何もしますか? –

+0

この機能を利用して遊び、別のコメントで私たちに知らせてください。私はこの解決策を長い時間書きましたが、私は本当に覚えていません... –

関連する問題