SpeechRecognitionEngine.AudioPosition Propiedad

Definición

Obtiene la ubicación actual en la secuencia audio generada por el dispositivo que está proporcionando entradas al módulo de SpeechRecognitionEngine.

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 en la secuencia de audio generada por el dispositivo de entrada.

Ejemplos

En el ejemplo siguiente, el reconocedor de voz en proceso 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 SpeechRecognitionEngine recognizer;  
    public static void Main(string[] args)  
    {  

      // Initialize an in-process speech recognition engine for US English.  
      using (recognizer = new SpeechRecognitionEngine(  
        new System.Globalization.CultureInfo("en-US")))  
      {  
        recognizer.SetInputToDefaultAudioDevice();  

        // Create a grammar for finding services in different cities.  
        Choices services = new Choices(new string[] { "restaurants", "hotels", "gas stations" });  
        Choices cities = new Choices(new string[] { "Seattle", "Boston", "Dallas" });  

        GrammarBuilder findServices = new GrammarBuilder("Find");  
        findServices.Append(services);  
        findServices.Append("near");  
        findServices.Append(cities);  

        // Create a Grammar object from the GrammarBuilder and load it to the recognizer.  
        Grammar servicesGrammar = new Grammar(findServices);  
        recognizer.LoadGrammarAsync(servicesGrammar);  

        // Add handlers for events.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  
        recognizer.SpeechDetected +=  
          new EventHandler<SpeechDetectedEventArgs>(recognizer_SpeechDetected);  

        // Start asynchronous recognition.  
        recognizer.RecognizeAsync();  
        Console.WriteLine("Starting asynchronous recognition...");  

        // 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 at the event: " + e.AudioPosition);  
      Console.WriteLine("  Current audio position: " + recognizer.AudioPosition);  
      Console.WriteLine("  Current 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("\nSpeech recognized: " + e.Result.Text);  

      // Add event handler code here.  
    }  
  }  
}  

Comentarios

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 dentro de su 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 .

Se aplica a

Consulte también