2

语音,我添加了 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;

但是当我说话时输出有时会变得不同,当我说两个时它会变成八个,最糟糕的是当我打开风扇说话时,即使是很小的声音也无法识别。那么这对普通客户有用吗?当客户说密码时,它必须捕获密码并将其保存在文本文件中..这对我有用吗..

如果它对我来说正确识别 1 到 10 就足够了?任何人都可以在这种情况下帮助我。当用户说话时,我可以显示进度条或任何仪表吗?我可以在我的语音识别中使用英语 - 英国文化吗?我们有任何第三方 dll 吗?

问候布万

4

1 回答 1

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);
于 2011-07-01T12:46:50.370 回答