我正在尝试开发一个基于语音的应用程序,它将接受用户输入作为语音,并在输入的基础上执行一些操作。这是我第一次尝试这项技术,我是在开发它的同时学习的。
我正在使用随dotnet 4附带的Microsoft来识别语音。到目前为止,我已经了解了它所支持的两种模式。
语音识别有两种工作方式:
因此,从本质上讲,无论我用语法指定了什么词,引擎都只会识别出这些词。但我也想包括一些自由形式的文本和结构化语法。一个例子可以是人的名字。如果我想从演讲中获取名称,我需要在语法中指定该名称,但如果应用程序对任何人开放,这是不可能的。
有没有一种方法,我可以提取一些文本,但已经不是语法的一部分?
如何让系统识别诸如“我的名字是Gary,我25岁”这样的句子。这个名字绝对可以是任何东西,我怎么用语法来定义它呢?
发布于 2011-11-04 08:47:03
您可以将听写模式与语法模式混合使用,请参阅MSDN中的示例:
http://msdn.microsoft.com/en-us/library/ms723634(v=vs.85).aspx
<GRAMMAR>
<!-- command to handle first and last names with semantic properties -->
<!-- By using semantic properties, the application can ignore all of
the text returned, except for the text associated with the dictation
tags' semantic properties "PID_FirstName" and "PID_LastName" -->
<RULE ID="SubmitName" TOPLEVEL="ACTIVE">
<P>
my first name is
<!-- Note the implicit maximum is only one word -->
<DICTATION PROPID="PID_FirstName"/>
and my last name is
<!-- Note the implicit maximum is two words -->
<DICTATION PROPID="PID_LastName" MAX="2"/>
</P>
</RULE>
</GRAMMAR>发布于 2011-11-07 08:45:24
看一看垃圾特殊规则。我不知道您将如何检索与垃圾部分匹配的单词,但我很确定有一种方法。
如果你也对这个问题感兴趣,请告诉我。)
https://stackoverflow.com/questions/8006238
复制相似问题