2012-05-26 119 views
4

我一直想要使用Microsoft语音识别来创建应用程序。Microsoft语音识别自定义训练

我的应用程序的用户通常会说缩写的东西,比如'大型强子对撞机'或'CERN'的'LHC'。鉴于准确的顺序,我的应用程序将返回

你说:在年龄C.

你说:欧洲核子研究中心

虽然它确实工作“欧洲核子研究中心,它没有非常严重的'LHC'。但是,如果我可以制作自己的定制培训文件,我可以很容易地在这里放置'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上运行的解决方案是理想的。

在此先感谢!

P.S.如果有任何图书馆或模块已经有这个,任何人都可以指点我? Python或C/C++解决方案将非常出色。另外,因为我不想发表关于这个问题的另一个问题,是否可以使用命令提示符下的列车实用程序(或者没有可见的GUI,但仍然拥有所有控件的全部命令)?

回答

2

好的,把它从现在的我wrote three or four years ago中拉出来,但我相信你想要做这样的事情。

语法库是一个训练有素的系统,可以识别单词。您可以创建自己的语法库,以引用特定的单词。

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

+0

C#是伟大的!因此,如果我将“L H C”添加到语法中,下次它将能够识别它?不必让用户说出这个词?另外,如果我打电话给LoadGrammar(),是否保存下次运行它时的语法?假设我有一个C#应用程序来设置语法,然后一个Python程序使用MSSR,那么这个语法会起作用吗?感谢你的回答! – Xyene

+0

@Nox - 第一个问题,是的,我相信它会承认像ELL,ACH和CEE这样的LHC。你可能必须拼写他们的发音,尽管像,呃,阿西,看到什么。不确定系统是否将字母识别为单词。对于第二部分,我不知道。 :/ – mrtsherman

+0

谢谢!有效!对于迟到的回复感到抱歉:我无法登录一段时间。 – Xyene