SpeechRecognizer.AudioPosition Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém a localização atual no fluxo de áudio gerado pelo dispositivo que fornece entrada ao reconhecor de voz.
public:
property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan
Valor de Propriedade
A localização atual no fluxo de entrada de áudio do reconhecedor de voz através da qual este recebeu entrada.
Exemplos
No exemplo seguinte, o reconhecedor de fala partilhada utiliza uma gramática de ditado para corresponder à entrada de voz. Um manipulador do SpeechDetected evento escreve na consola o AudioPosition, RecognizerAudioPosition, e AudioLevel quando o reconhecedor de fala deteta fala na 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");
}
}
}
}
Observações
O reconhecedor partilhado recebe entrada enquanto o reconhecimento de voz do ambiente de trabalho está a correr.
A AudioPosition propriedade refere-se à posição do dispositivo de entrada no seu fluxo de áudio gerado. Em contraste, a RecognizerAudioPosition propriedade refere-se à posição do reconhecedor no processamento da entrada de áudio. Estas posições podem ser diferentes. Por exemplo, se o reconhecedor recebeu uma entrada para a qual ainda não gerou um resultado de reconhecimento, então o valor da RecognizerAudioPosition propriedade é inferior ao valor da AudioPosition propriedade.