SpeechRecognizer.AudioPosition Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene la posizione corrente nel flusso audio generato dal dispositivo che fornisce l'input al riconoscimento vocale.
public:
property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan
Valore della proprietà
La posizione corrente nel flusso di input audio del riconoscimento vocale attraverso il quale è stato ricevuto l'input.
Esempio
Nell'esempio seguente, il riconoscimento vocale condiviso usa una grammatica di dettatura per trovare una corrispondenza con l'input vocale. Un gestore per l'evento SpeechDetected scrive nella console AudioPositiondi , RecognizerAudioPositione AudioLevel quando il riconoscimento vocale rileva la voce all'input.
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");
}
}
}
}
Commenti
Il riconoscitore condiviso riceve l'input mentre è in esecuzione il riconoscimento vocale desktop.
La AudioPosition
proprietà fa riferimento alla posizione del dispositivo di input nel flusso audio generato. Al contrario, la RecognizerAudioPosition proprietà fa riferimento alla posizione del riconoscitore nell'elaborazione dell'input audio. Queste posizioni possono essere diverse. Ad esempio, se il riconoscitore ha ricevuto l'input per il quale non ha ancora generato un risultato di riconoscimento, il valore della RecognizerAudioPosition proprietà è minore del valore della AudioPosition proprietà.