Grammar Konstruktoren
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Initialisiert eine neue Instanz der Grammar-Klasse.
Überlädt
Grammar() |
Initialisiert eine neue Instanz der Grammar-Klasse. |
Grammar(SrgsDocument, String, Uri, Object[]) |
Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll, und einen Basis-URI, um relative Verweise aufzulösen. |
Grammar(Stream, String, Uri, Object[]) |
Initialisiert eine neue Instanz der Grammar-Klasse eines Stream und gibt eine Stammregel und einen Basis-URI an, um relative Verweise aufzulösen. |
Grammar(SrgsDocument, String, Uri) |
Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt, gibt eine Stammregel an und definiert einen Basis-URI (Uniform Resource Identifier) zum Auflösen relativer Regelverweise. |
Grammar(SrgsDocument, String, Object[]) |
Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll. |
Grammar(Stream, String, Uri) |
Initialisiert eine neue Instanz der Grammar-Klasse von einem Stream, gibt eine Stammregel an und definiert einen grundlegenden Uniform Resource Identifier (URI), um relative Regelverweise aufzulösen. |
Grammar(Stream, String, Object[]) |
Initialisiert eine neue Instanz der Grammar-Klasse aus Stream und gibt eine Stammregel an. |
Grammar(String, String, Object[]) |
Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei, die eine Grammatikdefinition enthält, und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll. |
Grammar(SrgsDocument, String) |
Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt und gibt eine Stammregel an. |
Grammar(Stream, String) |
Initialisiert eine neue Instanz der Grammar-Klasse aus Stream und gibt eine Stammregel an. |
Grammar(String) |
Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei. |
Grammar(SrgsDocument) |
Initialisiert eine neue Instanz der Grammar-Klasse aus einem SrgsDocument-Objekt. |
Grammar(String, String) |
Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei und gibt eine Stammregel an. |
Grammar(GrammarBuilder) |
Initialisiert eine neue Instanz der Grammar-Klasse mit einem GrammarBuilder-Objekt. |
Grammar(Stream) |
Initialisiert eine neue Instanz der Grammar-Klasse mit einer Stream. |
Hinweise
Sie können einen Grammar Konstruktor verwenden, um eine Instanz aus einem GrammarBuilder oder einem Objekt oder einer Datei oder SrgsDocument einer Datei Stream zu erstellen, die eine Grammar Beschreibung einer Grammatik in einem unterstützten Format enthält. Unterstützte Formate umfassen folgendes:
XML-Formatdateien, die der W3C-Grammatikspezifikation (SRGS) Version 1.0 entsprechen
Grammatiken, die in eine Binärdatei mit einer CFG-Dateierweiterung kompiliert wurden
Grammatikkonstruktoren, die XML-Format-Grammatikdateien in ihren Argumenten akzeptieren, kompilieren die XML-Grammatiken zu einem Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.
Eine Spracherkennungs grammatik kann eine Stammregel definieren. Um ein Objekt zu erstellen, das angibt, welche Regel als Stammregel verwendet werden soll, verwenden Sie einen Grammar Konstruktor, der den ruleName
Parameter akzeptiert.
Um ein Objekt zu erstellen, das einen Basis-URI angibt, um relative Regelbezüge zu lösen, verwenden Sie einen Grammar Konstruktor, der den baseUri
Parameter verwendet.
Grammar()
Initialisiert eine neue Instanz der Grammar-Klasse.
protected:
Grammar();
protected Grammar ();
Protected Sub New ()
Gilt für
Grammar(SrgsDocument, String, Uri, Object[])
Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll, und einen Basis-URI, um relative Verweise aufzulösen.
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())
Parameter
- srgsDocument
- SrgsDocument
Eine Instanz von SrgsDocument, die die Einschränkungen für die Spracherkennungsgrammatik enthält.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
- baseUri
- Uri
Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der Grammatikbeschreibung zu verwenden ist, oder null
.
- parameters
- Object[]
Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.
Ausnahmen
– Einer der Parameter enthält einen ungültigen Wert.
– Das SrgsDocument, das vom srgsDocument
angegeben wird, enthält nicht die Regel, die in ruleName
angegeben wird.
– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.
– Die Grammatik enthält einen relativen Regelverweis, der nicht von der standardmäßigen Uri-Basisregel für Grammatiken oder vom URI, der von baseUri
bereitgestellt wird, aufgelöst werden kann.
Hinweise
Parameter für einen Initialisierungshandler können auch angegeben werden.
Gilt für
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())
Parameter
- stream
- Stream
Ein Stream, der an ein Eingabe/Ausgabe Objekt an geschlossen ist (einschließlich Dateien, VisualStudio-Ressourcen und DLLs), das eine Grammatikspezifikation enthält.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
- baseUri
- Uri
Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der Grammatikbeschreibung zu verwenden ist, oder null
.
- parameters
- Object[]
Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.
Ausnahmen
– Einer der Parameter enthält einen ungültigen Wert.
– Der stream
wird an eine Grammatik gebunden, die nicht die Regel enthält, die durch ruleName
angegeben wird.
– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.
– Die Grammatik enthält einen relativen Regelverweis, der nicht von der standardmäßigen Uri-Basisregel für Grammatiken oder vom URI, der von baseUri
bereitgestellt wird, aufgelöst werden kann.
Hinweise
Parameter für einen Initialisierungshandler können auch angegeben werden.
Gilt für
Grammar(SrgsDocument, String, Uri)
Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt, gibt eine Stammregel an und definiert einen Basis-URI (Uniform Resource Identifier) zum Auflösen relativer Regelverweise.
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)
Parameter
- srgsDocument
- SrgsDocument
Die Einschränkungen für die Spracherkennungsgrammatik.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel SrgsDocument zu verwenden.
- baseUri
- Uri
Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der SrgsDocument oder der null
zu verwenden ist.
Ausnahmen
ruleName
kann nicht aufgelöst werden oder ist nicht öffentlich oder ruleName
ist null
und srgsDocument
enthält keine Stammregel.
srgsDocument
ist null
.
srgsDocument
enthält einen Regelverweis, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungsgrammatik in einer SrgsDocument Grammatik erstellt, die einen relativen Regelverweis auf die cities.xml-Datei enthält, und gibt einen URI an, der zum Auflösen des Regelverweis verwendet werden soll. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.
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>
Hinweise
Dieser Konstruktor übergibt keine Parameter an den Initialisierungshandler, und der sollte keinen Initialisierungshandler enthalten, der SrgsDocument Argumente erfordert.
Dieser Konstruktor überprüft baseUri
nicht . Die LoadGrammar
Methode eines SpeechRecognitionEngine Objekts SpeechRecognizer löst jedoch eine Ausnahme aus, wenn sie nicht alle Regelverweise in der Grammatikbeschreibung auflösen kann. Wenn baseUri
dies nicht null
der Fall ist, verwendet die LoadGrammar
Methode den URI, um Regelverweise aufzulösen, die sie sonst nicht auflösen können. Wenn baseUri
eine Datei dargestellt wird, verwendet die LoadGrammar
Methode sowohl die angegebene Datei als auch das Verzeichnis der Datei, wenn versucht wird, relative Regelverweise aufzulösen.
Siehe auch
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- Grammatikspezifikation für Spracherkennung
Gilt für
Grammar(SrgsDocument, String, Object[])
Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll.
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())
Parameter
- srgsDocument
- SrgsDocument
Eine Instanz von SrgsDocument, die die Einschränkungen für die Spracherkennungsgrammatik enthält.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
- parameters
- Object[]
Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.
Ausnahmen
– Einer der Parameter enthält einen ungültigen Wert.
– Das SrgsDocument, das vom srgsDocument
angegeben wird, enthält nicht die Regel, die von ruleName
angegeben wird.
– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.
Hinweise
Parameter für einen Initialisierungshandler können auch angegeben werden.
Gilt für
Grammar(Stream, String, Uri)
Initialisiert eine neue Instanz der Grammar-Klasse von einem Stream, gibt eine Stammregel an und definiert einen grundlegenden Uniform Resource Identifier (URI), um relative Regelverweise aufzulösen.
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)
Parameter
- stream
- Stream
Ein Stream, der eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
- baseUri
- Uri
Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der Grammatikbeschreibung zu verwenden ist, oder null
.
Ausnahmen
ruleName
kann nicht aufgelöst werden oder ist nicht öffentlich, oder ruleName
ist null
und die Grammatikbeschreibung definiert keine Stammregel.
stream
ist null
.
Der Stream enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine lokale SRGS-Datei (shuttle.xml) aus einem Dateidatenstrom geladen. Die Datei enthält einen relativen Regelverweis auf eine Regel in der cities.xml-Datei und gibt einen Basis-URI an, der zum Auflösen des Regelverweis verwendet werden soll. Der Inhalt der dateien shuttle.xml und cities.xml wird in den XML-Beispielen angezeigt, die dem C#-Beispiel folgen.
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>
Hinweise
Dieser Konstruktor übergibt keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.
Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:
XML-Formatdateien, die der SRGS-Spezifikation (W3C Speech Recognition Grammar Specification) Version 1.0 entsprechen
Grammatiken, die in einer Binärdatei mit einer CFG-Dateierweiterung kompiliert wurden
Dieser Konstruktor kompiliert Grammatikdateien im XML-Format in ein Binärformat, um sie zum Laden und Verbrauch durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit reduzieren, die zum Erstellen eines Grammar Objekts aus einer XML-Format-Grammatik erforderlich ist, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.
Dieser Konstruktor überprüft baseUri
nicht . Die LoadGrammar
Methode eines SpeechRecognitionEngine Objekts SpeechRecognizer löst jedoch eine Ausnahme aus, wenn sie nicht alle Regelverweise in der Grammatikbeschreibung auflösen kann. Wenn baseUri
dies nicht null
der Fall ist, verwendet die LoadGrammar
Methode den URI, um Regelverweise aufzulösen, die sie sonst nicht auflösen können. Wenn baseUri
eine Datei dargestellt wird, wird sowohl die LoadGrammar
angegebene Datei als auch das Verzeichnis der Datei verwendet, wenn versucht wird, relative Regelverweise aufzulösen.
Siehe auch
Gilt für
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())
Parameter
- stream
- Stream
Ein Stream, der an ein Eingabe/Ausgabe Objekt an geschlossen ist (einschließlich Dateien, VisualStudio-Ressourcen und DLLs), das eine Grammatikspezifikation enthält.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
- parameters
- Object[]
Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.
Ausnahmen
Die stream
ist mit einer Grammatik verbunden, die
– Enthält keine in ruleName
angegebene Regel
– Erfordert die Initialisierungsparameter, die sich von denen unterscheiden, die in parameters
angegeben werden
- Enthält einen relativen Regelverweis, der nicht durch die Standardbasisregel Uri für Grammatiken aufgelöst werden kann.
Hinweise
Parameter für einen Initialisierungshandler können auch angegeben werden.
Gilt für
Grammar(String, String, Object[])
Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei, die eine Grammatikdefinition enthält, und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll.
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())
Parameter
- path
- String
Der Pfad zu einer Datei (einschließlich DLL), die eine Grammatikspezifikation enthält.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
- parameters
- Object[]
Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.
Ausnahmen
– Einer der Parameter enthält einen ungültigen Wert.
– Die Datei, die von path
angegeben wird, enthält keine gültige Grammatik oder Regel, die in ruleName
angegeben wurde.
– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.
– Die Grammatik enthält einen relativen Regelverweis, der nicht von der standardmäßigen Uri-Basisregel für Grammatiken aufgelöst werden kann.
Hinweise
Parameter für einen Initialisierungshandler können auch angegeben werden.
Gilt für
Grammar(SrgsDocument, String)
Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt und gibt eine Stammregel an.
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)
Parameter
- srgsDocument
- SrgsDocument
Die Einschränkungen für die Spracherkennungsgrammatik.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel SrgsDocument zu verwenden.
Ausnahmen
ruleName
kann nicht aufgelöst werden oder ist nicht öffentlich oder ruleName
ist null
und srgsDocument
enthält keine Stammregel.
srgsDocument
ist null
.
srgsDocument
enthält einen Regelverweis, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine Grammatik zur Spracherkennung in einer SrgsDocument Instanz erstellt und eine Regel angegeben, die als Stammregel der Grammatik verwendet werden soll. Im Beispiel wird ein Grammar Objekt aus der SrgsDocument Instanz erstellt und in das Spracherkennungsmodul geladen.
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);
}
}
}
Hinweise
Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler und sollte keinen Initialisierungshandler enthalten, der SrgsDocument Argumente erfordert.
Um ein Grammar Objekt aus einem SrgsDocument Objekt zu erstellen und einen Basis-URI anzugeben, der zum Auflösen relativer Regelverweise verwendet werden soll, verwenden Sie den Grammar Konstruktor.
Siehe auch
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Grammatikspezifikation für Spracherkennung
Gilt für
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)
Parameter
- stream
- Stream
Ein Stream, der eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
Ausnahmen
ruleName
kann nicht aufgelöst werden oder ist nicht öffentlich, oder ruleName
ist null
und die Grammatikbeschreibung definiert keine Stammregel.
stream
ist null
.
Der Stream enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine lokale SRGS-Datei (cities.xml) aus einem Dateidatenstrom geladen und eine Regel angegeben, die als Stamm der Grammatik verwendet werden soll. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.
// 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>
Hinweise
Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.
Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:
XML-Formatdateien, die der W3C-Grammatikspezifikation (SRGS) Version 1.0 entsprechen
Grammatiken, die in eine Binärdatei mit einer CFG-Dateierweiterung kompiliert wurden
Dieser Konstruktor kompiliert XML-Format-Grammatikdateien in ein Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.
Um einen Grammar Datenstrom zu erstellen und einen Basis-URI anzugeben, mit dem relative Regelbezüge aufgelöst werden sollen, verwenden Sie den Grammar Konstruktor.
Siehe auch
Gilt für
Grammar(String)
Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei.
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)
Parameter
- path
- String
Der Pfad der Datei, die eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.
Ausnahmen
path
enthält die leere Zeichenfolge (""), oder die Datei beschreibt eine Grammatik, die keine Stammregel enthält.
path
ist null
.
Die Datei enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungs grammatik aus einer lokalen SRGS-Datei geladen, um ein Grammar Objekt zu erstellen. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.
// 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>
Hinweise
Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.
Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:
XML-Formatdateien, die der W3C-Grammatikspezifikation (SRGS) Version 1.0 entsprechen
Grammatiken, die in eine Binärdatei mit einer CFG-Dateierweiterung kompiliert wurden
Dieser Konstruktor kompiliert XML-Format-Grammatikdateien in ein Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.
Eine SRGS-Grammatik kann eine Stammregel definieren. Um ein Objekt aus einer Zeichenfolge zu erstellen und eine Grammar Stammregel anzugeben, verwenden Sie den Grammar Konstruktor.
Um ein Objekt zu erstellen, das einen Grammar Basis-URI angibt, mit dem relative Regelbezüge aufgelöst werden sollen, öffnen Sie die Datei in einem Dateidatenstrom, und verwenden Sie den Grammar.Grammar Konstruktor.
Siehe auch
Gilt für
Grammar(SrgsDocument)
Initialisiert eine neue Instanz der Grammar-Klasse aus einem SrgsDocument-Objekt.
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)
Parameter
- srgsDocument
- SrgsDocument
Die Einschränkungen für die Spracherkennungsgrammatik.
Ausnahmen
srgsDocument
enthält keine Stammregel.
srgsDocument
ist null
.
srgsDocument
enthält einen Regelverweis, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungs grammatik in einer SrgsDocument Instanz erstellt, die dann zum Erstellen eines Grammar Objekts verwendet wird.
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;
}
Hinweise
Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler und sollte keinen Initialisierungshandler enthalten, der SrgsDocument Argumente erfordert.
Eine SrgsDocument Stammregel kann über eine Stammregel verfügen. Um ein Objekt zu erstellen, das eine Grammar Stammregel angibt, verwenden Sie den oder Grammar den Grammar Konstruktor.
Verwenden Sie den Konstruktor, um eine Spracherkennung von einer SrgsDocument Spracherkennung Grammar zu erstellen und einen Basis-URI anzugeben, mit dem Grammar relative Regelbezüge aufgelöst werden.
Siehe auch
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Grammatikspezifikation für die Spracherkennung
Gilt für
Grammar(String, String)
Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei und gibt eine Stammregel an.
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)
Parameter
- path
- String
Der Pfad der Datei, die eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.
- ruleName
- String
Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null
, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.
Ausnahmen
ruleName
kann nicht aufgelöst werden oder ist nicht öffentlich, ist path
die leere Zeichenfolge ("") oder ruleName
ist null
, und die Grammatikbeschreibung definiert keine Stammregel.
path
ist null
.
Die Datei enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine lokale SRGS-Datei (cities.xml) aus einer Datei geladen und eine Regel angegeben, die als Stamm der Grammatik verwendet werden soll. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.
// 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>
Hinweise
Dieser Konstruktor übergibt keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.
Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:
XML-Formatdateien, die der SRGS-Spezifikation (W3C Speech Recognition Grammar Specification) Version 1.0 entsprechen
Grammatiken, die in einer Binärdatei mit einer CFG-Dateierweiterung kompiliert wurden
Dieser Konstruktor kompiliert Grammatikdateien im XML-Format in ein Binärformat, um sie zum Laden und Verbrauch durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit reduzieren, die zum Erstellen eines Grammar Objekts aus einer XML-Format-Grammatik erforderlich ist, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.
Um einen Grammar Basis-URI zu erstellen, der zum Auflösen relativer Regelverweise verwendet werden soll, öffnen Sie einen Dateidatenstrom für die Datei, und verwenden Sie den Grammar Konstruktor.
Siehe auch
Gilt für
Grammar(GrammarBuilder)
Initialisiert eine neue Instanz der Grammar-Klasse mit einem 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)
Parameter
- builder
- GrammarBuilder
Eine Instanz von GrammarBuilder, die die Einschränkungen für die Spracherkennungsgrammatik enthält.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungs grammatik mit Choices und GrammarBuilder Objekten erstellt. Der Grammar Konstruktor erstellt ein Grammar Objekt aus dem GrammarBuilder Objekt.
// 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;
}
Siehe auch
Gilt für
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)
Parameter
- stream
- Stream
Ein Stream, der eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.
Ausnahmen
stream
beschreibt eine Grammatik, die keine Stammregel enthält.
stream
ist null
.
Der Stream enthält keine gültige Beschreibung einer Grammatik oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungs grammatik aus einer lokalen SRGS-Datei (cities.xml) mithilfe eines Dateidatenstroms erstellt. Der Inhalt der cities.xml Datei wird im folgenden C#-Beispiel angezeigt.
// 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>
Hinweise
Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.
Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:
XML-Formatdateien, die der W3C-Grammatikspezifikation (SRGS) Version 1.0 entsprechen
Grammatiken, die in eine Binärdatei mit einer CFG-Dateierweiterung kompiliert wurden
Dieser Konstruktor kompiliert XML-Format-Grammatikdateien in ein Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.
Eine SRGS-Grammatik kann eine Stammregel definieren. Um ein Objekt aus einem Datenstrom zu erstellen und eine Grammar Stammregel anzugeben, verwenden Sie den oder Grammar den Grammar Konstruktor.
Verwenden Sie Grammar den Konstruktor, um ein Objekt aus einem Datenstrom zu erstellen und einen Grammar Basis-URI anzugeben, mit dem relative Regelbezüge aufgelöst werden.