SpeechRecognizer.AudioPosition Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o local atual no stream de áudio que está sendo gerado pelo dispositivo que está fornecendo a entrada para o reconhecedor de fala.
public:
property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan
Valor da propriedade
O local atual no fluxo de entrada de áudio do reconhecedor de fala por meio do qual ele recebeu entrada.
Exemplos
No exemplo a seguir, o reconhecedor de fala compartilhada usa uma gramática de ditado para corresponder à entrada de fala. Um manipulador para o SpeechDetected evento grava no console do AudioPosition, RecognizerAudioPositione AudioLevel quando o reconhecedor de fala detecta a fala em sua 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");
}
}
}
}
Comentários
O reconhecedor compartilhado recebe entrada enquanto o reconhecimento de fala da área de trabalho está em execução.
A AudioPosition
propriedade faz referência à posição do dispositivo de entrada em seu fluxo de áudio gerado. Por outro lado, a RecognizerAudioPosition propriedade faz referência à posição do reconhecedor no processamento de entrada de áudio. Essas posições podem ser diferentes. Por exemplo, se o reconhecedor recebeu entrada para a qual ainda não gerou um resultado de reconhecimento, o valor da RecognizerAudioPosition propriedade será menor que o valor da AudioPosition propriedade.