GrammarBuilder.AppendRuleReference Metod

Definition

Lägger till en grammatikfil eller en grammatikregel i den aktuella sekvensen med grammatikelement.

Överlagringar

Name Description
AppendRuleReference(String)

Lägger till en grammatikdefinitionsfil i den aktuella sekvensen med grammatikelement.

AppendRuleReference(String, String)

Lägger till den angivna regeln för en grammatikdefinitionsfil i den aktuella sekvensen med grammatikelement.

Kommentarer

Metoderna AppendRuleReference kan lägga till en grammatikfil eller en grammatikregel från en fil. Med de här metoderna kan program använda fördistribuerade eller offentligt tillgängliga grammatikregler. Programmet måste ha läsbehörighet till platsen för angivna grammatikfiler.

Dessa metoder kan läsa en grammatik för taligenkänning från följande format.

Kompilering av en SRGS-grammatikfil i XML-format till en binär grammatikfil med filnamnstillägget .cfg kan minska den tid som används vid sökningar efter en matchning, särskilt om grammatiken kräver igenkänning av ett stort antal ord och fraser. Information om hur du kompilerar SRGS-grammatik till cfg-binärt format finns i SrgsGrammarCompiler.

AppendRuleReference(String)

Lägger till en grammatikdefinitionsfil i den aktuella sekvensen med grammatikelement.

public:
 void AppendRuleReference(System::String ^ path);
public void AppendRuleReference(string path);
member this.AppendRuleReference : string -> unit
Public Sub AppendRuleReference (path As String)

Parametrar

path
String

Sökvägen eller URI (Universal Resource Identifier) för filen som beskriver en grammatik för taligenkänning i ett format som stöds.

Exempel

I följande C#-exempel skapas en grammatik för taligenkänning som använder regeln med namnet Cities i en lokal SRGS-fil, cities.grxml. Innehållet i filen cities.grxml visas under C#-kodexemplet.

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>

Kommentarer

Important

Att använda en instans av den här typen med ej betrodda data är en säkerhetsrisk. Använd endast det här objektet med betrodda data. För mer information, se Verifiera alla indata.

Den URI som tillhandahålls av argumentet kan vara lokal eller fjärransluten path . Programmet måste ha läsbehörighet till platsen för angivna grammatikfiler.

En SRGS-representation (Speech Recognition Grammar Specification) för W3C kan definiera en rotregel. Den här metoden lägger till grammatiken, som börjar med dess rotregel, till den aktuella sekvensen med grammatikelement. Om du vill lägga till en specifik grammatikregel använder du AppendRuleReference metoden.

Se även

Gäller för

AppendRuleReference(String, String)

Lägger till den angivna regeln för en grammatikdefinitionsfil i den aktuella sekvensen med grammatikelement.

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)

Parametrar

path
String

Filsökvägen eller URI (Universal Resource Identifier) för filen som beskriver en grammatik för taligenkänning i ett format som stöds.

rule
String

Identifieraren för regeln som ska läggas till eller null för att lägga till standardrotregeln för grammatikfilen.

Exempel

I följande C#-exempel skapas en grammatik för taligenkänning som använder regeln med namnet Cities i en lokal SRGS-fil, cities.grxml. Innehållet i filen cities.grxml visas under C#-kodexemplet.

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>

Kommentarer

Important

Att använda en instans av den här typen med ej betrodda data är en säkerhetsrisk. Använd endast det här objektet med betrodda data. För mer information, se Verifiera alla indata.

Den URI som tillhandahålls av argumentet kan vara lokal eller fjärransluten path . Programmet måste ha läsbehörighet till platsen för angivna grammatikfiler.

Du kan använda AppendRuleReference metoden för att lägga till en grammatikfil som börjar med rotregeln.

Se även

Gäller för