Поделиться через


SpeechRecognizer.AudioPosition Свойство

Определение

Получает текущую позицию в аудиопотоке, создаваемом устройством, которое предоставляет входные данные для распознавателя речи.

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

Значение свойства

Текущее местоположение во входном потоке аудио распознавателя речи, через который он получил входные данные.

Примеры

В следующем примере распознаватель общей речи использует грамматику диктовки для сопоставления входных данных речи. Обработчик события SpeechDetected записывает в консоль AudioPosition, и AudioLevel , RecognizerAudioPositionкогда распознаватель речи обнаруживает речь на входных данных.

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

Комментарии

Общий распознаватель получает входные данные во время распознавания речи на рабочем столе.

Свойство AudioPosition ссылается на позицию устройства ввода в созданном звуковом потоке. В отличие от этого, RecognizerAudioPosition свойство ссылается на позицию распознавателя при обработке входных аудиоданных. Эти позиции могут быть разными. Например, если распознаватель получил входные данные, для которых он еще не создал результат распознавания, то значение RecognizerAudioPosition свойства меньше значения AudioPosition свойства.

Применяется к

См. также раздел