GrammarBuilder.AppendRuleReference 方法

定义

将语法文件或语法规则追加到当前语法元素序列中。

重载

名称 说明
AppendRuleReference(String)

将语法定义文件追加到当前语法元素序列中。

AppendRuleReference(String, String)

将语法定义文件的指定规则追加到当前语法元素序列中。

注解

这些 AppendRuleReference 方法可以从文件追加语法文件或语法规则。 这些方法允许应用程序使用预先部署的或公开可用的语法规则。 应用程序必须具有对指定语法文件位置的读取访问权限。

这些方法可以从以下格式读取语音识别语法。

使用 .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 以根规则开头的语法文件追加。

另请参阅

适用于