SpeechRecognizer.AudioPosition Propiedad
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í.
Obtiene la ubicación actual en la secuencia audio generada por el dispositivo que está proporcionando entradas al módulo de reconocimiento de voz.
public:
property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan
Valor de propiedad
La ubicación actual del flujo de entrada de audio del módulo de reconocimiento de voz a través de la que ha recibido la entrada.
Ejemplos
En el ejemplo siguiente, el reconocedor de voz compartido usa una gramática de dictado para hacer coincidir la entrada de voz. Un controlador para el SpeechDetected evento escribe en la consola AudioPosition, RecognizerAudioPositiony AudioLevel cuando el reconocedor de voz detecta la voz en su entrada.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
private static SpeechRecognizer recognizer;
public static void Main(string[] args)
{
// Initialize a shared speech recognition engine.
recognizer = new SpeechRecognizer();
// Add handlers for events.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
recognizer.StateChanged +=
new EventHandler<StateChangedEventArgs>(recognizer_StateChanged);
recognizer.SpeechDetected +=
new EventHandler<SpeechDetectedEventArgs>(recognizer_SpeechDetected);
// Create a dictation grammar.
Grammar dictation = new DictationGrammar();
dictation.Name = "Dictation";
// Load the grammar object to the recognizer.
recognizer.LoadGrammarAsync(dictation);
// Keep the console window open.
Console.ReadLine();
}
// Gather information about detected speech and write it to the console.
static void recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e)
{
Console.WriteLine();
Console.WriteLine("Speech detected:");
Console.WriteLine(" Audio level: " + recognizer.AudioLevel);
Console.WriteLine(" Audio position: " + recognizer.AudioPosition);
Console.WriteLine(" Recognizer audio position: " + recognizer.RecognizerAudioPosition);
}
// Write the text of the recognition result to the console.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
// Add event handler code here.
}
// Write the name of the loaded grammar to the console.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
}
// Put the shared speech recognizer into "listening" mode.
static void recognizer_StateChanged(object sender, StateChangedEventArgs e)
{
if (e.RecognizerState != RecognizerState.Stopped)
{
recognizer.EmulateRecognizeAsync("Start listening");
}
}
}
}
Comentarios
El reconocedor compartido recibe la entrada mientras se ejecuta el reconocimiento de voz de escritorio.
La AudioPosition
propiedad hace referencia a la posición del dispositivo de entrada en su secuencia de audio generada. Por el contrario, la RecognizerAudioPosition propiedad hace referencia a la posición del reconocedor en el procesamiento de la entrada de audio. Estas posiciones pueden ser diferentes. Por ejemplo, si el reconocedor ha recibido la entrada para la que aún no ha generado un resultado de reconocimiento, el valor de la RecognizerAudioPosition propiedad es menor que el valor de la AudioPosition propiedad .