Grammar Constructors

Definitie

Initialiseert een nieuw exemplaar van de Grammar klasse.

Overloads

Name Description
Grammar()

Initialiseert een nieuw exemplaar van de Grammar klasse.

Grammar(SrgsDocument, String, Uri, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse van een exemplaar van SrgsDocumenten geeft de naam van een regel op als het toegangspunt voor de grammatica en een basis-URI om relatieve verwijzingen op te lossen.

Grammar(Stream, String, Uri, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse a Stream en geeft een hoofdregel en een basis-URI op om relatieve verwijzingen op te lossen.

Grammar(SrgsDocument, String, Uri)

Initialiseert een nieuw exemplaar van de Grammar klasse van een SrgsDocument object, geeft een hoofdregel op en definieert een basis-URI (Uniform Resource Identifier) om relatieve regelverwijzingen op te lossen.

Grammar(SrgsDocument, String, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse van een exemplaar van SrgsDocumenten geeft de naam van een regel op als het toegangspunt voor de grammatica.

Grammar(Stream, String, Uri)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een stroom, geeft een hoofdregel op en definieert een basis-URI (Uniform Resource Identifier) om relatieve regelverwijzingen op te lossen.

Grammar(Stream, String, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse uit een Stream en geeft een hoofdregel op.

Grammar(String, String, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse van een bestand dat een grammaticadefinitie bevat en geeft de naam van een regel op als het beginpunt van de grammatica.

Grammar(SrgsDocument, String)

Initialiseert een nieuw exemplaar van de Grammar klasse van een SrgsDocument object en geeft een hoofdregel op.

Grammar(Stream, String)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een Stream en geeft een hoofdregel op.

Grammar(String)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een bestand.

Grammar(SrgsDocument)

Initialiseert een nieuw exemplaar van de Grammar klasse van een SrgsDocument object.

Grammar(String, String)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een bestand en geeft een hoofdregel op.

Grammar(GrammarBuilder)

Initialiseert een nieuw exemplaar van de Grammar klasse van een GrammarBuilder object.

Grammar(Stream)

Initialiseert een nieuw exemplaar van de Grammar klasse van een Stream.

Opmerkingen

U kunt een Grammar constructor gebruiken om een Grammar exemplaar te maken op basis van een GrammarBuilder of SrgsDocument object, of vanuit een bestand of een bestand Stream dat een beschrijving van een grammatica in een ondersteunde indeling bevat. Ondersteunde indelingen zijn onder andere:

Grammaticaconstructors die grammaticabestanden met XML-indeling in hun argumenten accepteren, compileren de XML-grammatica in een binaire indeling om ze te optimaliseren voor het laden en verbruik door een spraakherkenningsengine. U kunt de benodigde tijd voor het maken van een object op basis van een Grammar grammatica in XML-indeling verminderen door de grammatica vooraf samen te stellen met behulp van een van de Compile methoden.

Een grammatica voor spraakherkenning kan een hoofdregel definiëren. Als u een Grammar object wilt maken dat aangeeft welke regel moet worden gebruikt als hoofdregel, gebruikt u een constructor die de ruleName parameter accepteert.

Als u een Grammar object wilt maken dat een basis-URI opgeeft om relatieve regelverwijzingen op te lossen, gebruikt u een constructor die de baseUri parameter gebruikt.

Grammar()

Initialiseert een nieuw exemplaar van de Grammar klasse.

protected:
 Grammar();
protected Grammar();
Protected Sub New ()

Van toepassing op

Grammar(SrgsDocument, String, Uri, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse van een exemplaar van SrgsDocumenten geeft de naam van een regel op als het toegangspunt voor de grammatica en een basis-URI om relatieve verwijzingen op te lossen.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri, parameters As Object())

Parameters

srgsDocument
SrgsDocument

Een exemplaar hiervan SrgsDocument bevat de beperkingen voor de grammatica van spraakherkenning.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

baseUri
Uri

De basis-URI die moet worden gebruikt om een relatieve regelreferentie in de beschrijving van de grammatica op te lossen, of null.

parameters
Object[]

Parameters die moeten worden doorgegeven aan de initialisatiehandler die is opgegeven door de OnInit eigenschap voor het toegangspunt of de hoofdregel van de Grammar te maken regel. Deze parameter kan null zijn.

Uitzonderingen

  • Een van de parameters bevat een ongeldige waarde.

  • De SrgsDocument opgegeven door srgsDocument bevat niet de regel die is opgegeven in ruleName.

  • De inhoud van de matrixparameters komt niet overeen met de argumenten van een van de initialisatie-handlers van de regel.

  • De grammatica heeft een relatieve regelreferentie die niet kan worden omgezet door de standaardbasisregel Uri voor grammatica's of de URI die door baseUri.

Opmerkingen

Parameters voor een initialisatiehandler kunnen ook worden opgegeven.

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Van toepassing op

Grammar(Stream, String, Uri, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse a Stream en geeft een hoofdregel en een basis-URI op om relatieve verwijzingen op te lossen.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar(System.IO.Stream stream, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri, parameters As Object())

Parameters

stream
Stream

Een Stream verbinding met een invoer-/uitvoerobject (inclusief bestanden, VisualStudio-resources en DLL's) die een grammaticaspecificatie bevat.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

baseUri
Uri

De basis-URI die moet worden gebruikt om een relatieve regelreferentie in de beschrijving van de grammatica op te lossen, of null.

parameters
Object[]

Parameters die moeten worden doorgegeven aan de initialisatiehandler die is opgegeven door de OnInit eigenschap voor het toegangspunt of de hoofdregel van de Grammar te maken regel. Deze parameter kan null zijn.

Uitzonderingen

  • Een van de parameters bevat een ongeldige waarde.

  • De stream is verbonden met een grammatica die niet de regel bevat die is opgegeven door ruleName.

  • De inhoud van de matrixparameters komt niet overeen met de argumenten van een van de initialisatie-handlers van de regel.

  • De grammatica bevat een relatieve regelreferentie die niet kan worden omgezet door de standaardbasisregel Uri voor grammatica's of de URI die door baseUri.

Opmerkingen

Parameters voor een initialisatiehandler kunnen ook worden opgegeven.

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Van toepassing op

Grammar(SrgsDocument, String, Uri)

Initialiseert een nieuw exemplaar van de Grammar klasse van een SrgsDocument object, geeft een hoofdregel op en definieert een basis-URI (Uniform Resource Identifier) om relatieve regelverwijzingen op te lossen.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri)

Parameters

srgsDocument
SrgsDocument

De beperkingen voor de grammatica van spraakherkenning.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de SrgsDocumentregel te gebruiken.

baseUri
Uri

De basis-URI die moet worden gebruikt om een relatieve regelreferentie in de SrgsDocument, of null.

Uitzonderingen

ruleName kan niet worden opgelost of is niet openbaar of ruleNamenullsrgsDocument bevat geen hoofdregel.

srgsDocument is null.

srgsDocument bevat een regelreferentie die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt in een SrgsDocument met een relatieve regelverwijzing naar het cities.xml-bestand en wordt een URI opgegeven die moet worden gebruikt om de regelverwijzing op te lossen. De inhoud van het cities.xml-bestand wordt weergegeven in het XML-voorbeeld dat volgt op het C#-voorbeeld.

private static Grammar CreateSrgsDocumentGrammar3()
{
  // Create the SrgsDocument.
  SrgsDocument document = new SrgsDocument();

  // Create the Main rule and add it to the document.
  SrgsRule mainRule = new SrgsRule("Main");
  mainRule.Scope = SrgsRuleScope.Public;

  SrgsItem item = new SrgsItem("Can I get a shuttle in");

  // Create a relative URI for the cities rule.
  Uri ruleUri = new Uri("cities.xml#Cities", UriKind.Relative);

  item.Add(new SrgsRuleRef(ruleUri));

  mainRule.Add(item);
  document.Rules.Add(mainRule);

  // Set the root rule.
  document.Root = mainRule;

  // Create the grammar.
  Uri baseUri = new Uri(@"file://c:\temp\");
  Grammar citiesGrammar = new Grammar(document, null, baseUri);
  citiesGrammar.Name = "SrgsDocument Cities Grammar 3";

  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.xml:
    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>

Opmerkingen

Deze constructor geeft geen parameters door aan de initialisatiehandler en de SrgsDocument constructor mag geen initialisatiehandler bevatten waarvoor argumenten zijn vereist.

Deze constructor valideert baseUriniet. De LoadGrammar methode van een SpeechRecognitionEngine of SpeechRecognizer object genereert echter een uitzondering als alle regelverwijzingen in de beschrijving van de grammatica niet kunnen worden omgezet. Als baseUri dat niet nullhet geval is, gebruikt de LoadGrammar methode de URI om eventuele regelverwijzingen op te lossen die anders niet kunnen worden opgelost. Als baseUri dit een bestand vertegenwoordigt, gebruikt de LoadGrammar methode zowel het aangewezen bestand als de map van het bestand wanneer wordt geprobeerd relatieve regelverwijzingen op te lossen.

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Zie ook

Van toepassing op

Grammar(SrgsDocument, String, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse van een exemplaar van SrgsDocumenten geeft de naam van een regel op als het toegangspunt voor de grammatica.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, parameters As Object())

Parameters

srgsDocument
SrgsDocument

Een exemplaar hiervan SrgsDocument bevat de beperkingen voor de grammatica van spraakherkenning.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

parameters
Object[]

Parameters die moeten worden doorgegeven aan de initialisatiehandler die is opgegeven door de OnInit eigenschap voor het toegangspunt of de hoofdregel van de Grammar te maken regel. Deze parameter kan null zijn.

Uitzonderingen

  • Een van de parameters bevat een ongeldige waarde.

  • De SrgsDocument opgegeven door srgsDocument bevat niet de regel die is opgegeven door ruleName.

  • De inhoud van de matrixparameters komt niet overeen met de argumenten van een van de initialisatie-handlers van de regel.

Opmerkingen

Parameters voor een initialisatiehandler kunnen ook worden opgegeven.

Van toepassing op

Grammar(Stream, String, Uri)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een stroom, geeft een hoofdregel op en definieert een basis-URI (Uniform Resource Identifier) om relatieve regelverwijzingen op te lossen.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar(System.IO.Stream stream, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri)

Parameters

stream
Stream

Een stroom die een grammatica van spraakherkenning in een ondersteunde indeling beschrijft.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

baseUri
Uri

De basis-URI die moet worden gebruikt om een relatieve regelreferentie in de beschrijving van de grammatica op te lossen, of null.

Uitzonderingen

ruleName kan niet worden opgelost of is niet openbaar of ruleName is null en de beschrijving van de grammatica definieert geen hoofdregel.

stream is null.

De stroom bevat geen geldige beschrijving of beschrijft een grammatica die een regelreferentie bevat die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een lokaal SRGS-bestand (shuttle.xml) uit een bestandsstroom geladen. Het bestand bevat een relatieve regelreferentie naar een regel in het bestand cities.xml en geeft een basis-URI op die moet worden gebruikt om de regelreferentie op te lossen. De inhoud van de shuttle.xml- en cities.xml-bestanden wordt weergegeven in de XML-voorbeelden die volgen op het C#-voorbeeld.

private static Grammar CreateGrammarFromStream3()
{
  FileInfo file = new FileInfo(@".\shuttle.xml");
  Uri baseUri = new Uri(@"file://c:\temp\");
  Grammar citiesGrammar = new Grammar(file.OpenRead(), null, baseUri);
  citiesGrammar.Name = "Stream Cities Grammar 3";
  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">

  <!-- shuttle.xml:
    Defines an SRGS grammar for asking about a shuttle service. This grammar
    references a Cities rule that is defined in the cities.xml grammar. -->

  <rule id="Main">
    <item>
      Can I get a shuttle in
      <ruleref uri="cities.xml#Cities"/>
    </item>
  </rule>
</grammar>
<?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.xml:
    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>

Opmerkingen

Deze constructor geeft geen parameters door aan de initialisatiehandler en de beschrijving mag geen initialisatiehandler definiëren waarvoor argumenten zijn vereist.

Deze constructor kan een Grammar exemplaar maken op basis van de volgende indelingen:

Met deze constructor worden grammaticabestanden met XML-indeling gecompileerd naar een binaire indeling om ze te optimaliseren voor het laden en verbruik door een spraakherkenningsengine. U kunt de benodigde tijd voor het maken van een object op basis van een Grammar grammatica in XML-indeling verminderen door de grammatica vooraf samen te stellen met behulp van een van de Compile methoden.

Deze constructor valideert baseUriniet. De LoadGrammar methode van een SpeechRecognitionEngine of SpeechRecognizer object genereert echter een uitzondering als alle regelverwijzingen in de beschrijving van de grammatica niet kunnen worden omgezet. Als baseUri dat niet nullhet geval is, gebruikt de LoadGrammar methode de URI om eventuele regelverwijzingen op te lossen die anders niet kunnen worden opgelost. Als baseUri dit een bestand vertegenwoordigt, LoadGrammar worden zowel het aangewezen bestand als de map van het bestand gebruikt wanneer wordt geprobeerd relatieve regelverwijzingen op te lossen.

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Zie ook

Van toepassing op

Grammar(Stream, String, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse uit een Stream en geeft een hoofdregel op.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(System.IO.Stream stream, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, parameters As Object())

Parameters

stream
Stream

Een Stream verbinding met een invoer-/uitvoerobject (inclusief bestanden, VisualStudio-resources en DLL's) die een grammaticaspecificatie bevat.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

parameters
Object[]

Parameters die moeten worden doorgegeven aan de initialisatiehandler die is opgegeven door de OnInit eigenschap voor het toegangspunt of de hoofdregel van de Grammar te maken regel. Deze parameter kan null zijn.

Uitzonderingen

stream is verbonden met een grammatica die:

  • Bevat niet de regel die is opgegeven in ruleName

  • Vereist initialisatieparameters die afwijken van de parameters die zijn opgegeven in parameters

  • Bevat een relatieve regelreferentie die niet kan worden omgezet door de standaardbasisregel Uri voor grammatica's.

Opmerkingen

Parameters voor een initialisatiehandler kunnen ook worden opgegeven.

Van toepassing op

Grammar(String, String, Object[])

Initialiseert een nieuw exemplaar van de Grammar klasse van een bestand dat een grammaticadefinitie bevat en geeft de naam van een regel op als het beginpunt van de grammatica.

public:
 Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(string path, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : string * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String, parameters As Object())

Parameters

path
String

Het pad naar een bestand, inclusief DLL's, dat een grammaticaspecificatie bevat.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

parameters
Object[]

Parameters die moeten worden doorgegeven aan de initialisatiehandler die is opgegeven door de OnInit eigenschap voor het toegangspunt of de hoofdregel van de Grammar te maken regel. Deze parameter kan null zijn.

Uitzonderingen

  • Een van de parameters bevat een ongeldige waarde.

  • Het bestand dat is opgegeven door path , bevat geen geldige grammatica of de regel die is opgegeven in ruleName.

  • De inhoud van de matrixparameters komt niet overeen met de argumenten van een van de initialisatie-handlers van de regel.

  • De grammatica heeft een relatieve regelreferentie die niet kan worden omgezet door de standaardbasisregel Uri voor grammatica's.

Opmerkingen

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Parameters voor een initialisatiehandler kunnen ook worden opgegeven.

Van toepassing op

Grammar(SrgsDocument, String)

Initialiseert een nieuw exemplaar van de Grammar klasse van een SrgsDocument object en geeft een hoofdregel op.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String)

Parameters

srgsDocument
SrgsDocument

De beperkingen voor de grammatica van spraakherkenning.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de SrgsDocumentregel te gebruiken.

Uitzonderingen

ruleName kan niet worden opgelost of is niet openbaar of ruleNamenullsrgsDocument bevat geen hoofdregel.

srgsDocument is null.

srgsDocument bevat een regelreferentie die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een grammatica voor spraakherkenning in een SrgsDocument exemplaar gemaakt en wordt een regel opgegeven die moet worden gebruikt als de hoofdregel van de grammatica. In het voorbeeld wordt een Grammar object van het SrgsDocument exemplaar gemaakt en geladen in de spraakherkenningsengine.

using System;
using System.Speech.Recognition;
using System.Speech.Recognition.SrgsGrammar;

namespace SampleRecognition
{
  class Program
  {
    static void Main(string[] args)

    // Initialize an in-process speech recognition engine.
    {
      using (SpeechRecognitionEngine recognizer =
         new SpeechRecognitionEngine())
      {

        // Create the SrgsDocument.
        SrgsDocument document = new SrgsDocument();

        // Create the Cities rule and add it to the document.
        SrgsRule citiesRule = new SrgsRule("Cities");
        citiesRule.Scope = SrgsRuleScope.Public;

        SrgsOneOf cityChoice = new SrgsOneOf();
        cityChoice.Add(new SrgsItem("Seattle"));
        cityChoice.Add(new SrgsItem("Los Angeles"));
        cityChoice.Add(new SrgsItem("New York"));
        cityChoice.Add(new SrgsItem("Miami"));

        citiesRule.Add(cityChoice);
        document.Rules.Add(citiesRule);

        // Create the Main rule and add it to the document.
        SrgsRule mainRule = new SrgsRule("Main");
        mainRule.Scope = SrgsRuleScope.Public;

        mainRule.Add(new SrgsItem("I would like to fly from"));
        mainRule.Add(new SrgsRuleRef(citiesRule));
        mainRule.Add(new SrgsItem("to"));
        mainRule.Add(new SrgsRuleRef(citiesRule));

        document.Rules.Add(mainRule);

        // Create the Grammar object and specify which rule to use as the root.
        Grammar citiesGrammar = new Grammar(document,"Main");

        // Load the grammar object to the recognizer.
        recognizer.LoadGrammarAsync(citiesGrammar);

        // Attach a handler for the SpeechRecognized event.
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

        // Set the input to the recognizer.
        recognizer.SetInputToDefaultAudioDevice();

        // Start recognition.
        recognizer.RecognizeAsync();
        Console.WriteLine("Starting asynchronous recognition...");

        // Keep the console window open.
        Console.ReadLine();
      }
    }

    // Handle the SpeechRecognized event.
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine("  Speech recognized: " + e.Result.Text);
    }
  }
}

Opmerkingen

Deze constructor geeft geen parameters door aan de initialisatiehandler en de SrgsDocument constructor mag geen initialisatiehandler bevatten waarvoor argumenten zijn vereist.

Als u een Grammar object wilt maken op basis van een SrgsDocument en een basis-URI wilt opgeven die moet worden gebruikt om relatieve regelverwijzingen op te lossen, gebruikt u de Grammar constructor.

Zie ook

Van toepassing op

Grammar(Stream, String)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een Stream en geeft een hoofdregel op.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar(System.IO.Stream stream, string ruleName);
new System.Speech.Recognition.Grammar : System.IO.Stream * string -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String)

Parameters

stream
Stream

Een stroom die een grammatica van spraakherkenning in een ondersteunde indeling beschrijft.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

Uitzonderingen

ruleName kan niet worden opgelost of is niet openbaar of ruleName is null en de beschrijving van de grammatica definieert geen hoofdregel.

stream is null.

De stroom bevat geen geldige beschrijving of beschrijft een grammatica die een regelreferentie bevat die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een lokaal SRGS-bestand (cities.xml) uit een bestandsstroom geladen en wordt een regel opgegeven die moet worden gebruikt als de hoofdmap van de grammatica. De inhoud van het cities.xml-bestand wordt weergegeven in het XML-voorbeeld dat volgt op het C#-voorbeeld.

// Load a cities grammar from an I/O stream, use a specific
// rule as the root of the grammar, and return the new grammar.
private static Grammar CreateGrammarFromStream2()
{
  FileInfo file = new FileInfo(@"c:\temp\cities.xml");
  Grammar citiesGrammar = new Grammar(file.OpenRead(), "Main");
  citiesGrammar.Name = "Stream 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.xml:
    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>

Opmerkingen

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Deze constructor geeft geen parameters door aan de initialisatiehandler en de beschrijving mag geen initialisatiehandler definiëren waarvoor argumenten zijn vereist.

Deze constructor kan een Grammar exemplaar maken op basis van de volgende indelingen:

Met deze constructor worden grammaticabestanden met XML-indeling gecompileerd naar een binaire indeling om ze te optimaliseren voor het laden en verbruik door een spraakherkenningsengine. U kunt de benodigde tijd voor het maken van een object op basis van een Grammar grammatica in XML-indeling verminderen door de grammatica vooraf samen te stellen met behulp van een van de Compile methoden.

Als u een Grammar stroom wilt maken en een basis-URI wilt opgeven om relatieve regelverwijzingen op te lossen, gebruikt u de Grammar constructor.

Zie ook

Van toepassing op

Grammar(String)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een bestand.

public:
 Grammar(System::String ^ path);
public Grammar(string path);
new System.Speech.Recognition.Grammar : string -> System.Speech.Recognition.Grammar
Public Sub New (path As String)

Parameters

path
String

Het pad van het bestand dat een grammatica voor spraakherkenning in een ondersteunde indeling beschrijft.

Uitzonderingen

path bevat de lege tekenreeks ("") of het bestand beschrijft een grammatica die geen hoofdregel bevat.

path is null.

Het bestand bevat geen geldige beschrijving of beschrijft een grammatica die een regelreferentie bevat die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een grammatica voor spraakherkenning uit een lokaal SRGS-bestand geladen om een Grammar object te bouwen. De inhoud van het cities.xml-bestand wordt weergegeven in het XML-voorbeeld dat volgt op het C#-voorbeeld.

// Load a cities grammar from a local file and
// return the new grammar.
private static Grammar CreateGrammarFromFile()
{
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");
  citiesGrammar.Name = "SRGS File Cities Grammar";
  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.xml:
    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>

Opmerkingen

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Deze constructor geeft geen parameters door aan de initialisatiehandler en de beschrijving mag geen initialisatiehandler definiëren waarvoor argumenten zijn vereist.

Deze constructor kan een Grammar exemplaar maken op basis van de volgende indelingen:

Met deze constructor worden grammaticabestanden met XML-indeling gecompileerd naar een binaire indeling om ze te optimaliseren voor het laden en verbruik door een spraakherkenningsengine. U kunt de benodigde tijd voor het maken van een object op basis van een Grammar grammatica in XML-indeling verminderen door de grammatica vooraf samen te stellen met behulp van een van de Compile methoden.

Een SRGS-grammatica kan een hoofdregel definiëren. Als u een Grammar object wilt maken op basis van een tekenreeks en een hoofdregel wilt opgeven, gebruikt u de Grammar constructor.

Als u een Grammar object wilt maken dat een basis-URI aangeeft die moet worden gebruikt om relatieve regelverwijzingen op te lossen, opent u het bestand in een bestandsstroom en gebruikt u de Grammar.Grammar constructor.

Zie ook

Van toepassing op

Grammar(SrgsDocument)

Initialiseert een nieuw exemplaar van de Grammar klasse van een SrgsDocument object.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument)

Parameters

srgsDocument
SrgsDocument

De beperkingen voor de grammatica van spraakherkenning.

Uitzonderingen

srgsDocument bevat geen hoofdregel.

srgsDocument is null.

srgsDocument bevat een regelreferentie die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt in een SrgsDocument exemplaar, dat vervolgens wordt gebruikt om een Grammar object samen te stellen.

private static Grammar CreateSrgsDocumentGrammar()
{
  // Create the SrgsDocument.
  SrgsDocument document = new SrgsDocument();

  // Create the Cities rule and add it to the document.
  SrgsRule citiesRule = new SrgsRule("Cities");

  SrgsOneOf cityChoice = new SrgsOneOf();
  cityChoice.Add(new SrgsItem("Seattle"));
  cityChoice.Add(new SrgsItem("Los Angeles"));
  cityChoice.Add(new SrgsItem("New York"));
  cityChoice.Add(new SrgsItem("Miami"));

  citiesRule.Add(cityChoice);
  document.Rules.Add(citiesRule);

  // Create the Main rule and add it to the document.
  SrgsRule mainRule = new SrgsRule("Main");
  mainRule.Scope = SrgsRuleScope.Public;

  SrgsItem item = new SrgsItem("I would like to fly from");
  item.Add(new SrgsRuleRef(citiesRule));
  item.Add(new SrgsText("to"));
  item.Add(new SrgsRuleRef(citiesRule));

  mainRule.Add(item);
  document.Rules.Add(mainRule);

  // Set the root rule.
  document.Root = mainRule;

  // Create the Grammar object.
  Grammar citiesGrammar = new Grammar(document);
  citiesGrammar.Name = "SrgsDocument Cities Grammar";

  return citiesGrammar;
}

Opmerkingen

Deze constructor geeft geen parameters door aan de initialisatiehandler en de SrgsDocument constructor mag geen initialisatiehandler bevatten waarvoor argumenten zijn vereist.

Een SrgsDocument kan een hoofdregel hebben. Als u een Grammar object wilt maken dat een hoofdregel opgeeft, gebruikt u de Grammar of Grammar constructor.

Als u een spraakherkenning Grammar wilt maken op basis van een SrgsDocument en een basis-URI wilt opgeven om relatieve regelverwijzingen op te lossen, gebruikt u de Grammar constructor.

Zie ook

Van toepassing op

Grammar(String, String)

Initialiseert een nieuw exemplaar van de Grammar klasse uit een bestand en geeft een hoofdregel op.

public:
 Grammar(System::String ^ path, System::String ^ ruleName);
public Grammar(string path, string ruleName);
new System.Speech.Recognition.Grammar : string * string -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String)

Parameters

path
String

Het pad van het bestand dat een grammatica voor spraakherkenning in een ondersteunde indeling beschrijft.

ruleName
String

De id van de regel die moet worden gebruikt als het toegangspunt van de grammatica voor spraakherkenning of null om de standaardhoofdregel van de grammaticabeschrijving te gebruiken.

Uitzonderingen

ruleName kan niet worden opgelost of is niet openbaar, path is de lege tekenreeks ("") of ruleName is null en de grammaticabeschrijving definieert geen hoofdregel.

path is null.

Het bestand bevat geen geldige beschrijving of beschrijft een grammatica die een regelreferentie bevat die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een lokaal SRGS-bestand (cities.xml) uit een bestand geladen en wordt een regel opgegeven die moet worden gebruikt als de hoofdmap van de grammatica. De inhoud van het cities.xml-bestand wordt weergegeven in het XML-voorbeeld dat volgt op het C#-voorbeeld.

// Load a cities grammar from a local file, use a specific
// rule as the root of the grammar, and return the new grammar.
private static Grammar CreateGrammarFromFile2()
{
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml", "Main");
  citiesGrammar.Name = "SRGS File 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.xml:
    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>

Opmerkingen

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Deze constructor geeft geen parameters door aan de initialisatiehandler en de beschrijving mag geen initialisatiehandler definiëren waarvoor argumenten zijn vereist.

Deze constructor kan een Grammar exemplaar maken op basis van de volgende indelingen:

Met deze constructor worden grammaticabestanden met XML-indeling gecompileerd naar een binaire indeling om ze te optimaliseren voor het laden en verbruik door een spraakherkenningsengine. U kunt de benodigde tijd voor het maken van een object op basis van een Grammar grammatica in XML-indeling verminderen door de grammatica vooraf samen te stellen met behulp van een van de Compile methoden.

Als u een Grammar basis-URI wilt maken die moet worden gebruikt om relatieve regelverwijzingen op te lossen, opent u een bestandsstroom voor het bestand en gebruikt u de Grammar constructor.

Zie ook

Van toepassing op

Grammar(GrammarBuilder)

Initialiseert een nieuw exemplaar van de Grammar klasse van een GrammarBuilder object.

public:
 Grammar(System::Speech::Recognition::GrammarBuilder ^ builder);
public Grammar(System.Speech.Recognition.GrammarBuilder builder);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.GrammarBuilder -> System.Speech.Recognition.Grammar
Public Sub New (builder As GrammarBuilder)

Parameters

builder
GrammarBuilder

Een exemplaar hiervan GrammarBuilder bevat de beperkingen voor de grammatica van spraakherkenning.

Voorbeelden

In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt met behulp van Choices en GrammarBuilder objecten. De Grammar constructor maakt een Grammar object van het GrammarBuilder object.

// Create a grammar using a GrammarBuilder and return the new grammar.
private static Grammar CreateGrammarBuilderGrammar()
{
  GrammarBuilder builder = new GrammarBuilder();

  Choices cityChoice = new Choices (new string[]
  {"Seattle", "New York", "Miami", "Los Angeles"});

  builder.Append("I would like to fly from");
  builder.Append(cityChoice);
  builder.Append("to");
  builder.Append(cityChoice);

  Grammar citiesGrammar = new Grammar(builder);
  citiesGrammar.Name = "GrammarBuilder Cities Grammar";

  return citiesGrammar;
}

Zie ook

Van toepassing op

Grammar(Stream)

Initialiseert een nieuw exemplaar van de Grammar klasse van een Stream.

public:
 Grammar(System::IO::Stream ^ stream);
public Grammar(System.IO.Stream stream);
new System.Speech.Recognition.Grammar : System.IO.Stream -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream)

Parameters

stream
Stream

Een stroom die een grammatica van spraakherkenning in een ondersteunde indeling beschrijft.

Uitzonderingen

stream beschrijft een grammatica die geen hoofdregel bevat.

stream is null.

De stroom bevat geen geldige beschrijving van een grammatica of beschrijft een grammatica die een regelreferentie bevat die niet kan worden opgelost.

Voorbeelden

In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt op basis van een lokaal SRGS-bestand (cities.xml) met behulp van een bestandsstroom. De inhoud van het bestand cities.xml wordt weergegeven in het volgende C#-voorbeeld.

// Load a cities grammar from an I/O stream and
// return the new grammar.
private static Grammar CreateGrammarFromStream()
{
  string fileName = @"c:\temp\cities.xml";
  Grammar citiesGrammar =
    new Grammar(new FileStream(fileName, FileMode.Open));
  citiesGrammar.Name = "Stream Cities Grammar";
  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.xml:
    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>

Opmerkingen

Deze constructor geeft geen parameters door aan de initialisatiehandler en de beschrijving mag geen initialisatiehandler definiëren waarvoor argumenten zijn vereist.

Deze constructor kan een Grammar exemplaar maken op basis van de volgende indelingen:

Met deze constructor worden grammaticabestanden met XML-indeling gecompileerd naar een binaire indeling om ze te optimaliseren voor het laden en verbruik door een spraakherkenningsengine. U kunt de benodigde tijd voor het maken van een object op basis van een Grammar grammatica in XML-indeling verminderen door de grammatica vooraf samen te stellen met behulp van een van de Compile methoden.

Een SRGS-grammatica kan een hoofdregel definiëren. Als u een Grammar object wilt maken op basis van een stroom en een hoofdregel wilt opgeven, gebruikt u de Grammar of Grammar constructor.

Als u een Grammar object wilt maken op basis van een stroom en een basis-URI wilt opgeven die moet worden gebruikt om relatieve regelverwijzingen op te lossen, gebruikt u de Grammar constructor.

Zie ook

Van toepassing op