SpeechRecognizer Clase
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í.
Proporciona acceso al servicio de reconocimiento de voz compartido disponible en el escritorio de Windows.
public ref class SpeechRecognizer : IDisposable
public class SpeechRecognizer : IDisposable
type SpeechRecognizer = class
interface IDisposable
Public Class SpeechRecognizer
Implements IDisposable
- Herencia
-
SpeechRecognizer
- Implementaciones
Ejemplos
El ejemplo siguiente forma parte de una aplicación de consola que carga una gramática de reconocimiento de voz y muestra la entrada emulada asincró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 está en estado inactivo , 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;
// Start asynchronous emulated recognition.
// This matches the grammar and generates a SpeechRecognized event.
recognizer.EmulateRecognizeAsync("testing testing");
// Wait for the asynchronous operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
completed = false;
// Start asynchronous emulated recognition.
// This 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 SpeechRecognizeCompleted event.
static void EmulateRecognizeCompletedHandler(
object sender, EmulateRecognizeCompletedEventArgs e)
{
if (e.Result == null)
{
Console.WriteLine("No result generated.");
}
// Indicate the asynchronous operation is complete.
completed = true;
}
}
}
Comentarios
Las aplicaciones usan el reconocedor compartido para acceder al reconocimiento de voz de Windows. Use el SpeechRecognizer objeto para agregar a la experiencia del usuario de voz de Windows.
Esta clase proporciona control sobre varios aspectos del proceso de reconocimiento de voz:
Para administrar las gramáticas de reconocimiento de voz, use , LoadGrammarLoadGrammarAsyncUnloadGrammar, , UnloadAllGrammarsy .Grammars
Para obtener información sobre las operaciones actuales de reconocimiento de voz, suscríbase a los SpeechRecognizerSpeechDetectedeventos , SpeechHypothesized, SpeechRecognitionRejectedy SpeechRecognized .
Para ver o modificar el número de resultados alternativos que devuelve el reconocedor, use la MaxAlternates propiedad . El reconocedor devuelve resultados de reconocimiento en un RecognitionResult objeto .
Para acceder o supervisar el estado del reconocedor compartido, use las AudioLevelpropiedades , AudioPosition, AudioStateEnabled, PauseRecognizerOnRecognition, , RecognizerAudioPosition, y State los AudioLevelUpdatedeventos , AudioSignalProblemOccurredAudioStateChanged, y StateChanged .
Para sincronizar los cambios en el reconocedor, use el RequestRecognizerUpdate método . El reconocedor compartido usa más de un subproceso para realizar tareas.
Para emular la entrada al reconocedor compartido, use los EmulateRecognize métodos y EmulateRecognizeAsync .
La configuración del reconocimiento de voz de Windows se administra mediante el uso del cuadro de diálogo Propiedades de voz en el Panel de control. Esta interfaz se usa para seleccionar el lenguaje y el motor de reconocimiento de voz de escritorio predeterminados, el dispositivo de entrada de audio y el comportamiento de suspensión del reconocimiento de voz. Si se cambia la configuración del reconocimiento de voz de Windows mientras se ejecuta la aplicación (por ejemplo, si el reconocimiento de voz está deshabilitado o se cambia el idioma de entrada), el cambio afecta a todos los SpeechRecognizer objetos.
Para crear un reconocedor de voz en proceso independiente del reconocimiento de voz de Windows, use la SpeechRecognitionEngine clase .
Nota:
Dispose Llame siempre antes de liberar la última referencia al reconocedor de voz. De lo contrario, los recursos que está usando no se liberarán hasta que el recolector de elementos no utilizados llame al método del Finalize
objeto recognizer.
Constructores
SpeechRecognizer() |
Inicializa una nueva instancia de la clase SpeechRecognizer. |
Propiedades
AudioFormat |
Obtiene el formato del sonido que es recibido por el reconocedor de voz. |
AudioLevel |
Obtiene el nivel del sonido que es recibido por el reconocedor de voz. |
AudioPosition |
Obtiene la ubicación actual en la secuencia audio generada por el dispositivo que está proporcionando entradas al módulo de reconocimiento de voz. |
AudioState |
Obtiene el estado del sonido que es recibido por el reconocedor de voz. |
Enabled |
Obtiene o establece un valor que indica si este objeto SpeechRecognizer está listo para procesar voz. |
Grammars |
Obtiene una colección de los objetos Grammar cargados en esta instancia SpeechRecognizer. |
MaxAlternates |
Obtiene o establece el número máximo de resultados alternativos de reconocimiento que el reconocedor compartido devuelve para cada operación de reconocimiento. |
PauseRecognizerOnRecognition |
Obtiene o establece un valor que indica si se detiene el reconocedor compartido en las operaciones de reconocimiento mientras una aplicación controla un evento SpeechRecognized. |
RecognizerAudioPosition |
Obtiene la ubicación actual del reconocedor en la entrada de audio que está procesando. |
RecognizerInfo |
Obtiene información sobre el reconocedor de voz compartido. |
State |
Obtiene el estado de un objeto SpeechRecognizer. |
Métodos
Dispose() |
Desecha el objeto SpeechRecognizer. |
Dispose(Boolean) |
Desecha el objeto SpeechRecognizer y libera los recursos utilizados durante la sesión. |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
Emula la entrada de palabras específicas al módulo de reconocimiento de voz compartido, usando texto en lugar de audio para el reconocimiento de voz sincrónico, y especifica cómo el reconocedor controla la comparación Unicode entre las palabras y las gramáticas reconocimiento de voz cargadas. |
EmulateRecognize(String) |
Emula la entrada de una frase al módulo de reconocimiento de voz compartido, usando el texto en lugar de audio para el reconocimiento de voz sincrónico. |
EmulateRecognize(String, CompareOptions) |
Emula la entrada de una frase al módulo de reconocimiento de voz compartido, usando texto en lugar de audio para el reconocimiento de voz sincrónico, y especifica cómo el reconocedor controla la comparación Unicode entre la frase y las gramáticas reconocimiento de voz cargadas. |
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Emula la entrada de palabras específicas al módulo de reconocimiento de voz compartido, usando texto en lugar de audio para el reconocimiento de voz asincrónico, y especifica cómo el reconocedor controla la comparación Unicode entre las palabras y las gramáticas reconocimiento de voz cargadas. |
EmulateRecognizeAsync(String) |
Emula la entrada de una frase al módulo de reconocimiento de voz compartido, usando el texto en lugar de audio para el reconocimiento de voz asincrónico. |
EmulateRecognizeAsync(String, CompareOptions) |
Emula la entrada de una frase al módulo de reconocimiento de voz compartido, usando texto en lugar de audio para el reconocimiento de voz asincrónico, y especifica cómo el reconocedor controla la comparación Unicode entre la frase y las gramáticas reconocimiento de voz cargadas. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
LoadGrammar(Grammar) |
Carga una gramática de reconocimiento de voz. |
LoadGrammarAsync(Grammar) |
De forma asincrónica carga una gramática de reconocimiento de voz. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
RequestRecognizerUpdate() |
Solicita que el reconocedor compartido pause y actualice su estado. |
RequestRecognizerUpdate(Object) |
Solicita que el reconocedor compartido pause y actualice su estado y proporcione un token de usuario para el evento asociado. |
RequestRecognizerUpdate(Object, TimeSpan) |
Solicita que el reconocedor compartido pause y actualice su estado y proporcione un desplazamiento y un token de usuario para el evento asociado. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
UnloadAllGrammars() |
Descarga todas las gramáticas de reconocimiento de voz del reconocedor compartido. |
UnloadGrammar(Grammar) |
Descarga una gramática especificada de reconocimiento de voz del reconocedor compartido. |
Eventos
AudioLevelUpdated |
Se produce cuando el reconocedor compartido indica el nivel de su entrada de audio. |
AudioSignalProblemOccurred |
Se produce cuando el reconocedor encuentra un problema en la señal audio. |
AudioStateChanged |
Se produce cuando cambia el estado en el sonido que recibe el reconocedor. |
EmulateRecognizeCompleted |
Se produce cuando el reconocedor compartido finaliza una operación asincrónica de reconocimiento para una entrada emulada. |
LoadGrammarCompleted |
Se produce cuando el reconocedor finaliza la carga asincrónica de una gramática de reconocimiento de voz. |
RecognizerUpdateReached |
Se produce cuando el reconocedor realiza una pausa para sincronizar el reconocimiento con otras operaciones. |
SpeechDetected |
Se produce cuando el reconocedor detecta una entrada que puede identificar como voz. |
SpeechHypothesized |
Se produce cuando el reconocedor ha reconocido una palabra o palabras que pueden ser un componente de varias frases completas en una gramática. |
SpeechRecognitionRejected |
Se produce cuando el reconocedor recibe una entrada que no coincide con ninguna de las gramáticas de reconocimiento de voz que ha cargado. |
SpeechRecognized |
Se produce cuando el reconocedor recibe una entrada que coincide con una de sus gramáticas de reconocimiento de voz. |
StateChanged |
Se produce cuando cambia el estado actual del motor de reconocimiento de voz con tecnología Windows Desktop Speech. |