GrammarBuilder.Append Metodo
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.
Aggiunge un elemento di grammatica alla sequenza corrente di elementi di grammatica.
Append(String, Int32, Int32) |
Aggiunge una frase ripetuta alla sequenza corrente di elementi di grammatica. |
Append(GrammarBuilder, Int32, Int32) |
Aggiunge un elemento di grammatica ripetuto alla sequenza corrente di elementi di grammatica. |
Append(String) |
Aggiunge una frase alla sequenza corrente di elementi di grammatica. |
Append(String, SubsetMatchingMode) |
Aggiunge un elemento per un subset di una frase alla sequenza corrente di elementi di grammatica. |
Append(SemanticResultKey) |
Aggiunge una chiave semantica alla sequenza corrente di elementi di grammatica. |
Append(SemanticResultValue) |
Aggiunge un valore semantico alla sequenza corrente di elementi di grammatica. |
Append(GrammarBuilder) |
Aggiunge un elemento di grammatica alla sequenza corrente di elementi di grammatica. |
Append(Choices) |
Aggiunge un set di alternative alla sequenza corrente di elementi di grammatica. |
Usare questi metodi per aggiungere elementi di grammatica a un oggetto esistente GrammarBuilder. Quando si creano elementi di grammatica, è possibile aggiungerli al generatore esistente per sviluppare progressivamente i vincoli per una grammatica di riconoscimento vocale. Ogni elemento viene aggiunto alla fine della sequenza corrente di elementi.
Questo metodo include overload per l'aggiunta GrammarBuilderdi oggetti , String, Choices, SemanticResultKeye SemanticResultValue .
Importante
Il riconoscimento vocale può generare un'eccezione quando si usa una grammatica di riconoscimento vocale che contiene elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che possono modificare ripetutamente il valore dello stesso elemento semantico.
Per altre informazioni sulla compilazione e sull'uso delle grammatica di riconoscimento vocale, vedere Riconoscimento vocale.
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge una frase ripetuta alla sequenza corrente di elementi di grammatica.
public:
void Append(System::String ^ phrase, int minRepeat, int maxRepeat);
public void Append (string phrase, int minRepeat, int maxRepeat);
member this.Append : string * int * int -> unit
Public Sub Append (phrase As String, minRepeat As Integer, maxRepeat As Integer)
Parametri
- phrase
- String
La sequenza ripetuta di parole da aggiungere.
- minRepeat
- Int32
Il numero minimo di volte in cui deve verificarsi un input che corrisponde a phrase
per costituire una corrispondenza.
- maxRepeat
- Int32
Il numero massimo di volte in cui può verificarsi un input che corrisponde a phrase
per costituire una corrispondenza.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul telefono cellulare", dove la parola "telefono" è facoltativa. GrammarBuilder e Choices gli oggetti vengono usati per costruire la grammatica. Nell'esempio viene evidenziato l'uso Append del metodo.
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Commenti
Il valore di minRepeat
deve essere maggiore o uguale a 0 e minore o uguale al valore di maxRepeat
.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge un elemento di grammatica ripetuto alla sequenza corrente di elementi di grammatica.
public:
void Append(System::Speech::Recognition::GrammarBuilder ^ builder, int minRepeat, int maxRepeat);
public void Append (System.Speech.Recognition.GrammarBuilder builder, int minRepeat, int maxRepeat);
member this.Append : System.Speech.Recognition.GrammarBuilder * int * int -> unit
Public Sub Append (builder As GrammarBuilder, minRepeat As Integer, maxRepeat As Integer)
Parametri
- builder
- GrammarBuilder
L'elemento della grammatica ripetuta da aggiungere.
- minRepeat
- Int32
Il numero minimo di volte in cui deve verificarsi un input che corrisponde all'elemento definito da builder
per costituire una corrispondenza.
- maxRepeat
- Int32
Il numero massimo di volte in cui può verificarsi un input che corrisponde all'elemento definito da builder
per costituire una corrispondenza.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul telefono cellulare", dove la parola "telefono" è facoltativa. GrammarBuilder e Choices gli oggetti vengono usati per costruire la grammatica. Nell'esempio viene evidenziato l'uso Append del metodo.
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Commenti
Il valore di minRepeat
deve essere maggiore o uguale a 0 e minore o uguale al valore di maxRepeat
.
Importante
Quando si aggiungono GrammarBuilder oggetti contenenti SemanticResultValue o SemanticResultKey istanze a un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica queste circostanze.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge una frase alla sequenza corrente di elementi di grammatica.
public:
void Append(System::String ^ phrase);
public void Append (string phrase);
member this.Append : string -> unit
Public Sub Append (phrase As String)
Parametri
- phrase
- String
La sequenza di parole da aggiungere.
Commenti
phrase
viene aggiunto alla fine della sequenza corrente di elementi.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge un elemento per un subset di una frase alla sequenza corrente di elementi di grammatica.
public:
void Append(System::String ^ phrase, System::Speech::Recognition::SubsetMatchingMode subsetMatchingCriteria);
public void Append (string phrase, System.Speech.Recognition.SubsetMatchingMode subsetMatchingCriteria);
member this.Append : string * System.Speech.Recognition.SubsetMatchingMode -> unit
Public Sub Append (phrase As String, subsetMatchingCriteria As SubsetMatchingMode)
Parametri
- phrase
- String
La sequenza di parole da aggiungere.
- subsetMatchingCriteria
- SubsetMatchingMode
La modalità di corrispondenza che la grammatica utilizza per riconoscere la frase.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per ogni SubsetMatchingMode valore. Ad esempio, la grammatica generata riconosce le frasi, "tre quattro cinque" e "uno tre cinque" e la grammatica OrderedSubset
Subsequence
riconosce la frase "tre quattro cinque", ma non la frase "uno tre cinque".
private Grammar[] CreateSubsetMatchTest()
{
List<Grammar> grammars = new List<Grammar>(4);
string phrase = "one two three four five six";
foreach (SubsetMatchingMode mode in
Enum.GetValues(typeof(SubsetMatchingMode)))
{
GrammarBuilder gb = new GrammarBuilder();
gb.Append(phrase, mode);
Grammar grammar = new Grammar(gb);
grammar.Name = mode.ToString();
grammars.Add(grammar);
}
return grammars.ToArray();
}
Commenti
L'elemento subset viene aggiunto alla fine della sequenza corrente di elementi. Per altre informazioni sulla compilazione di una grammatica di riconoscimento vocale usando stringhe, vedere Uso di stringhe per creare una grammatica di GrammarBuilder.
Per informazioni dettagliate sull'uso delle modalità di corrispondenza del subset, vedere System.Speech.Recognition.SubsetMatchingMode.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge una chiave semantica alla sequenza corrente di elementi di grammatica.
public:
void Append(System::Speech::Recognition::SemanticResultKey ^ key);
public void Append (System.Speech.Recognition.SemanticResultKey key);
member this.Append : System.Speech.Recognition.SemanticResultKey -> unit
Public Sub Append (key As SemanticResultKey)
Parametri
La chiave semantica da aggiungere.
Esempio
L'esempio seguente fa parte di un'applicazione console per la scelta di città di origine e destinazione per un volo. L'applicazione riconosce frasi come "Voglio volare da Miami a Chicago". Il gestore dell'evento SpeechRecognized usa l'oggetto SemanticResultKey per estrarre il codice aeroportuale specificato in SemanticResultValue per le città di origine e destinazione.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create a Choices object and add cities and airport codes
// using SemanticResultValue objects.
Choices cities = new Choices();
cities.Add(new SemanticResultValue("Chicago", "ORD"));
cities.Add(new SemanticResultValue("Boston", "BOS"));
cities.Add(new SemanticResultValue("Miami", "MIA"));
cities.Add(new SemanticResultValue("Dallas", "DFW"));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Load the grammar object and start recognition.
recognizer.LoadGrammarAsync(bookFlight);
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Commenti
key
viene aggiunto alla fine della sequenza corrente di elementi.
Importante
Quando si aggiunge SemanticResultValue o SemanticResultKey istanze a un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica queste circostanze.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge un valore semantico alla sequenza corrente di elementi di grammatica.
public:
void Append(System::Speech::Recognition::SemanticResultValue ^ value);
public void Append (System.Speech.Recognition.SemanticResultValue value);
member this.Append : System.Speech.Recognition.SemanticResultValue -> unit
Public Sub Append (value As SemanticResultValue)
Parametri
- value
- SemanticResultValue
Valore semantico da accodare.
Esempio
L'esempio seguente fa parte di un'applicazione console per la scelta di città di origine e destinazione per un volo. L'applicazione riconosce frasi come "Voglio volare da Miami a Chicago". Il gestore dell'evento SpeechRecognized usa l'oggetto SemanticResultKey per estrarre il codice aeroportuale specificato in SemanticResultValue per le città di origine e destinazione.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create GrammarBuilder objects and append SemanticResultValue objects
// that contain cities and airport codes.
GrammarBuilder chicago = new GrammarBuilder();
chicago.Append(new SemanticResultValue("Chicago", "ORD"));
GrammarBuilder boston = new GrammarBuilder();
boston.Append(new SemanticResultValue("Boston", "BOS"));
GrammarBuilder miami = new GrammarBuilder();
miami.Append(new SemanticResultValue("Miami", "MIA"));
GrammarBuilder dallas = new GrammarBuilder();
dallas.Append(new SemanticResultValue("Dallas", "DFW"));
// Create a Choices object and add the cities using implicit conversion from
// SemanticResultValue to GrammarBuilder.
Choices cities = new Choices();
cities.Add(new Choices(new GrammarBuilder[] { chicago, boston, miami, dallas }));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Load the grammar object and start recognition.
recognizer.LoadGrammarAsync(bookFlight);
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Commenti
value
viene aggiunto alla fine della sequenza corrente di elementi.
Importante
Quando si aggiunge SemanticResultValue o SemanticResultKey istanze a un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica queste circostanze.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge un elemento di grammatica alla sequenza corrente di elementi di grammatica.
public:
void Append(System::Speech::Recognition::GrammarBuilder ^ builder);
public void Append (System.Speech.Recognition.GrammarBuilder builder);
member this.Append : System.Speech.Recognition.GrammarBuilder -> unit
Public Sub Append (builder As GrammarBuilder)
Parametri
- builder
- GrammarBuilder
L'elemento di grammatica da aggiungere.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul telefono cellulare", dove la parola "telefono" è facoltativa. GrammarBuilder e Choices gli oggetti vengono usati per costruire la grammatica. Nell'esempio viene evidenziato l'uso Append del metodo.
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Commenti
builder
viene aggiunto alla fine della sequenza corrente di elementi grammaticali.
Nota
Quando si aggiungono GrammarBuilder oggetti contenenti SemanticResultValue o SemanticResultKey istanze a un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica queste circostanze.
Vedi anche
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
- Origine:
- GrammarBuilder.cs
Aggiunge un set di alternative alla sequenza corrente di elementi di grammatica.
public:
void Append(System::Speech::Recognition::Choices ^ alternateChoices);
public void Append (System.Speech.Recognition.Choices alternateChoices);
member this.Append : System.Speech.Recognition.Choices -> unit
Public Sub Append (alternateChoices As Choices)
Parametri
- alternateChoices
- Choices
Il set di alternative da aggiungere.
Esempio
Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul telefono cellulare", dove la parola "telefono" è facoltativa. Nell'esempio viene evidenziato l'uso Append del metodo.
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Commenti
alternateChoices
viene aggiunto alla fine della sequenza corrente di elementi.
Importante
Quando si aggiungono Choices oggetti contenenti SemanticResultValue o SemanticResultKey istanze a un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica queste circostanze.
Si applica a
.NET 9 e altre versioni
Prodotto | Versioni |
---|---|
.NET | 6, 7, 8, 9 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 |
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: