SpeechRecognitionEngine.SetInputToAudioStream Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nakonfiguruje objekt tak, SpeechRecognitionEngine aby přijímal vstup ze zvukového streamu.
public:
void SetInputToAudioStream(System::IO::Stream ^ audioSource, System::Speech::AudioFormat::SpeechAudioFormatInfo ^ audioFormat);
public void SetInputToAudioStream (System.IO.Stream audioSource, System.Speech.AudioFormat.SpeechAudioFormatInfo audioFormat);
member this.SetInputToAudioStream : System.IO.Stream * System.Speech.AudioFormat.SpeechAudioFormatInfo -> unit
Public Sub SetInputToAudioStream (audioSource As Stream, audioFormat As SpeechAudioFormatInfo)
Parametry
- audioSource
- Stream
Datový proud zvukového vstupu.
- audioFormat
- SpeechAudioFormatInfo
Formát zvukového vstupu.
Příklady
Následující příklad ukazuje část konzolové aplikace, která demonstruje základní rozpoznávání řeči. Příklad používá vstup ze zvukového souboru example.wav, který obsahuje fráze "testing one two three" a "mister cooper" oddělené pauzou. Příklad vygeneruje následující výstup.
Starting asynchronous recognition...
Recognized text = Testing testing 123
Recognized text = Mr. Cooper
End of stream encountered.
Done.
Press any key to exit...
using System;
using System.Globalization;
using System.IO;
using System.Speech.AudioFormat;
using System.Speech.Recognition;
using System.Threading;
namespace InputExamples
{
class Program
{
// Indicate whether asynchronous recognition is complete.
static bool completed;
static void Main(string[] args)
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
// Create and load a grammar.
Grammar dictation = new DictationGrammar();
dictation.Name = "Dictation Grammar";
recognizer.LoadGrammar(dictation);
// Configure the input to the recognizer.
recognizer.SetInputToAudioStream(
File.OpenRead(@"c:\temp\audioinput\example.wav"),
new SpeechAudioFormatInfo(
44100, AudioBitsPerSample.Sixteen, AudioChannel.Mono));
// Attach event handlers.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(
SpeechRecognizedHandler);
recognizer.RecognizeCompleted +=
new EventHandler<RecognizeCompletedEventArgs>(
RecognizeCompletedHandler);
// Perform recognition of the whole file.
Console.WriteLine("Starting asynchronous recognition...");
completed = false;
recognizer.RecognizeAsync(RecognizeMode.Multiple);
while (!completed)
{
Thread.Sleep(333);
}
Console.WriteLine("Done.");
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the SpeechRecognized event.
static void SpeechRecognizedHandler(
object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null && e.Result.Text != null)
{
Console.WriteLine(" Recognized text = {0}", e.Result.Text);
}
else
{
Console.WriteLine(" Recognized text not available.");
}
}
// Handle the RecognizeCompleted event.
static void RecognizeCompletedHandler(
object sender, RecognizeCompletedEventArgs e)
{
if (e.Error != null)
{
Console.WriteLine(" Error encountered, {0}: {1}",
e.Error.GetType().Name, e.Error.Message);
}
if (e.Cancelled)
{
Console.WriteLine(" Operation cancelled.");
}
if (e.InputStreamEnded)
{
Console.WriteLine(" End of stream encountered.");
}
completed = true;
}
}
}
Poznámky
Pokud rozpoznávání dosáhne konce vstupního streamu během operace rozpoznávání, operace rozpoznávání se dokončí s dostupným vstupem. Všechny následné operace rozpoznávání můžou vygenerovat výjimku, pokud neaktualizujete vstup na rozpoznávání.