SpeechRecognizer.AudioPosition Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de huidige locatie op in de audiostream die wordt gegenereerd door het apparaat dat invoer levert aan de spraakherkenning.
public:
property TimeSpan AudioPosition { TimeSpan get(); };
public TimeSpan AudioPosition { get; }
member this.AudioPosition : TimeSpan
Public ReadOnly Property AudioPosition As TimeSpan
Waarde van eigenschap
De huidige locatie in de audio-invoerstroom van de spraakherkenning waarmee deze invoer heeft ontvangen.
Voorbeelden
In het volgende voorbeeld gebruikt de gedeelde spraakherkenning een dicteer grammatica die overeenkomt met spraakinvoer. Een handler voor de SpeechDetected gebeurtenis schrijft naar de console de AudioPosition, RecognizerAudioPositionen AudioLevel wanneer de spraakherkenning spraak detecteert bij de invoer.
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");
}
}
}
}
Opmerkingen
De shared recognizer ontvangt invoer terwijl de spraakherkenning op het bureaublad wordt uitgevoerd.
De AudioPosition eigenschap verwijst naar de positie van het invoerapparaat in de gegenereerde audiostream. De eigenschap verwijst daarentegen RecognizerAudioPosition naar de positie van de recognizer bij het verwerken van audio-invoer. Deze posities kunnen verschillen. Als de recognizer bijvoorbeeld invoer heeft ontvangen waarvoor het nog geen herkenningsresultaat heeft gegenereerd, is de waarde van de RecognizerAudioPosition eigenschap kleiner dan de waarde van de AudioPosition eigenschap.