SpeechRecognizer.AudioPosition Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient la position actuelle dans le flux audio généré par le périphérique qui gère les entrées pour le module de reconnaissance vocale.
public:
property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan
Valeur de propriété
Position actuelle du flux d'entrée audio du module de reconnaissance vocale via lequel a été reçue l'entrée.
Exemples
Dans l’exemple suivant, le module de reconnaissance vocale partagé utilise une grammaire de dictée pour faire correspondre l’entrée vocale. Un gestionnaire de l’événement SpeechDetected écrit dans la console , AudioPositionRecognizerAudioPositionet AudioLevel lorsque le module de reconnaissance vocale détecte la parole à son entrée.
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");
}
}
}
}
Remarques
Le module de reconnaissance partagé reçoit une entrée pendant que la reconnaissance vocale du bureau est en cours d’exécution.
La AudioPosition
propriété fait référence à la position de l’appareil d’entrée dans son flux audio généré. En revanche, la RecognizerAudioPosition propriété fait référence à la position du module de reconnaissance dans le traitement de l’entrée audio. Ces positions peuvent être différentes. Par exemple, si le module de reconnaissance a reçu une entrée pour laquelle il n’a pas encore généré de résultat de reconnaissance, la valeur de la RecognizerAudioPosition propriété est inférieure à la valeur de la AudioPosition propriété.