Grammar Constructors
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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:
XML-indelingsbestanden die voldoen aan de W3C Speech Recognition Grammar Specification (SRGS) versie 1.0
Grammatica's die zijn gecompileerd naar een binair bestand met de bestandsextensie .cfg
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
srgsDocumentbevat niet de regel die is opgegeven inruleName.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[])
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
streamis verbonden met een grammatica die niet de regel bevat die is opgegeven doorruleName.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
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- Grammaticaspecificatie voor spraakherkenning
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
srgsDocumentbevat niet de regel die is opgegeven doorruleName.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:
XML-indelingsbestanden die voldoen aan de W3C Speech Recognition Grammar Specification (SRGS) versie 1.0
Grammatica's die zijn gecompileerd naar een binair bestand met de bestandsextensie .cfg
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[])
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
ruleNameVereist initialisatieparameters die afwijken van de parameters die zijn opgegeven in
parametersBevat 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 inruleName.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
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Grammaticaspecificatie voor spraakherkenning
Van toepassing op
Grammar(Stream, String)
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:
XML-indelingsbestanden die voldoen aan de W3C Speech Recognition Grammar Specification (SRGS) versie 1.0
Grammatica's die zijn gecompileerd naar een binair bestand met de bestandsextensie .cfg
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:
XML-indelingsbestanden die voldoen aan de W3C Speech Recognition Grammar Specification (SRGS) versie 1.0
Grammatica's die zijn gecompileerd naar een binair bestand met de bestandsextensie .cfg
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
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Grammaticaspecificatie voor spraakherkenning
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:
XML-indelingsbestanden die voldoen aan de W3C Speech Recognition Grammar Specification (SRGS) versie 1.0
Grammatica's die zijn gecompileerd naar een binair bestand met de bestandsextensie .cfg
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)
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:
XML-indelingsbestanden die voldoen aan de W3C Speech Recognition Grammar Specification (SRGS) versie 1.0
Grammatica's die zijn gecompileerd naar een binair bestand met de bestandsextensie .cfg
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.