SpeechRecognitionEngine.SetInputToAudioStream(Stream, SpeechAudioFormatInfo) Método
Definição
Configura o objeto SpeechRecognitionEngine para receber entrada de um fluxo de áudio.Configures the SpeechRecognitionEngine object to receive input from an audio stream.
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)
Parâmetros
- audioSource
- Stream
O fluxo de entrada de áudio.The audio input stream.
- audioFormat
- SpeechAudioFormatInfo
O formato da entrada de áudio.The format of the audio input.
Exemplos
O exemplo a seguir mostra parte de um aplicativo de console que demonstra o reconhecimento de fala básico.The following example shows part of a console application that demonstrates basic speech recognition. O exemplo usa a entrada de um arquivo de áudio, example. wav, que contém as frases, "testando o teste 1 2 3" e "Mister Cooper", separados por uma pausa.The example uses input from an audio file, example.wav, that contains the phrases, "testing testing one two three" and "mister cooper", separated by a pause. O exemplo gera a saída a seguir.The example generates the following output.
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;
}
}
}
Comentários
Se o reconhecedor atingir o final do fluxo de entrada durante uma operação de reconhecimento, a operação de reconhecimento finalizará com a entrada disponível.If the recognizer reaches the end of the input stream during a recognition operation, the recognition operation finalizes with the available input. Qualquer operação de reconhecimento subsequente pode gerar uma exceção, a menos que você atualize a entrada para o reconhecedor.Any subsequent recognition operations can generate an exception, unless you update the input to the recognizer.