SpeechRecognitionEngine.SetInputToAudioStream(Stream, SpeechAudioFormatInfo) SpeechRecognitionEngine.SetInputToAudioStream(Stream, SpeechAudioFormatInfo) SpeechRecognitionEngine.SetInputToAudioStream(Stream, SpeechAudioFormatInfo) SpeechRecognitionEngine.SetInputToAudioStream(Stream, SpeechAudioFormatInfo) Method

定義

SpeechRecognitionEngine オブジェクトを、オーディオ ストリームからの入力を受け取るように構成します。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)

パラメーター

audioSource
Stream Stream Stream Stream

オーディオ入力ストリーム。The audio input stream.

audioFormat
SpeechAudioFormatInfo SpeechAudioFormatInfo SpeechAudioFormatInfo SpeechAudioFormatInfo

オーディオ入力の形式。The format of the audio input.

次の例は、基本的な音声認識を示すコンソールアプリケーションの一部を示しています。The following example shows part of a console application that demonstrates basic speech recognition. この例では、"テストテスト 1 2 3" と "mister cooper" を一時停止で区切って、オーディオファイルの例 .wav から入力を使用します。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. この例では、次の出力が生成されます。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;  
    }  
  }  
}  

注釈

認識操作中に認識エンジンが入力ストリームの末尾に到達した場合、認識操作は使用可能な入力で終了します。If the recognizer reaches the end of the input stream during a recognition operation, the recognition operation finalizes with the available input. 入力をレコグナイザーに更新しない限り、それ以降のすべての認識操作で例外が発生する可能性があります。Any subsequent recognition operations can generate an exception, unless you update the input to the recognizer.

適用対象

こちらもご覧ください