首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于自定义SRGS语法的自由格式文本

基于自定义SRGS语法的自由格式文本
EN

Stack Overflow用户
提问于 2011-11-04 07:47:53
回答 2查看 1.2K关注 0票数 3

我正在尝试开发一个基于语音的应用程序,它将接受用户输入作为语音,并在输入的基础上执行一些操作。这是我第一次尝试这项技术,我是在开发它的同时学习的。

我正在使用随dotnet 4附带的Microsoft来识别语音。到目前为止,我已经了解了它所支持的两种模式。

语音识别有两种工作方式:

  • 听写模式--一种不受限制的、自由形式的语音解释模式,它使用由特定语言的识别器提供的内置语法。这是默认识别器。
  • 语法模式-将口语与一个或多个特定的上下文无关语法(CFGs)相匹配。CFG是一种结构,它定义了一组特定的单词,以及可以使用的这些单词的组合。在基本术语上,CFG定义了对SR有效的句子。语法必须由应用程序以预编译语法文件的形式提供,或者在运行时以W3C语音识别语法规范(SRGS)标记或旧的CFG规范的形式提供。Windows包括一个语法编译器: gc.exe。

因此,从本质上讲,无论我用语法指定了什么词,引擎都只会识别出这些词。但我也想包括一些自由形式的文本和结构化语法。一个例子可以是人的名字。如果我想从演讲中获取名称,我需要在语法中指定该名称,但如果应用程序对任何人开放,这是不可能的。

有没有一种方法,我可以提取一些文本,但已经不是语法的一部分?

如何让系统识别诸如“我的名字是Gary,我25岁”这样的句子。这个名字绝对可以是任何东西,我怎么用语法来定义它呢?

EN

回答 2

Stack Overflow用户

发布于 2011-11-04 08:47:03

您可以将听写模式与语法模式混合使用,请参阅MSDN中的示例:

http://msdn.microsoft.com/en-us/library/ms723634(v=vs.85).aspx

代码语言:javascript
复制
<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>
票数 3
EN

Stack Overflow用户

发布于 2011-11-07 08:45:24

看一看垃圾特殊规则。我不知道您将如何检索与垃圾部分匹配的单词,但我很确定有一种方法。

如果你也对这个问题感兴趣,请告诉我。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8006238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档