如何将语音听写合并到基于C#Windows窗体控件的程序中

时间:2015-08-08 21:35:00

标签: speech dictation scratchpad

我正在尝试将语音听写合并到C#Windows窗体控件中,这是一个自定义文本编辑器。这是我实例化SpeechRecoginizer的简单代码。我的文本编辑器控件正在接受语音听写并显示口述文本。它还可以理解基本命令,例如“向下滚动”或“向上滚动” 然而,它并不了解更复杂的听写命令,例如'删除比','选择接下来的4个字'等等。所以,当我说'删除那个'时,语音监视器显示'这个命令不是现在有空'。我尝试为'删除那个'添加一个语法,但是这并没有改变行为,语音监视器仍然显示相同的消息,我无法在SpeechRecognized事件处理程序中捕获'删除那个'。有没有人知道需要合并哪个API或.NET接口来捕获这些命令并实现它们?

  SpeechRecognizer sr = new SpeechRecognizer();   

  GrammarBuilder gb = new GrammarBuilder();
  gb.AppendDictation();

  // Create the Grammar instance.
  Grammar g = new Grammar(gb);

  sr.LoadGrammar(g);   // dictation grammar already gets loaded

  sr.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(OnSpeechRecognized);

1 个答案:

答案 0 :(得分:0)

应用程序需要支持TSF(Text Services Framework)接口。在为TSF定义的大约101个接口中,唯一要实现的强制接口是ITextStoreACP。这使得应用程序可以识别TSF。