SpeechRecognizer.LoadGrammar(Grammar) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga una gramática de reconocimiento de voz.
public:
void LoadGrammar(System::Speech::Recognition::Grammar ^ grammar);
public void LoadGrammar (System.Speech.Recognition.Grammar grammar);
member this.LoadGrammar : System.Speech.Recognition.Grammar -> unit
Public Sub LoadGrammar (grammar As Grammar)
Parámetros
- grammar
- Grammar
La gramática de reconocimiento de voz para cargar.
Ejemplos
El siguiente ejemplo forma parte de una aplicación de consola que carga una gramática de reconocimiento de voz y muestra la entrada sincrónica, los resultados de reconocimiento asociados y los eventos asociados generados por el reconocedor de voz. Si el reconocimiento de voz de Windows no se está ejecutando, al iniciar esta aplicación también se iniciará el reconocimiento de voz de Windows. Si el reconocimiento de voz de Windows se encuentra en estado de suspensión , EmulateRecognizeAsync siempre devuelve NULL.
using System;
using System.Speech.Recognition;
using System.Threading;
namespace SharedRecognizer
{
class Program
{
// Indicate whether the asynchronous emulate recognition
// operation has completed.
static bool completed;
static void Main(string[] args)
{
// Initialize an instance of the shared recognizer.
using (SpeechRecognizer recognizer = new SpeechRecognizer())
{
// Create and load a sample grammar.
Grammar testGrammar =
new Grammar(new GrammarBuilder("testing testing"));
testGrammar.Name = "Test Grammar";
recognizer.LoadGrammar(testGrammar);
// Attach event handlers for recognition events.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(
SpeechRecognizedHandler);
recognizer.EmulateRecognizeCompleted +=
new EventHandler<EmulateRecognizeCompletedEventArgs>(
EmulateRecognizeCompletedHandler);
completed = false;
// This EmulateRecognizeAsync call generates a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing testing");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
completed = false;
// This EmulateRecognizeAsync call does not match the grammar
// or generate a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing one two three");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the SpeechRecognized event.
static void SpeechRecognizedHandler(
object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null)
{
Console.WriteLine("Recognition result = {0}",
e.Result.Text ?? "<no text>");
}
else
{
Console.WriteLine("No recognition result");
}
}
// Handle the EmulateRecognizeCompleted event.
static void EmulateRecognizeCompletedHandler(
object sender, EmulateRecognizeCompletedEventArgs e)
{
if (e.Result == null)
{
Console.WriteLine("No result generated.");
}
completed = true;
}
}
}
Comentarios
El reconocedor compartido produce una excepción si la gramática de reconocimiento de voz ya está cargada, se está cargando de forma asincrónica o no se ha podido cargar en ningún reconocedor. Si el reconocedor se está ejecutando, las aplicaciones deben usar RequestRecognizerUpdate para pausar el motor de reconocimiento de voz antes de cargar, descargar, habilitar o deshabilitar una gramática.
Para cargar una gramática de reconocimiento de voz de forma asincrónica, use el LoadGrammarAsync método.