SpeechRecognitionEngine.AudioPosition Eigenschap

Definitie

Hiermee haalt u de huidige locatie op in de audiostream die wordt gegenereerd door het apparaat dat invoer levert aan de SpeechRecognitionEngine.

public:
 property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan

Waarde van eigenschap

De huidige locatie in de audiostream die wordt gegenereerd door het invoerapparaat.

Voorbeelden

In het volgende voorbeeld gebruikt de in-process spraakherkenning een dicteer grammatica die overeenkomt met spraakinvoer. Een handler voor de SpeechDetected gebeurtenis schrijft naar de console de AudioPosition, RecognizerAudioPositionen AudioLevel wanneer de spraakherkenning spraak detecteert bij de invoer.

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.
    }
  }
}

Opmerkingen

De AudioPosition eigenschap verwijst naar de positie van het invoerapparaat in de gegenereerde audiostream. De eigenschap verwijst daarentegen RecognizerAudioPosition naar de positie van de recognizer binnen de audio-invoer. Deze posities kunnen verschillen. Als de recognizer bijvoorbeeld invoer heeft ontvangen waarvoor het nog geen herkenningsresultaat heeft gegenereerd, is de waarde van de RecognizerAudioPosition eigenschap kleiner dan de waarde van de AudioPosition eigenschap.

Van toepassing op

Zie ook