SpeechRecognizer.AudioPosition Egenskap

Definition

Hämtar den aktuella platsen i ljudströmmen som genereras av enheten som tillhandahåller indata till taligenkänningen.

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

Egenskapsvärde

Den aktuella platsen i taligenkänningens ljudindataström genom vilken den har tagit emot indata.

Exempel

I följande exempel använder den delade taligenkänningen en dikterings grammatik för att matcha talindata. En hanterare för SpeechDetected händelsen skriver till konsolen AudioPosition, RecognizerAudioPositionoch AudioLevel när taligenkänningen identifierar tal vid indata.

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");
      }
    }
  }
}

Kommentarer

Den delade identifieraren tar emot indata medan skrivbordstaligenkänningen körs.

Egenskapen AudioPosition refererar till indataenhetens position i den genererade ljudströmmen. Egenskapen refererar däremot RecognizerAudioPosition till identifierarens position vid bearbetning av ljudindata. Dessa positioner kan vara olika. Om identifieraren till exempel har tagit emot indata som den ännu inte har genererat ett igenkänningsresultat för är värdet RecognizerAudioPosition för egenskapen mindre än värdet för AudioPosition egenskapen.

Gäller för

Se även