4

我一直想使用 Microsoft Speech Recognition 创建一个应用程序。

我的应用程序的用户应该经常说缩写词,例如“大型强子对撞机”或“欧洲核子研究中心”的“LHC”。鉴于该确切顺序,我的应用程序将返回

你说:C岁。

你说:Cern

虽然它对“欧洲核子研究中心”确实有效,但对“大型强子对撞机”却非常失败。

但是,如果我可以制作自己的自定义训练文件,我可以轻松地将“LHC”一词放在其中的某个地方。然后,我可以让用户访问语音控制面板并运行我的培训文件。

我为此找到的所有链接都令人沮丧地无用,因为他们只是说“这是----,你应该尝试去----论坛”之类的东西。

如果它确实有帮助,这里是链接列表:

http://compgroups.net/comp.speech.users/add-my-own-training/153194

https://groups.google.com/forum/#!topic/microsoft.public.speech.server/v58SH1ov22s

http://social.msdn.microsoft.com/Forums/en/servercorefordevelopers/thread/f7a35f3f-b352-464a-b264-e16eb4afd049

我的问题甚至可能吗?或者培训文件本身是否采用特殊格式?如果是这样,可以复制该格式吗?

一个也可以在 Windows XP 上运行的解决方案将是理想的。

提前致谢!

PS如果已经有任何库或模块,有人可以指点我吗?Python 或 C/C++ 解决方案会很棒。另外,由于我不想发布另一个关于此的问题,是否可以从命令提示符使用 train 实用程序(或没有可见的 GUI,但仍然可以完全控制所有控件)?

4

1 回答 1

2

好的,从我三四年前写的东西中提取这个,但我相信你想做这样的事情。

语法库是一个经过训练的系统,可以识别单词。您可以根据特定单词创建自己的语法库。

C#,对不起

using System.Speech
using System.Speech.Recognition
using System.Speech.AudioFormat

SpeechRecognitionEngine sre = new SpeechRecognitionEngine();

string[] words = {"L H C", "CERN"};
Choices choices = new Choices(words);
GrammarBuilder gb = new GrammarBuilder(choices);
Grammar grammar = new Grammar(gb);
sre.LoadGrammar(grammar);

这是我所能得到的。从文档看来,您可以以某种方式定义发音。所以也许这样你就可以让 LHC 直接映射到一个单词。这是语法课上的文档 - http://msdn.microsoft.com/en-us/library/system.speech.recognition.grammar.aspx

小更新 - 请参阅此处的文档中的示例http://msdn.microsoft.com/en-us/library/ms554228.aspx

于 2012-05-26T02:28:05.247 回答