Grammar Costruttori
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializza una nuova istanza della classe Grammar.
Grammar() |
Inizializza una nuova istanza della classe Grammar. |
Grammar(SrgsDocument, String, Uri, Object[]) |
Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica e un URI di base per risolvere i relativi riferimenti. |
Grammar(Stream, String, Uri, Object[]) |
Inizializza una nuova istanza delle classi Grammar e Stream e specifica una regola radice e un URI di base per risolvere i riferimenti relativi. |
Grammar(SrgsDocument, String, Uri) |
Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i riferimenti alle regole relative. |
Grammar(SrgsDocument, String, Object[]) |
Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica. |
Grammar(Stream, String, Uri) |
Inizializza una nuova istanza della classe Grammar da un flusso, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i relativi riferimenti della regola. |
Grammar(Stream, String, Object[]) |
Inizializza una nuova istanza della classe Grammar da Stream e specifica una regola radice. |
Grammar(String, String, Object[]) |
Inizializza una nuova istanza della classe Grammar da un file contenente una definizione di grammatica e specifica il nome di una regola che sarà il punto di ingresso della grammatica. |
Grammar(SrgsDocument, String) |
Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto e specifica una regola radice. |
Grammar(Stream, String) |
Inizializza una nuova istanza della classe Grammar da Stream e specifica una regola radice. |
Grammar(String) |
Inizializza una nuova istanza della classe Grammar da un file. |
Grammar(SrgsDocument) |
Inizializza una nuova istanza della classe Grammar con un oggetto SrgsDocument. |
Grammar(String, String) |
Inizializza una nuova istanza della classe Grammar da un file e specifica una regola radice. |
Grammar(GrammarBuilder) |
Inizializza una nuova istanza della classe Grammar da un oggetto GrammarBuilder. |
Grammar(Stream) |
Inizializza una nuova istanza della classe Grammar da un oggetto Stream. |
È possibile utilizzare un Grammar costruttore per creare un'istanza Grammar da un GrammarBuilder oggetto o SrgsDocument o da un file o un Stream oggetto contenente una descrizione di una grammatica in un formato supportato. I formati supportati includono:
File in formato XML conformi a W3C Speech Recognition Grammar Specification (SRGS) versione 1.0
Grammatiche compilate in un file binario con estensione cfg
I costruttori grammaticali che accettano file grammaticali in formato XML nei relativi argomenti compilano le grammatiche XML in un formato binario per ottimizzarle per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .
Una grammatica di riconoscimento vocale può definire una regola radice. Per creare un Grammar oggetto che specifica la regola da usare come regola radice, usare un costruttore che accetta il ruleName
parametro .
Per creare un Grammar oggetto che specifica un URI di base per risolvere i riferimenti alle regole relative, usare un costruttore che accetta il baseUri
parametro .
Grammar()
Inizializza una nuova istanza della classe Grammar.
protected:
Grammar();
protected Grammar ();
Protected Sub New ()
Si applica a
Grammar(SrgsDocument, String, Uri, Object[])
Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica e un URI di base per risolvere i relativi riferimenti.
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())
Parametri
- srgsDocument
- SrgsDocument
Istanza di SrgsDocument che contiene i vincoli per la grammatica di riconoscimento vocale.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
- baseUri
- Uri
L'URI di base da utilizzare per risolvere un riferimento di regola relativo nella descrizione grammaticale oppure null
.
- parameters
- Object[]
Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.
Eccezioni
Un parametro contiene un valore non valido.
L'oggetto SrgsDocument specificato da
srgsDocument
non contiene la regola specificata inruleName
.Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.
La grammatica ha un riferimento relativo a una regola che non può essere risolto dalla regola Uri di base predefinita per le grammatiche o dall'URI fornito da
baseUri
.
Commenti
I parametri per un gestore di inizializzazione possono essere specificati anche.
Si applica a
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())
Parametri
- stream
- Stream
Stream connesso a un oggetto input/output (inclusi i file, le risorse VisualStudio e le DLL) che contiene una specifica della grammatica.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
- baseUri
- Uri
L'URI di base da utilizzare per risolvere un riferimento di regola relativo nella descrizione grammaticale oppure null
.
- parameters
- Object[]
Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.
Eccezioni
Un parametro contiene un valore non valido.
stream
è connesso a una grammatica che non contiene la regola specificata daruleName
.Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.
La grammatica contiene un riferimento relativo a una regola che non può essere risolto dalla regola Uri di base predefinita per le grammatiche o dall'URI fornito da
baseUri
.
Commenti
I parametri per un gestore di inizializzazione possono essere specificati anche.
Si applica a
Grammar(SrgsDocument, String, Uri)
Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i riferimenti alle regole relative.
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)
Parametri
- srgsDocument
- SrgsDocument
Vincoli per la grammatica del riconoscimento vocale.
- ruleName
- String
L'identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale, o null
per utilizzare la regola radice predefinita di SrgsDocument.
- baseUri
- Uri
L'URI di base da utilizzare per risolvere un riferimento di regola relativo nell'oggetto SrgsDocument oppure null
.
Eccezioni
ruleName
non può essere risolto o non è pubblico, o ruleName
è null
e srgsDocument
non contiene una regola radice.
srgsDocument
è null
.
srgsDocument
contiene un riferimento di regola che non può essere risolto.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale in un SrgsDocument oggetto che contiene un riferimento a una regola relativa al file cities.xml e specifica un URI da usare per risolvere il riferimento alla regola. Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>
Commenti
Questo costruttore non passa parametri al gestore di inizializzazione e SrgsDocument non deve contenere un gestore di inizializzazione che richiede argomenti.
Questo costruttore non convalida baseUri
. Tuttavia, il LoadGrammar
metodo di un SpeechRecognitionEngine oggetto o SpeechRecognizer genera un'eccezione se non riesce a risolvere tutti i riferimenti alla regola nella descrizione della grammatica. Se baseUri
non null
è , il LoadGrammar
metodo usa l'URI per risolvere eventuali riferimenti alle regole che non possono essere risolti in caso contrario. Se baseUri
rappresenta un file, il LoadGrammar
metodo usa sia il file designato che la directory del file quando tenta di risolvere i riferimenti alle regole relative.
Vedi anche
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- Specifica grammatica riconoscimento vocale
Si applica a
Grammar(SrgsDocument, String, Object[])
Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica.
public:
Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, parameters As Object())
Parametri
- srgsDocument
- SrgsDocument
Istanza di SrgsDocument che contiene i vincoli per la grammatica di riconoscimento vocale.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
- parameters
- Object[]
Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.
Eccezioni
Un parametro contiene un valore non valido.
L'oggetto SrgsDocument specificato da
srgsDocument
non contiene la regola specificata daruleName
.Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.
Commenti
I parametri per un gestore di inizializzazione possono essere specificati anche.
Si applica a
Grammar(Stream, String, Uri)
Inizializza una nuova istanza della classe Grammar da un flusso, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i relativi riferimenti della regola.
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)
Parametri
- stream
- Stream
Un flusso che descrive una grammatica di riconoscimento vocale in un formato supportato.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
- baseUri
- Uri
L'URI di base da utilizzare per risolvere un riferimento di regola relativo nella descrizione grammaticale oppure null
.
Eccezioni
ruleName
non può essere risolto o non è pubblico, o ruleName
è null
e la descrizione grammaticale non definisce una regola radice.
stream
è null
.
Il flusso non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.
Esempio
Nell'esempio seguente viene caricato un file SRGS locale (shuttle.xml) da un flusso di file. Il file contiene un riferimento a una regola relativa nel file di cities.xml e specifica un URI di base da usare per risolvere il riferimento alla regola. Il contenuto dei file shuttle.xml e cities.xml viene visualizzato negli esempi XML che seguono l'esempio 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>
Commenti
Questo costruttore non passa parametri al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.
Questo costruttore può creare un'istanza Grammar dai formati seguenti:
File in formato XML conformi a W3C Speech Recognition Grammar Specification (SRGS) versione 1.0
Grammatica compilata in un file binario con estensione cfg
Questo costruttore compila i file di grammatica in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un Grammar oggetto da una grammatica in formato XML compilando in anticipo la grammatica usando uno dei Compile metodi.
Questo costruttore non convalida baseUri
. Tuttavia, il LoadGrammar
metodo di un SpeechRecognitionEngine oggetto o SpeechRecognizer genera un'eccezione se non riesce a risolvere tutti i riferimenti alla regola nella descrizione della grammatica. Se baseUri
non null
è , il LoadGrammar
metodo usa l'URI per risolvere eventuali riferimenti alle regole che non possono essere risolti in caso contrario. Se baseUri
rappresenta un file, l'oggetto LoadGrammar
usa sia il file designato che la directory del file quando tenta di risolvere i riferimenti alle regole relative.
Vedi anche
Si applica a
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())
Parametri
- stream
- Stream
Stream connesso a un oggetto input/output (inclusi i file, le risorse VisualStudio e le DLL) che contiene una specifica della grammatica.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
- parameters
- Object[]
Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.
Eccezioni
stream
è connesso a una grammatica che:
Non contiene la regola specificata in
ruleName
Richiede parametri di inizializzazione diversi da quelli specificati in
parameters
Contiene un riferimento alla regola relativa che non può essere risolto dalla regola di base Uri predefinita per le grammatica.
Commenti
I parametri per un gestore di inizializzazione possono essere specificati anche.
Si applica a
Grammar(String, String, Object[])
Inizializza una nuova istanza della classe Grammar da un file contenente una definizione di grammatica e specifica il nome di una regola che sarà il punto di ingresso della grammatica.
public:
Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (string path, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : string * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String, parameters As Object())
Parametri
- path
- String
Il percorso di un file, incluso DLL, che contiene una specifica della grammatica.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
- parameters
- Object[]
Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.
Eccezioni
Un parametro contiene un valore non valido.
Il file specificato da
path
non contiene una grammatica valida o la regola specificata inruleName
.Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.
La grammatica ha un riferimento relativo a una regola che non può essere risolto dalla regola Uri di base predefinita per le grammatiche.
Commenti
I parametri per un gestore di inizializzazione possono essere specificati anche.
Si applica a
Grammar(SrgsDocument, String)
Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto e specifica una regola radice.
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)
Parametri
- srgsDocument
- SrgsDocument
Vincoli per la grammatica del riconoscimento vocale.
- ruleName
- String
L'identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale, o null
per utilizzare la regola radice predefinita di SrgsDocument.
Eccezioni
ruleName
non può essere risolto o non è pubblico, o ruleName
è null
e srgsDocument
non contiene una regola radice.
srgsDocument
è null
.
srgsDocument
contiene un riferimento di regola che non può essere risolto.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale in un'istanza SrgsDocument e viene specificata una regola da usare come regola radice della grammatica. L'esempio costruisce un Grammar oggetto dall'istanza SrgsDocument e lo carica nel motore di riconoscimento 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);
}
}
}
Commenti
Questo costruttore non passa parametri al gestore di inizializzazione e non SrgsDocument deve contenere un gestore di inizializzazione che richiede argomenti.
Per creare un oggetto da un SrgsDocument oggetto e specificare un Grammar URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore.
Vedi anche
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Specifica grammatica riconoscimento vocale
Si applica a
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)
Parametri
- stream
- Stream
Un flusso che descrive una grammatica di riconoscimento vocale in un formato supportato.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
Eccezioni
ruleName
non può essere risolto o non è pubblico, o ruleName
è null
e la descrizione grammaticale non definisce una regola radice.
stream
è null
.
Il flusso non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.
Esempio
Nell'esempio seguente viene caricato un file SRGS locale (cities.xml) da un flusso di file e viene specificata una regola da usare come radice della grammatica. Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>
Commenti
Questo costruttore non passa alcun parametro al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.
Questo costruttore può creare un'istanza Grammar dai formati seguenti:
File in formato XML conformi a W3C Speech Recognition Grammar Specification (SRGS) versione 1.0
Grammatiche compilate in un file binario con estensione cfg
Questo costruttore compila i file grammaticali in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .
Per creare un Grammar oggetto da un flusso e specificare un URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore .
Vedi anche
- Stream
- SpeechRecognitionEngine
- SpeechRecognizer
- Specifica della grammatica del riconoscimento vocale
Si applica a
Grammar(String)
Inizializza una nuova istanza della classe Grammar da un file.
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)
Parametri
- path
- String
Il percorso del file che descrive una grammatica di riconoscimento vocale in un formato supportato.
Eccezioni
Il parametro path
contiene la stringa vuota ("") o il file descrive una grammatica che non contiene una regola radice.
path
è null
.
Il file non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.
Esempio
Nell'esempio seguente viene caricata una grammatica di riconoscimento vocale da un file SRGS locale per compilare un Grammar oggetto . Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>
Commenti
Questo costruttore non passa alcun parametro al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.
Questo costruttore può creare un'istanza Grammar dai formati seguenti:
File in formato XML conformi a W3C Speech Recognition Grammar Specification (SRGS) versione 1.0
Grammatiche compilate in un file binario con estensione cfg
Questo costruttore compila i file grammaticali in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .
Una grammatica SRGS può definire una regola radice. Per creare un Grammar oggetto da una stringa e specificare una regola radice, usare il Grammar costruttore .
Per creare un Grammar oggetto che specifica un URI di base da usare per risolvere i riferimenti alle regole relative, aprire il file in un flusso di file e usare il Grammar.Grammar costruttore .
Vedi anche
Si applica a
Grammar(SrgsDocument)
Inizializza una nuova istanza della classe Grammar con un oggetto 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)
Parametri
- srgsDocument
- SrgsDocument
Vincoli per la grammatica del riconoscimento vocale.
Eccezioni
srgsDocument
non contiene una regola radice.
srgsDocument
è null
.
srgsDocument
contiene un riferimento di regola che non può essere risolto.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale in un'istanza SrgsDocument di , che viene quindi usata per costruire un Grammar oggetto .
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;
}
Commenti
Questo costruttore non passa parametri al gestore di inizializzazione e non SrgsDocument deve contenere un gestore di inizializzazione che richiede argomenti.
Un SrgsDocument oggetto può avere una regola radice. Per creare un Grammar oggetto che specifica una regola radice, utilizzare il Grammar costruttore o Grammar .
Per creare un riconoscimento Grammar vocale da un SrgsDocument oggetto e specificare un URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore .
Vedi anche
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Specifica della grammatica del riconoscimento vocale
Si applica a
Grammar(String, String)
Inizializza una nuova istanza della classe Grammar da un file e specifica una regola radice.
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)
Parametri
- path
- String
Il percorso del file che descrive una grammatica di riconoscimento vocale in un formato supportato.
- ruleName
- String
Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null
per utilizzare la regola radice predefinita della descrizione della grammatica.
Eccezioni
ruleName
non può essere risolto o non è pubblico, path
è la stringa vuota ("") o ruleName
è null
e la descrizione grammaticale non definisce una regola radice.
path
è null
.
Il file non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.
Esempio
Nell'esempio seguente viene caricato un file SRGS locale (cities.xml) da un file e viene specificata una regola da usare come radice della grammatica. Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>
Commenti
Questo costruttore non passa parametri al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.
Questo costruttore può creare un'istanza Grammar dai formati seguenti:
File in formato XML conformi a W3C Speech Recognition Grammar Specification (SRGS) versione 1.0
Grammatica compilata in un file binario con estensione cfg
Questo costruttore compila i file di grammatica in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un Grammar oggetto da una grammatica in formato XML compilando in anticipo la grammatica usando uno dei Compile metodi.
Per creare un Grammar oggetto che specifica un URI di base da usare per risolvere i riferimenti alle regole relative, aprire un flusso di file per il file e usare il Grammar costruttore.
Vedi anche
Si applica a
Grammar(GrammarBuilder)
Inizializza una nuova istanza della classe Grammar da un oggetto 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)
Parametri
- builder
- GrammarBuilder
Istanza di GrammarBuilder che contiene i vincoli per la grammatica di riconoscimento vocale.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale usando Choices oggetti e GrammarBuilder . Il Grammar costruttore crea un Grammar oggetto dall'oggetto 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;
}
Vedi anche
Si applica a
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)
Parametri
- stream
- Stream
Un flusso che descrive una grammatica di riconoscimento vocale in un formato supportato.
Eccezioni
stream
descrive una grammatica che non contiene una regola radice.
stream
è null
.
Il flusso non contiene una descrizione valida di una grammatica, o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.
Esempio
L'esempio seguente crea una grammatica di riconoscimento vocale da un file SRGS locale (cities.xml) usando un flusso di file. Il contenuto del file cities.xml viene visualizzato nell'esempio 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>
Commenti
Questo costruttore non passa alcun parametro al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.
Questo costruttore può creare un'istanza Grammar dai formati seguenti:
File in formato XML conformi a W3C Speech Recognition Grammar Specification (SRGS) versione 1.0
Grammatiche compilate in un file binario con estensione cfg
Questo costruttore compila i file grammaticali in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .
Una grammatica SRGS può definire una regola radice. Per creare un Grammar oggetto da un flusso e specificare una regola radice, usare il Grammar costruttore o Grammar .
Per creare un Grammar oggetto da un flusso e specificare un URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore .
Vedi anche
- Stream
- SpeechRecognitionEngine
- SpeechRecognizer
- Specifica della grammatica del riconoscimento vocale