语音到文本禁用Windows自动处理程序和写我说的

时间:2011-07-01 11:47:39

标签: c# speech-recognition speech-to-text

我开始使用.NET语音转文本库(SpeechRecognizer)

在谷歌搜索和搜索这个网站时,我找到了这个代码示例:

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);
rec.UnloadAllGrammars();
rec.LoadGrammar(g);
rec.Enabled = true;

这帮助我开始了。我改变了这2行

for (var i = 0; i <= 100; i++)
   c.Add(i.ToString());

根据我的需要

c.Add("Open");
c.Add("Close");

但是,当我说'关闭'时,Windows的语音识别器会关闭我的应用程序!

此外,有没有更好的方法来识别语音而不是创建自己的字典?我希望用户说出类似的话:“给自己写一张便条”,然后用户会说话,我会写。

很抱歉在同一个问题上提出两个问题,两者似乎都与我的一个问题有关。

2 个答案:

答案 0 :(得分:1)

您正在使用共享语音识别器(SpeechRecognizer)。实例化时 SpeechRecognizer可以获得可由其他应用程序共享的识别器,通常用于构建应用程序以控制桌面上运行的窗口和应用程序。

听起来你想使用自己的私人识别引擎(SpeechRecognitionEngine)。因此,实例化一个SpeechRecognitionEngine。

请参阅SpeechRecognizer Class

Disable built-in speech recognition commands?也可能有一些有用的信息。

Microsoft的桌面识别器包括一种称为听写语法的特殊语法,可用于转录用户说出的任意单词。您可以使用听写语法进行转录样式识别。请参阅DictationGrammar ClassSAPI and Windows 7 Problem

答案 1 :(得分:1)

我有更好的答案......

尝试向你的识别器添加一个听写语法......它似乎禁用所有内置命令,如select / delete / close等。

然后,您需要使用语音识别事件和SendKeys向页面添加文本。到目前为止,我的发现表明你不能拥有你的SAPI蛋糕并吃掉它。

我认为如果您尚未解决(或继续),上述解决方案应该对您有用。