识别system.speech中的数字的问题?

时间:2011-06-27 12:56:12

标签: c# speech-recognition sapi

语音和我添加了grmmar,只检测这样的数字

            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;

但是当我说话的时候输出变得有些不同,当我说两个时它会变成八个而最糟糕的是当我打开我的风扇说话时,它甚至不能识别出小声音。这对普通客户来说是否有用?当客户端说pin时,它必须捕获pin码并将其保存在文本文件中..这对我有用..

如果它能正确地识别出1到10,那么绰绰有余吗?在这种情况下,任何人都可以帮助我。 当用户说话时,我可以显示进度条或任何仪表吗? 我可以使用英语 - 英国文化来表达我的语音吗? 我们有没有第三方dll?

此致 Bhuvan

1 个答案:

答案 0 :(得分: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);