Grammar Konstruktorer
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Initierar en ny instans av Grammar klassen.
Överlagringar
| Name | Description |
|---|---|
| Grammar() |
Initierar en ny instans av Grammar klassen. |
| Grammar(SrgsDocument, String, Uri, Object[]) |
Initierar en ny instans av Grammar klassen från en instans av SrgsDocumentoch anger namnet på en regel som ska vara startpunkten för grammatiken och en bas-URI för att matcha relativa referenser. |
| Grammar(Stream, String, Uri, Object[]) |
Initierar en ny instans av Grammar klassen a Stream och anger en rotregel och en bas-URI för att matcha relativa referenser. |
| Grammar(SrgsDocument, String, Uri) |
Initierar en ny instans av Grammar klassen från ett SrgsDocument objekt, anger en rotregel och definierar en grundläggande URI (Uniform Resource Identifier) för att matcha relativa regelreferenser. |
| Grammar(SrgsDocument, String, Object[]) |
Initierar en ny instans av Grammar klassen från en instans av SrgsDocumentoch anger namnet på en regel som ska vara startpunkten för grammatiken. |
| Grammar(Stream, String, Uri) |
Initierar en ny instans av Grammar klassen från en dataström, anger en rotregel och definierar en URI (Base Uniform Resource Identifier) för att matcha relativa regelreferenser. |
| Grammar(Stream, String, Object[]) |
Initierar en ny instans av Grammar klassen från en Stream och anger en rotregel. |
| Grammar(String, String, Object[]) |
Initierar en ny instans av Grammar klassen från en fil som innehåller en grammatikdefinition och anger namnet på en regel som ska vara startpunkten för grammatiken. |
| Grammar(SrgsDocument, String) |
Initierar en ny instans av Grammar klassen från ett SrgsDocument objekt och anger en rotregel. |
| Grammar(Stream, String) |
Initierar en ny instans av Grammar klassen från en Stream och anger en rotregel. |
| Grammar(String) |
Initierar en ny instans av Grammar klassen från en fil. |
| Grammar(SrgsDocument) |
Initierar en ny instans av Grammar klassen från ett SrgsDocument objekt. |
| Grammar(String, String) |
Initierar en ny instans av Grammar klassen från en fil och anger en rotregel. |
| Grammar(GrammarBuilder) |
Initierar en ny instans av Grammar klassen från ett GrammarBuilder objekt. |
| Grammar(Stream) |
Kommentarer
Du kan använda en Grammar konstruktor för att skapa en Grammar instans från en GrammarBuilder eller SrgsDocument ett objekt, eller från en fil eller en Stream som innehåller en beskrivning av en grammatik i ett format som stöds. Format som stöds omfattar följande:
XML-formatfiler som överensstämmer med W3C:s SRGS-version (Speech Recognition Grammar Specification) version 1.0
Grammatik som har kompilerats till en binär fil med filnamnstillägget .cfg
Grammatikkonstruktorer som accepterar grammatikfiler i XML-format i sina argument kompilerar XML-grammatiken till ett binärt format för att optimera dem för inläsning och förbrukning av en taligenkänningsmotor. Du kan minska den tid som krävs för att konstruera ett Grammar objekt från en XML-format grammatik genom att kompilera grammatiken i förväg med någon av Compile metoderna.
En grammatik för taligenkänning kan definiera en rotregel. Om du vill skapa ett Grammar objekt som anger vilken regel som ska användas som rotregel använder du en konstruktor som accepterar parametern ruleName .
Om du vill skapa ett Grammar objekt som anger en bas-URI för att matcha relativa regelreferenser använder du en konstruktor som tar parametern baseUri .
Grammar()
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen.
protected:
Grammar();
protected Grammar();
Protected Sub New ()
Gäller för
Grammar(SrgsDocument, String, Uri, Object[])
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från en instans av SrgsDocumentoch anger namnet på en regel som ska vara startpunkten för grammatiken och en bas-URI för att matcha relativa referenser.
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);
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())
Parametrar
- srgsDocument
- SrgsDocument
En instans av SrgsDocument som innehåller begränsningarna för taligenkänningens grammatik.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
- baseUri
- Uri
Bas-URI:n som ska användas för att matcha en relativ regelreferens i grammatikbeskrivningen, eller null.
- parameters
- Object[]
Parametrar som ska skickas till initieringshanteraren som anges av OnInit egenskapen för startpunkten eller rotregeln för den Grammar som ska skapas. Den här parametern kan vara null.
Undantag
Någon av parametrarna innehåller ett ogiltigt värde.
Angiven SrgsDocument av
srgsDocumentinnehåller inte regeln som anges iruleName.Innehållet i matrisparametrarna matchar inte argumenten för någon av regelns initieringshanterare.
Grammatiken har en relativ regelreferens som inte kan matchas av standardbasregeln Uri för grammatik eller den URI som tillhandahålls av
baseUri.
Kommentarer
Parametrar för en initieringshanterare kan också anges.
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.
Gäller för
Grammar(Stream, String, Uri, Object[])
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
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);
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())
Parametrar
- stream
- Stream
Ett Stream anslutet till ett in-/utdataobjekt (inklusive filer, VisualStudio-resurser och DLL:er) som innehåller en grammatikspecifikation.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
- baseUri
- Uri
Bas-URI:n som ska användas för att matcha en relativ regelreferens i grammatikbeskrivningen, eller null.
- parameters
- Object[]
Parametrar som ska skickas till initieringshanteraren som anges av OnInit egenskapen för startpunkten eller rotregeln för den Grammar som ska skapas. Den här parametern kan vara null.
Undantag
Någon av parametrarna innehåller ett ogiltigt värde.
streamär ansluten till en grammatik som inte innehåller regeln som anges avruleName.Innehållet i matrisparametrarna matchar inte argumenten för någon av regelns initieringshanterare.
Grammatiken innehåller en relativ regelreferens som inte kan matchas av standardbasregeln Uri för grammatik eller den URI som tillhandahålls av
baseUri.
Kommentarer
Parametrar för en initieringshanterare kan också anges.
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.
Gäller för
Grammar(SrgsDocument, String, Uri)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från ett SrgsDocument objekt, anger en rotregel och definierar en grundläggande URI (Uniform Resource Identifier) för att matcha relativa regelreferenser.
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);
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)
Parametrar
- srgsDocument
- SrgsDocument
Begränsningarna för taligenkänningens grammatik.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för SrgsDocument.
- baseUri
- Uri
Den bas-URI som ska användas för att matcha en relativ regelreferens i SrgsDocument, eller null.
Undantag
ruleName kan inte lösas eller inte är offentlig, eller ruleName är null och srgsDocument innehåller inte en rotregel.
srgsDocument är null.
srgsDocument innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel skapas en grammatik för taligenkänning i en SrgsDocument som innehåller en relativ regelreferens till filen cities.xml och anger en URI som ska användas för att matcha regelreferensen. Innehållet i cities.xml-filen visas i XML-exemplet som följer C#-exemplet.
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>
Kommentarer
Den här konstruktorn skickar inga parametrar till initieringshanteraren och SrgsDocument bör inte innehålla en initieringshanterare som kräver argument.
Konstruktorn verifierar baseUriinte . Metoden för ett LoadGrammar eller SpeechRecognitionEngine -objekt utlöser dock SpeechRecognizer ett undantag om den inte kan matcha alla regelreferenser i grammatikbeskrivningen. Om baseUri inte nullLoadGrammar använder metoden URI:n för att lösa eventuella regelreferenser som den inte kan lösa på annat sätt. Om baseUri representerar en fil LoadGrammar använder metoden både den avsedda filen och filens katalog när den försöker matcha relativa regelreferenser.
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.
Se även
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- Grammatikspecifikation för taligenkänning
Gäller för
Grammar(SrgsDocument, String, Object[])
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från en instans av SrgsDocumentoch anger namnet på en regel som ska vara startpunkten för grammatiken.
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);
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())
Parametrar
- srgsDocument
- SrgsDocument
En instans av SrgsDocument som innehåller begränsningarna för taligenkänningens grammatik.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
- parameters
- Object[]
Parametrar som ska skickas till initieringshanteraren som anges av OnInit egenskapen för startpunkten eller rotregeln för den Grammar som ska skapas. Den här parametern kan vara null.
Undantag
Någon av parametrarna innehåller ett ogiltigt värde.
Angivet SrgsDocument av
srgsDocumentinnehåller inte regeln som anges avruleName.Innehållet i matrisparametrarna matchar inte argumenten för någon av regelns initieringshanterare.
Kommentarer
Parametrar för en initieringshanterare kan också anges.
Gäller för
Grammar(Stream, String, Uri)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från en dataström, anger en rotregel och definierar en URI (Base Uniform Resource Identifier) för att matcha relativa regelreferenser.
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar(System.IO.Stream stream, 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)
Parametrar
- stream
- Stream
En ström som beskriver en grammatik för taligenkänning i ett format som stöds.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
- baseUri
- Uri
Bas-URI:n som ska användas för att matcha en relativ regelreferens i grammatikbeskrivningen, eller null.
Undantag
ruleName kan inte lösas eller inte är offentlig, eller ruleName är null och grammatikbeskrivningen definierar inte en rotregel.
stream är null.
Strömmen innehåller ingen giltig beskrivning eller beskriver en grammatik som innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel läses en lokal SRGS-fil (shuttle.xml) in från en filström. Filen innehåller en relativ regelreferens till en regel i filen cities.xml och anger en bas-URI som ska användas för att matcha regelreferensen. Innehållet i shuttle.xml- och cities.xml-filerna visas i XML-exemplen som följer C#-exemplet.
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>
Kommentarer
Den här konstruktorn skickar inga parametrar till initieringshanteraren och beskrivningen bör inte definiera en initieringshanterare som kräver argument.
Den här konstruktorn kan skapa en Grammar instans från följande format:
XML-formatfiler som överensstämmer med W3C:s SRGS-version (Speech Recognition Grammar Specification) version 1.0
Grammatik som har kompilerats till en binär fil med filnamnstillägget .cfg
Den här konstruktorn kompilerar grammatikfiler i XML-format till ett binärt format för att optimera dem för inläsning och förbrukning av en taligenkänningsmotor. Du kan minska den tid som krävs för att konstruera ett Grammar objekt från en XML-format grammatik genom att kompilera grammatiken i förväg med någon av Compile metoderna.
Konstruktorn verifierar baseUriinte . Metoden för ett LoadGrammar eller SpeechRecognitionEngine -objekt utlöser dock SpeechRecognizer ett undantag om den inte kan matcha alla regelreferenser i grammatikbeskrivningen. Om baseUri inte nullLoadGrammar använder metoden URI:n för att lösa eventuella regelreferenser som den inte kan lösa på annat sätt. Om baseUri representerar en fil LoadGrammar används både den avsedda filen och filens katalog när den försöker matcha relativa regelreferenser.
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.
Se även
Gäller för
Grammar(Stream, String, Object[])
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(System.IO.Stream stream, string? ruleName, 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())
Parametrar
- stream
- Stream
Ett Stream anslutet till ett in-/utdataobjekt (inklusive filer, VisualStudio-resurser och DLL:er) som innehåller en grammatikspecifikation.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
- parameters
- Object[]
Parametrar som ska skickas till initieringshanteraren som anges av OnInit egenskapen för startpunkten eller rotregeln för den Grammar som ska skapas. Den här parametern kan vara null.
Undantag
stream är ansluten till en grammatik som:
Innehåller inte regeln som anges i
ruleNameKräver initieringsparametrar som skiljer sig från de som anges i
parametersInnehåller en relativ regelreferens som inte kan matchas av standardbasregeln Uri för grammatik.
Kommentarer
Parametrar för en initieringshanterare kan också anges.
Gäller för
Grammar(String, String, Object[])
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från en fil som innehåller en grammatikdefinition och anger namnet på en regel som ska vara startpunkten för grammatiken.
public:
Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(string path, string? ruleName, 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())
Parametrar
- path
- String
Sökvägen till en fil, inklusive DLL:er, som innehåller en grammatikspecifikation.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
- parameters
- Object[]
Parametrar som ska skickas till initieringshanteraren som anges av OnInit egenskapen för startpunkten eller rotregeln för den Grammar som ska skapas. Den här parametern kan vara null.
Undantag
Någon av parametrarna innehåller ett ogiltigt värde.
Filen som anges av
pathinnehåller inte en giltig grammatik eller regeln som anges iruleName.Innehållet i matrisparametrarna matchar inte argumenten för någon av regelns initieringshanterare.
Grammatiken har en relativ regelreferens som inte kan matchas av standardbasregeln Uri för grammatik.
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.
Parametrar för en initieringshanterare kan också anges.
Gäller för
Grammar(SrgsDocument, String)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från ett SrgsDocument objekt och anger en rotregel.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument? srgsDocument, 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)
Parametrar
- srgsDocument
- SrgsDocument
Begränsningarna för taligenkänningens grammatik.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för SrgsDocument.
Undantag
ruleName kan inte lösas eller inte är offentlig, eller ruleName är null och srgsDocument innehåller inte en rotregel.
srgsDocument är null.
srgsDocument innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel skapas en grammatik för taligenkänning i en SrgsDocument instans och anger en regel som ska användas som rotregel för grammatiken. Exemplet konstruerar ett Grammar objekt från instansen SrgsDocument och läser in det i taligenkänningsmotorn.
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);
}
}
}
Kommentarer
Den här konstruktorn skickar inga parametrar till initieringshanteraren och SrgsDocument bör inte innehålla en initieringshanterare som kräver argument.
Om du vill skapa ett Grammar objekt från en SrgsDocument och ange en bas-URI som ska användas för att matcha relativa regelreferenser använder du Grammar konstruktorn.
Se även
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Grammatikspecifikation för taligenkänning
Gäller för
Grammar(Stream, String)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
public:
Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar(System.IO.Stream stream, 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)
Parametrar
- stream
- Stream
En ström som beskriver en grammatik för taligenkänning i ett format som stöds.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
Undantag
ruleName kan inte lösas eller inte är offentlig, eller ruleName är null och grammatikbeskrivningen definierar inte en rotregel.
stream är null.
Strömmen innehåller ingen giltig beskrivning eller beskriver en grammatik som innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel läses en lokal SRGS-fil (cities.xml) in från en filström och anger en regel som ska användas som rot för grammatiken. Innehållet i cities.xml-filen visas i XML-exemplet som följer C#-exemplet.
// 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>
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 här konstruktorn skickar inga parametrar till initieringshanteraren och beskrivningen bör inte definiera en initieringshanterare som kräver argument.
Den här konstruktorn kan skapa en Grammar instans från följande format:
XML-formatfiler som överensstämmer med W3C:s SRGS-version (Speech Recognition Grammar Specification) version 1.0
Grammatik som har kompilerats till en binär fil med filnamnstillägget .cfg
Den här konstruktorn kompilerar grammatikfiler i XML-format till ett binärt format för att optimera dem för inläsning och förbrukning av en taligenkänningsmotor. Du kan minska den tid som krävs för att konstruera ett Grammar objekt från en XML-format grammatik genom att kompilera grammatiken i förväg med någon av Compile metoderna.
Om du vill skapa en Grammar från en dataström och ange en bas-URI som ska användas för att matcha relativa regelreferenser använder du Grammar konstruktorn.
Se även
Gäller för
Grammar(String)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från en fil.
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)
Parametrar
- path
- String
Sökvägen till filen som beskriver en taligenkännings grammatik i ett format som stöds.
Undantag
path innehåller den tomma strängen (") eller så beskriver filen en grammatik som inte innehåller en rotregel.
path är null.
Filen innehåller ingen giltig beskrivning eller beskriver en grammatik som innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel läses en grammatik för taligenkänning in från en lokal SRGS-fil för att skapa ett Grammar objekt. Innehållet i cities.xml-filen visas i XML-exemplet som följer C#-exemplet.
// 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>
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 här konstruktorn skickar inga parametrar till initieringshanteraren och beskrivningen bör inte definiera en initieringshanterare som kräver argument.
Den här konstruktorn kan skapa en Grammar instans från följande format:
XML-formatfiler som överensstämmer med W3C:s SRGS-version (Speech Recognition Grammar Specification) version 1.0
Grammatik som har kompilerats till en binär fil med filnamnstillägget .cfg
Den här konstruktorn kompilerar grammatikfiler i XML-format till ett binärt format för att optimera dem för inläsning och förbrukning av en taligenkänningsmotor. Du kan minska den tid som krävs för att konstruera ett Grammar objekt från en XML-format grammatik genom att kompilera grammatiken i förväg med någon av Compile metoderna.
En SRGS-grammatik kan definiera en rotregel. Om du vill skapa ett Grammar objekt från en sträng och ange en rotregel använder du Grammar konstruktorn.
Om du vill skapa ett Grammar objekt som anger en bas-URI som ska användas för att matcha relativa regelreferenser öppnar du filen i en filström och använder Grammar.Grammar konstruktorn.
Se även
Gäller för
Grammar(SrgsDocument)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från ett SrgsDocument objekt.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument);
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)
Parametrar
- srgsDocument
- SrgsDocument
Begränsningarna för taligenkänningens grammatik.
Undantag
srgsDocument innehåller ingen rotregel.
srgsDocument är null.
srgsDocument innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel skapas en grammatik för taligenkänning i en SrgsDocument instans, som sedan används för att konstruera ett Grammar objekt.
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;
}
Kommentarer
Den här konstruktorn skickar inga parametrar till initieringshanteraren och SrgsDocument bör inte innehålla en initieringshanterare som kräver argument.
En SrgsDocument kan ha en rotregel. Om du vill skapa ett Grammar objekt som anger en rotregel använder du Grammar konstruktorn eller Grammar .
Om du vill skapa en taligenkänning Grammar från en SrgsDocument och ange en bas-URI som ska användas för att matcha relativa regelreferenser använder du Grammar konstruktorn.
Se även
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Grammatikspecifikation för taligenkänning
Gäller för
Grammar(String, String)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från en fil och anger en rotregel.
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)
Parametrar
- path
- String
Sökvägen till filen som beskriver en taligenkännings grammatik i ett format som stöds.
- ruleName
- String
Identifieraren för regeln som ska användas som startpunkt för taligenkännings grammatiken, eller null för att använda standardrotregeln för grammatikbeskrivningen.
Undantag
ruleName kan inte lösas eller inte är offentlig, path är den tomma strängen (""), eller ruleName är null och grammatikbeskrivningen definierar inte en rotregel.
path är null.
Filen innehåller ingen giltig beskrivning eller beskriver en grammatik som innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel läses en lokal SRGS-fil (cities.xml) in från en fil och anger en regel som ska användas som rot för grammatiken. Innehållet i cities.xml-filen visas i XML-exemplet som följer C#-exemplet.
// 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>
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 här konstruktorn skickar inga parametrar till initieringshanteraren och beskrivningen bör inte definiera en initieringshanterare som kräver argument.
Den här konstruktorn kan skapa en Grammar instans från följande format:
XML-formatfiler som överensstämmer med W3C:s SRGS-version (Speech Recognition Grammar Specification) version 1.0
Grammatik som har kompilerats till en binär fil med filnamnstillägget .cfg
Den här konstruktorn kompilerar grammatikfiler i XML-format till ett binärt format för att optimera dem för inläsning och förbrukning av en taligenkänningsmotor. Du kan minska den tid som krävs för att konstruera ett Grammar objekt från en XML-format grammatik genom att kompilera grammatiken i förväg med någon av Compile metoderna.
Om du vill skapa en Grammar som anger en bas-URI som ska användas för att matcha relativa regelreferenser öppnar du en filström för filen och använder Grammar konstruktorn.
Se även
Gäller för
Grammar(GrammarBuilder)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
Initierar en ny instans av Grammar klassen från ett GrammarBuilder objekt.
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)
Parametrar
- builder
- GrammarBuilder
En instans av GrammarBuilder som innehåller begränsningarna för taligenkänningens grammatik.
Exempel
I följande exempel skapas en grammatik för taligenkänning med hjälp av Choices och GrammarBuilder objekt. Konstruktorn Grammar skapar ett Grammar objekt från objektet GrammarBuilder .
// 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;
}
Se även
Gäller för
Grammar(Stream)
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
- Källa:
- Grammar.cs
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)
Parametrar
- stream
- Stream
En ström som beskriver en grammatik för taligenkänning i ett format som stöds.
Undantag
stream beskriver en grammatik som inte innehåller en rotregel.
stream är null.
Strömmen innehåller inte en giltig beskrivning av en grammatik eller beskriver en grammatik som innehåller en regelreferens som inte kan matchas.
Exempel
I följande exempel skapas en grammatik för taligenkänning från en lokal SRGS-fil (cities.xml) med hjälp av en filström. Innehållet i cities.xml-filen visas i C#-exemplet.
// 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>
Kommentarer
Den här konstruktorn skickar inga parametrar till initieringshanteraren och beskrivningen bör inte definiera en initieringshanterare som kräver argument.
Den här konstruktorn kan skapa en Grammar instans från följande format:
XML-formatfiler som överensstämmer med W3C:s SRGS-version (Speech Recognition Grammar Specification) version 1.0
Grammatik som har kompilerats till en binär fil med filnamnstillägget .cfg
Den här konstruktorn kompilerar grammatikfiler i XML-format till ett binärt format för att optimera dem för inläsning och förbrukning av en taligenkänningsmotor. Du kan minska den tid som krävs för att konstruera ett Grammar objekt från en XML-format grammatik genom att kompilera grammatiken i förväg med någon av Compile metoderna.
En SRGS-grammatik kan definiera en rotregel. Om du vill skapa ett Grammar objekt från en dataström och ange en rotregel använder du Grammar konstruktorn eller Grammar .
Om du vill skapa ett Grammar objekt från en dataström och ange en bas-URI som ska användas för att matcha relativa regelreferenser använder du Grammar konstruktorn.