GrammarBuilder.AppendRuleReference 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为语法元素的当前顺序追加语法文件或语法规则。
重载
AppendRuleReference(String) |
为语法元素的当前顺序追加语法定义文件。 |
AppendRuleReference(String, String) |
为语法元素的当前顺序追加指定的语法定义文件规则。 |
注解
AppendRuleReference方法可以将语法文件或语法规则附加到文件中。 这些方法允许应用程序使用预先部署或可公开使用的语法规则。 应用程序必须对指定语法文件的位置具有读取访问权限。
这些方法可以从以下格式读取语音识别语法。
符合 W3C语音识别语法规范 (SRGS) 版本 1.0的 XML 格式文件
符合 Microsoft 语音识别语法二进制格式 ( cfg 文件扩展名的二进制文件)
使用扩展名为的二进制语法文件将 XML 格式的 SRGS 语法文件编译为二进制语法文件可以减少搜索匹配所用的时间,尤其是当语法要求识别大量字词和短语时。 有关将 SRGS 语法编译为 CFG 二进制格式的信息,请参阅 SrgsGrammarCompiler 。
AppendRuleReference(String)
为语法元素的当前顺序追加语法定义文件。
public:
void AppendRuleReference(System::String ^ path);
public void AppendRuleReference (string path);
member this.AppendRuleReference : string -> unit
Public Sub AppendRuleReference (path As String)
参数
- path
- String
在一个支持的布局描述语音识别语法的路径通用资源标识符(URI)的文件。
示例
下面的 c # 示例将创建一个语音识别语法,该语法使用 Cities
本地 SRGS 文件 grxml 中名为的规则。 下面的 c # 代码示例中将显示 grxml 文件的内容。
private static Grammar CreateCitiesGrammar1()
{
GrammarBuilder builder = new GrammarBuilder();
builder.AppendRuleReference("file://c:/temp/cities.grxml");
Grammar citiesGrammar = new Grammar(builder);
citiesGrammar.Name = "Cities Grammar 1";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-16" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.grxml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item> Seattle </item>
<item> Los Angeles </item>
<item> New York </item>
<item> Miami </item>
</one-of>
</rule>
</grammar>
注解
参数提供的 URI path
可以是本地的,也可以是远程的。 应用程序必须对指定语法文件的位置具有读取访问权限。
W3C 语音识别语法规范 (SRGS) 表示形式可以定义根规则。 此方法将语法从其根规则开始追加到语法元素的当前序列。 若要追加特定语法规则,请使用 AppendRuleReference 方法。
另请参阅
适用于
AppendRuleReference(String, String)
为语法元素的当前顺序追加指定的语法定义文件规则。
public:
void AppendRuleReference(System::String ^ path, System::String ^ rule);
public void AppendRuleReference (string path, string rule);
member this.AppendRuleReference : string * string -> unit
Public Sub AppendRuleReference (path As String, rule As String)
参数
- path
- String
在一个支持的布局描述语音识别语法的路径通用资源标识符(URI)的文件路径。
- rule
- String
规则的追加、或追加语法文件的默认根规则的标识符 null
。
示例
下面的 c # 示例将创建一个语音识别语法,该语法使用 Cities
本地 SRGS 文件 grxml 中名为的规则。 下面的 c # 代码示例中将显示 grxml 文件的内容。
private static Grammar CreateCitiesGrammar2()
{
GrammarBuilder builder = new GrammarBuilder();
builder.Append("Does");
builder.AppendRuleReference(@"c:\temp\cities.grxml", "Cities");
builder.Append("have a shuttle");
Grammar citiesGrammar = new Grammar(builder);
citiesGrammar.Name = "Cities Grammar 2";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.grxml:
Defines an SRGS grammar for requesting a flight. This grammar includes
a Cities rule that lists the cities that can be used for departures
and destinations. -->
<rule id="Main">
<item>
I would like to fly from <ruleref uri="#Cities"/>
to <ruleref uri="#Cities"/>
</item>
</rule>
<rule id="Cities" scope="public">
<one-of>
<item> Seattle </item>
<item> Los Angeles </item>
<item> New York </item>
<item> Miami </item>
</one-of>
</rule>
</grammar>
注解
参数提供的 URI path
可以是本地的,也可以是远程的。 应用程序必须对指定语法文件的位置具有读取访问权限。
您可以使用 AppendRuleReference 方法来追加语法文件(以其根规则开头)。