GrammarBuilder.AppendRuleReference 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将语法文件或语法规则追加到当前语法元素序列中。
重载
| 名称 | 说明 |
|---|---|
| AppendRuleReference(String) |
将语法定义文件追加到当前语法元素序列中。 |
| AppendRuleReference(String, String) |
将语法定义文件的指定规则追加到当前语法元素序列中。 |
注解
这些 AppendRuleReference 方法可以从文件追加语法文件或语法规则。 这些方法允许应用程序使用预先部署的或公开可用的语法规则。 应用程序必须具有对指定语法文件位置的读取访问权限。
这些方法可以从以下格式读取语音识别语法。
符合 W3C 语音识别语法规范 (SRGS) 版本 1.0 的 XML 格式文件
符合Microsoft语音识别语法二进制格式(.cfg 文件扩展名)的二进制文件
使用 .cfg 扩展名将 XML 格式的 SRGS 语法文件编译为二进制语法文件可以减少搜索匹配所需的时间,尤其是在语法需要识别大量字词和短语时。 有关将 SRGS 语法编译为 CFG 二进制格式的信息,请参阅 SrgsGrammarCompiler。
AppendRuleReference(String)
- Source:
- GrammarBuilder.cs
- Source:
- GrammarBuilder.cs
- Source:
- GrammarBuilder.cs
- Source:
- GrammarBuilder.cs
将语法定义文件追加到当前语法元素序列中。
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# 示例创建一个语音识别语法,该语法使用在本地 SRGS 文件 cities.grxml 中命名 Cities 的规则。 cities.grxml 文件的内容显示在 C# 代码示例下方。
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>
注解
重要
将此类型的实例用于不受信任的数据是一种安全风险。 仅将此对象与受信任的数据一起使用。 有关详细信息,请参阅验证所有输入。
参数提供的 path URI 可以是本地或远程的。 应用程序必须具有对指定语法文件位置的读取访问权限。
W3C 语音识别语法规范(SRGS)表示形式可以定义根规则。 此方法从根规则开始,将语法追加到当前语法元素序列中。 若要追加特定的语法规则,请使用 AppendRuleReference 该方法。
另请参阅
适用于
AppendRuleReference(String, String)
- Source:
- GrammarBuilder.cs
- Source:
- GrammarBuilder.cs
- Source:
- GrammarBuilder.cs
- Source:
- GrammarBuilder.cs
将语法定义文件的指定规则追加到当前语法元素序列中。
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# 示例创建一个语音识别语法,该语法使用在本地 SRGS 文件 cities.grxml 中命名 Cities 的规则。 cities.grxml 文件的内容显示在 C# 代码示例下方。
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>
注解
重要
将此类型的实例用于不受信任的数据是一种安全风险。 仅将此对象与受信任的数据一起使用。 有关详细信息,请参阅验证所有输入。
参数提供的 path URI 可以是本地或远程的。 应用程序必须具有对指定语法文件位置的读取访问权限。
可以使用该方法 AppendRuleReference 以根规则开头的语法文件追加。