Grammar Constructeurs
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Initialise une nouvelle instance de la classe Grammar.
Surcharges
Grammar() |
Initialise une nouvelle instance de la classe Grammar. |
Grammar(SrgsDocument, String, Uri, Object[]) |
Initialise une nouvelle instance de la classe Grammar d'une instance de SrgsDocument, puis spécifie le nom d'une règle comme point d'entrée de la grammaire et un URI de base pour résoudre les références relatives. |
Grammar(Stream, String, Uri, Object[]) |
Initialise une nouvelle instance de la classe Grammar à partir d’une classe Stream, et spécifie une règle racine et un URI de base pour résoudre les références relatives. |
Grammar(SrgsDocument, String, Uri) |
Initialise une nouvelle instance de la Grammar classe à partir d’un SrgsDocument objet, spécifie une règle racine et définit un URI (Uniform Resource Identifier) de base pour résoudre les références de règle relatives. |
Grammar(SrgsDocument, String, Object[]) |
Initialise une nouvelle instance de la classe Grammar d'une instance de SrgsDocument, puis spécifie le nom d'une règle comme point d'entrée de la grammaire. |
Grammar(Stream, String, Uri) |
Initialise une nouvelle instance de la classe Grammar à partir d'un flux, spécifie une règle racine et définit un URI (Uniform Resource Identifier) de base pour résoudre les références de règles relatives. |
Grammar(Stream, String, Object[]) |
Initialise une nouvelle instance de la classe Grammar à partir de Stream et spécifie une règle racine. |
Grammar(String, String, Object[]) |
Initialise une nouvelle instance de la classe Grammar à partir d’un fichier qui contient une définition de grammaire et spécifie le nom d’une règle comme point d’entrée de la grammaire. |
Grammar(SrgsDocument, String) |
Initialise une nouvelle instance de la Grammar classe à partir d’un SrgsDocument objet et spécifie une règle racine. |
Grammar(Stream, String) |
Initialise une nouvelle instance de la classe Grammar à partir de Stream et spécifie une règle racine. |
Grammar(String) |
Initialise une nouvelle instance de la classe Grammar à partir d'un fichier. |
Grammar(SrgsDocument) |
Initialise une nouvelle instance de la classe Grammar à partir d'un objet SrgsDocument. |
Grammar(String, String) |
Initialise une nouvelle instance de la classe Grammar à partir d'un fichier et spécifie une règle racine. |
Grammar(GrammarBuilder) |
Initialise une nouvelle instance de la classe Grammar à partir d'un objet GrammarBuilder. |
Grammar(Stream) |
Initialise une nouvelle instance de la classe Grammar à partir d'un Stream. |
Remarques
Vous pouvez utiliser un Grammar constructeur pour créer une Grammar instance à partir d’un ou SrgsDocument d’un GrammarBuilder objet, ou à partir d’un fichier ou d’un Stream fichier qui contient une description d’une grammaire dans un format pris en charge. Les formats pris en charge sont les suivants :
Fichiers au format XML conformes à la spécification SRGS (Speech Recognition Grammar Specification) W3C Version 1.0
Grammaires qui ont été compilées dans un fichier binaire avec une extension de fichier .cfg
Les constructeurs de grammaire qui acceptent des fichiers de grammaire au format XML dans leurs arguments compilent les grammaires XML dans un format binaire pour les optimiser pour le chargement et la consommation par un moteur de reconnaissance vocale. Vous pouvez réduire le temps nécessaire pour construire un objet à partir d’une Grammar grammaire au format XML en compilant la grammaire à l’avance, à l’aide de l’une Compile des méthodes.
Une grammaire de reconnaissance vocale peut définir une règle racine. Pour créer un Grammar objet qui spécifie la règle à utiliser comme règle racine, utilisez un constructeur qui accepte le ruleName
paramètre.
Pour créer un Grammar objet qui spécifie un URI de base pour résoudre les références de règle relative, utilisez un constructeur qui prend le baseUri
paramètre.
Grammar()
Initialise une nouvelle instance de la classe Grammar.
protected:
Grammar();
protected Grammar ();
Protected Sub New ()
S’applique à
Grammar(SrgsDocument, String, Uri, Object[])
Initialise une nouvelle instance de la classe Grammar d'une instance de SrgsDocument, puis spécifie le nom d'une règle comme point d'entrée de la grammaire et un URI de base pour résoudre les références relatives.
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())
Paramètres
- srgsDocument
- SrgsDocument
Instance de SrgsDocument qui contient les contraintes de la syntaxe de reconnaissance vocale.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
- baseUri
- Uri
URI de base à utiliser pour résoudre toute référence e règle relative dans la description de syntaxe ou null
.
- parameters
- Object[]
Paramètres à passer au gestionnaire d'initialisation spécifié par la propriété OnInit du point d'entrée ou la règle racine de Grammar à créer. Ce paramètre peut avoir la valeur null.
Exceptions
L’un des paramètres contient une valeur non valide.
Le SrgsDocument spécifié par
srgsDocument
ne contient pas la règle spécifiée dansruleName
.Le contenu des paramètres du tableau ne correspondent pas aux arguments des gestionnaires d’initialisation de la règle.
La grammaire contient une référence de règle relative qui ne peut pas être résolue par la règle de base Uri par défaut pour les grammaires ou l’URI fournie par
baseUri
.
Remarques
Les paramètres d’un gestionnaire d’initialisation peuvent également être spécifiés.
S’applique à
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())
Paramètres
- stream
- Stream
Stream connecté à un objet d'entrée/de sortie (y compris les fichiers, ressources VisualStudio et DLL) qui contient une spécification de grammaire.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
- baseUri
- Uri
URI de base à utiliser pour résoudre toute référence e règle relative dans la description de syntaxe ou null
.
- parameters
- Object[]
Paramètres à passer au gestionnaire d'initialisation spécifié par la propriété OnInit du point d'entrée ou la règle racine de Grammar à créer. Ce paramètre peut avoir la valeur null.
Exceptions
L’un des paramètres contient une valeur non valide.
stream
est associé à une grammaire qui ne contient pas la règle spécifiée parruleName
.Le contenu des paramètres du tableau ne correspondent pas aux arguments des gestionnaires d’initialisation de la règle.
La grammaire contient une référence de règle relative qui ne peut pas être résolue par la règle de base Uri par défaut pour les grammaires ou l’URI fournie par
baseUri
.
Remarques
Les paramètres d’un gestionnaire d’initialisation peuvent également être spécifiés.
S’applique à
Grammar(SrgsDocument, String, Uri)
Initialise une nouvelle instance de la Grammar classe à partir d’un SrgsDocument objet, spécifie une règle racine et définit un URI (Uniform Resource Identifier) de base pour résoudre les références de règle relatives.
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)
Paramètres
- srgsDocument
- SrgsDocument
Contraintes pour la grammaire de reconnaissance vocale.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou la valeur null
pour utiliser la règle racine par défaut du SrgsDocument.
- baseUri
- Uri
URI de base à utiliser pour résoudre toute référence de règle relative dans SrgsDocument ou null
.
Exceptions
ruleName
ne peut pas être résolu ou n'est pas public, ou ruleName
est null
et srgsDocument
ne contient pas de règle racine.
srgsDocument
a la valeur null
.
srgsDocument
contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant crée une grammaire de reconnaissance vocale dans une SrgsDocument règle relative qui contient une référence de règle relative au fichier cities.xml et spécifie un URI à utiliser pour résoudre la référence de règle. Le contenu du fichier cities.xml s’affiche dans l’exemple XML qui suit l’exemple C#.
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>
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation et ne SrgsDocument doit pas contenir de gestionnaire d’initialisation qui nécessite des arguments.
Ce constructeur ne valide baseUri
pas . Toutefois, la LoadGrammar
méthode d’un objet ou SpeechRecognizer d’un SpeechRecognitionEngine objet lève une exception s’il ne peut pas résoudre toutes les références de règle dans la description de grammaire. Si baseUri
ce n’est pas null
le cas, la LoadGrammar
méthode utilise l’URI pour résoudre les références de règle qu’elle ne peut pas résoudre autrement. Si baseUri
elle représente un fichier, la méthode utilise à la LoadGrammar
fois le fichier désigné et le répertoire du fichier lorsqu’il tente de résoudre les références de règle relative.
Voir aussi
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- Spécification de grammaire de reconnaissance vocale
S’applique à
Grammar(SrgsDocument, String, Object[])
Initialise une nouvelle instance de la classe Grammar d'une instance de SrgsDocument, puis spécifie le nom d'une règle comme point d'entrée de la grammaire.
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())
Paramètres
- srgsDocument
- SrgsDocument
Instance de SrgsDocument qui contient les contraintes de la syntaxe de reconnaissance vocale.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
- parameters
- Object[]
Paramètres à passer au gestionnaire d'initialisation spécifié par la propriété OnInit du point d'entrée ou la règle racine de Grammar à créer. Ce paramètre peut avoir la valeur null.
Exceptions
L’un des paramètres contient une valeur non valide.
Le SrgsDocument spécifié par
srgsDocument
ne contient pas la règle spécifiée parruleName
.Le contenu des paramètres du tableau ne correspondent pas aux arguments des gestionnaires d’initialisation de la règle.
Remarques
Les paramètres d’un gestionnaire d’initialisation peuvent également être spécifiés.
S’applique à
Grammar(Stream, String, Uri)
Initialise une nouvelle instance de la classe Grammar à partir d'un flux, spécifie une règle racine et définit un URI (Uniform Resource Identifier) de base pour résoudre les références de règles relatives.
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)
Paramètres
- stream
- Stream
Flux qui décrit une Grammaire de la Reconnaissance vocale dans un format pris en charge.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
- baseUri
- Uri
URI de base à utiliser pour résoudre toute référence e règle relative dans la description de syntaxe ou null
.
Exceptions
ruleName
ne peut pas être résolu ou n'est pas public, ou ruleName
est null
et la description grammaticale ne définit aucune règle racine.
stream
a la valeur null
.
Le flux ne contient pas de description valide ou décrit une grammaire qui contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant charge un fichier SRGS local (shuttle.xml) à partir d’un flux de fichiers. Le fichier contient une référence de règle relative à une règle dans le fichier cities.xml et spécifie un URI de base à utiliser pour résoudre la référence de règle. Le contenu des fichiers shuttle.xml et cities.xml s’affiche dans les exemples XML qui suivent l’exemple C#.
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>
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation, et la description ne doit pas définir de gestionnaire d’initialisation qui nécessite des arguments.
Ce constructeur peut créer une Grammar instance à partir des formats suivants :
Fichiers au format XML conformes à la spécification de grammaire de reconnaissance vocale W3C (SRGS) version 1.0
Grammaires compilées dans un fichier binaire avec une extension de fichier .cfg
Ce constructeur compile les fichiers de grammaire au format XML dans un format binaire pour les optimiser pour le chargement et la consommation par un moteur de reconnaissance vocale. Vous pouvez réduire le temps nécessaire pour construire un objet à partir d’une Grammar grammaire au format XML en compilant la grammaire à l’avance à l’aide de l’une Compile des méthodes.
Ce constructeur ne valide baseUri
pas . Toutefois, la LoadGrammar
méthode d’un objet ou SpeechRecognizer d’un SpeechRecognitionEngine objet lève une exception s’il ne peut pas résoudre toutes les références de règle dans la description de grammaire. Si baseUri
ce n’est pas null
le cas, la LoadGrammar
méthode utilise l’URI pour résoudre les références de règle qu’elle ne peut pas résoudre autrement. S’il baseUri
représente un fichier, il utilise à LoadGrammar
la fois le fichier désigné et le répertoire du fichier lorsqu’il tente de résoudre les références de règle relative.
Voir aussi
S’applique à
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())
Paramètres
- stream
- Stream
Stream connecté à un objet d'entrée/de sortie (y compris les fichiers, ressources VisualStudio et DLL) qui contient une spécification de grammaire.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
- parameters
- Object[]
Paramètres à passer au gestionnaire d'initialisation spécifié par la propriété OnInit du point d'entrée ou la règle racine de Grammar à créer. Ce paramètre peut avoir la valeur null.
Exceptions
stream
est connecté à une syntaxe qui :
Ne contient pas la règle spécifiée dans
ruleName
Nécessite des paramètres d’initialisation différents de ceux spécifiés dans
parameters
Contient une référence de règle relative qui ne peut pas être résolue par la règle de base Uri par défaut pour les grammaires.
Remarques
Les paramètres d’un gestionnaire d’initialisation peuvent également être spécifiés.
S’applique à
Grammar(String, String, Object[])
Initialise une nouvelle instance de la classe Grammar à partir d’un fichier qui contient une définition de grammaire et spécifie le nom d’une règle comme point d’entrée de la grammaire.
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())
Paramètres
- path
- String
Chemin d'accès vers un fichier, y compris les DLL, qui contient une spécification de syntaxe.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
- parameters
- Object[]
Paramètres à passer au gestionnaire d'initialisation spécifié par la propriété OnInit du point d'entrée ou la règle racine de Grammar à créer. Ce paramètre peut avoir la valeur null.
Exceptions
L’un des paramètres contient une valeur non valide.
Le fichier spécifié par
path
ne contient pas de grammaire valide ou la règle spécifiée dansruleName
.Le contenu des paramètres du tableau ne correspondent pas aux arguments des gestionnaires d’initialisation de la règle.
La grammaire a une référence de règle relative qui ne peut pas être résolue par la règle de base Uri par défaut pour les grammaires.
Remarques
Les paramètres d’un gestionnaire d’initialisation peuvent également être spécifiés.
S’applique à
Grammar(SrgsDocument, String)
Initialise une nouvelle instance de la Grammar classe à partir d’un SrgsDocument objet et spécifie une règle racine.
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)
Paramètres
- srgsDocument
- SrgsDocument
Contraintes pour la grammaire de reconnaissance vocale.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou la valeur null
pour utiliser la règle racine par défaut du SrgsDocument.
Exceptions
ruleName
ne peut pas être résolu ou n'est pas public, ou ruleName
est null
et srgsDocument
ne contient pas de règle racine.
srgsDocument
a la valeur null
.
srgsDocument
contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant crée une grammaire de reconnaissance vocale dans une SrgsDocument instance et spécifie une règle à utiliser comme règle racine de la grammaire. L’exemple construit un Grammar objet à partir de l’instance SrgsDocument et le charge dans le moteur de reconnaissance vocale.
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);
}
}
}
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation et ne SrgsDocument doit pas contenir de gestionnaire d’initialisation qui nécessite des arguments.
Pour créer un objet à partir d’un Grammar SrgsDocument URI de base et spécifier un URI de base à utiliser pour résoudre les références de règle relative, utilisez le Grammar constructeur.
Voir aussi
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Spécification de grammaire de reconnaissance vocale
S’applique à
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)
Paramètres
- stream
- Stream
Flux qui décrit une Grammaire de la Reconnaissance vocale dans un format pris en charge.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
Exceptions
ruleName
ne peut pas être résolu ou n'est pas public, ou ruleName
est null
et la description grammaticale ne définit aucune règle racine.
stream
a la valeur null
.
Le flux ne contient pas de description valide ou décrit une grammaire qui contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant charge un fichier SRGS local (cities.xml) à partir d’un flux de fichiers et spécifie une règle à utiliser comme racine de la grammaire. Le contenu du fichier cities.xml apparaît dans l’exemple XML qui suit l’exemple C#.
// 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>
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation, et la description ne doit pas définir de gestionnaire d’initialisation qui nécessite des arguments.
Ce constructeur peut créer une Grammar instance à partir des formats suivants :
Fichiers au format XML conformes à la spécification SRGS (Speech Recognition Grammar Specification) W3C Version 1.0
Grammaires qui ont été compilées dans un fichier binaire avec une extension de fichier .cfg
Ce constructeur compile les fichiers de grammaire au format XML dans un format binaire pour les optimiser pour le chargement et la consommation par un moteur de reconnaissance vocale. Vous pouvez réduire le temps nécessaire pour construire un objet à partir d’une Grammar grammaire au format XML en compilant la grammaire à l’avance, à l’aide de l’une Compile des méthodes.
Pour créer un Grammar flux et spécifier un URI de base à utiliser pour résoudre les références de règle relative, utilisez le Grammar constructeur.
Voir aussi
S’applique à
Grammar(String)
Initialise une nouvelle instance de la classe Grammar à partir d'un fichier.
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)
Paramètres
- path
- String
Chemin d'accès du fichier qui décrit une grammaire de la reconnaissance vocale dans un format pris en charge.
Exceptions
path
contient la chaîne vide («»), ou le fichier décrit une syntaxe qui ne contient pas de règle racine.
path
a la valeur null
.
Le fichier ne contient pas de description valide ou décrit une grammaire qui contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant charge une grammaire de reconnaissance vocale à partir d’un fichier SRGS local pour générer un Grammar objet. Le contenu du fichier cities.xml apparaît dans l’exemple XML qui suit l’exemple C#.
// 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>
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation, et la description ne doit pas définir de gestionnaire d’initialisation qui nécessite des arguments.
Ce constructeur peut créer une Grammar instance à partir des formats suivants :
Fichiers au format XML conformes à la spécification SRGS (Speech Recognition Grammar Specification) W3C Version 1.0
Grammaires qui ont été compilées dans un fichier binaire avec une extension de fichier .cfg
Ce constructeur compile les fichiers de grammaire au format XML dans un format binaire pour les optimiser pour le chargement et la consommation par un moteur de reconnaissance vocale. Vous pouvez réduire le temps nécessaire pour construire un objet à partir d’une Grammar grammaire au format XML en compilant la grammaire à l’avance, à l’aide de l’une Compile des méthodes.
Une grammaire SRGS peut définir une règle racine. Pour créer un Grammar objet à partir d’une chaîne et spécifier une règle racine, utilisez le Grammar constructeur.
Pour créer un Grammar objet qui spécifie un URI de base à utiliser pour résoudre les références de règle relative, ouvrez le fichier dans un flux de fichiers et utilisez le Grammar.Grammar constructeur.
Voir aussi
S’applique à
Grammar(SrgsDocument)
Initialise une nouvelle instance de la classe Grammar à partir d'un objet 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)
Paramètres
- srgsDocument
- SrgsDocument
Contraintes pour la grammaire de reconnaissance vocale.
Exceptions
srgsDocument
ne contient pas de règle racine.
srgsDocument
a la valeur null
.
srgsDocument
contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant crée une grammaire de reconnaissance vocale dans une SrgsDocument instance, qui est ensuite utilisée pour construire un Grammar objet.
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;
}
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation et ne SrgsDocument doit pas contenir de gestionnaire d’initialisation qui nécessite des arguments.
Une SrgsDocument règle peut avoir une règle racine. Pour créer un Grammar objet qui spécifie une règle racine, utilisez le ou Grammar le Grammar constructeur.
Pour créer une reconnaissance Grammar vocale à partir d’un SrgsDocument URI de base à utiliser pour résoudre les références de règle relative, utilisez le Grammar constructeur.
Voir aussi
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Spécification grammaticale de reconnaissance vocale
S’applique à
Grammar(String, String)
Initialise une nouvelle instance de la classe Grammar à partir d'un fichier et spécifie une règle racine.
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)
Paramètres
- path
- String
Chemin d'accès du fichier qui décrit une grammaire de la reconnaissance vocale dans un format pris en charge.
- ruleName
- String
Identificateur de la règle à utiliser comme point d'entrée de la grammaire de reconnaissance vocale, ou null
pour utiliser la règle racine par défaut de la description grammaticale.
Exceptions
ruleName
ne peut pas être résolu ou n'est pas public, path
est la chaîne vide ("") ou ruleName
est null
et la description grammaticale ne définit aucune règle racine.
path
a la valeur null
.
Le fichier ne contient pas de description valide ou décrit une grammaire qui contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant charge un fichier SRGS local (cities.xml) à partir d’un fichier et spécifie une règle à utiliser comme racine de la grammaire. Le contenu du fichier cities.xml s’affiche dans l’exemple XML qui suit l’exemple C#.
// 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>
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation, et la description ne doit pas définir de gestionnaire d’initialisation qui nécessite des arguments.
Ce constructeur peut créer une Grammar instance à partir des formats suivants :
Fichiers au format XML conformes à la spécification de grammaire de reconnaissance vocale W3C (SRGS) version 1.0
Grammaires compilées dans un fichier binaire avec une extension de fichier .cfg
Ce constructeur compile les fichiers de grammaire au format XML dans un format binaire pour les optimiser pour le chargement et la consommation par un moteur de reconnaissance vocale. Vous pouvez réduire le temps nécessaire pour construire un objet à partir d’une Grammar grammaire au format XML en compilant la grammaire à l’avance à l’aide de l’une Compile des méthodes.
Pour créer un Grammar URI de base à utiliser pour résoudre les références de règle relative, ouvrez un flux de fichiers pour le fichier et utilisez le Grammar constructeur.
Voir aussi
S’applique à
Grammar(GrammarBuilder)
Initialise une nouvelle instance de la classe Grammar à partir d'un objet GrammarBuilder.
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)
Paramètres
- builder
- GrammarBuilder
Instance de GrammarBuilder qui contient les contraintes de la syntaxe de reconnaissance vocale.
Exemples
L’exemple suivant crée une grammaire de reconnaissance vocale à l’aide Choices et GrammarBuilder des objets. Le Grammar constructeur crée un Grammar objet à partir de l’objet 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;
}
Voir aussi
S’applique à
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)
Paramètres
- stream
- Stream
Flux qui décrit une Grammaire de la Reconnaissance vocale dans un format pris en charge.
Exceptions
stream
décrit une syntaxe qui ne contient pas de règle racine.
stream
a la valeur null
.
Le flux ne contient pas de description valide d'une syntaxe, ou décrit une syntaxe qui contient une référence de règle qui ne peut pas être résolue.
Exemples
L’exemple suivant crée une grammaire de reconnaissance vocale à partir d’un fichier SRGS local (cities.xml) à l’aide d’un flux de fichiers. Le contenu du fichier cities.xml apparaît en suivant l’exemple C#.
// 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>
Remarques
Ce constructeur ne transmet aucun paramètre au gestionnaire d’initialisation, et la description ne doit pas définir de gestionnaire d’initialisation qui nécessite des arguments.
Ce constructeur peut créer une Grammar instance à partir des formats suivants :
Fichiers au format XML conformes à la spécification SRGS (Speech Recognition Grammar Specification) W3C Version 1.0
Grammaires qui ont été compilées dans un fichier binaire avec une extension de fichier .cfg
Ce constructeur compile les fichiers de grammaire au format XML dans un format binaire pour les optimiser pour le chargement et la consommation par un moteur de reconnaissance vocale. Vous pouvez réduire le temps nécessaire pour construire un objet à partir d’une Grammar grammaire au format XML en compilant la grammaire à l’avance, à l’aide de l’une Compile des méthodes.
Une grammaire SRGS peut définir une règle racine. Pour créer un Grammar objet à partir d’un flux et spécifier une règle racine, utilisez le ou Grammar le Grammar constructeur.
Pour créer un Grammar objet à partir d’un flux et spécifier un URI de base à utiliser pour résoudre les références de règle relative, utilisez le Grammar constructeur.