Microsoft Speech Platform

導入

SDKにはx86用とx64用の2つがあり、開発環境に応じたものを導入する必要があります。

Download Microsoft Speech Platform - Software Development Kit (SDK) (Version 11) from Official Microsoft Download Center

実行にはランタイムのインストールも必要です。これにもx86とx64の2つがあるため、環境に合わせてインストールします。SDKと同一プラットフォーム向けのランタイムは、これのインストール フォルダのRedist\SpeechPlatformRuntime.msiを実行することでもインストールできます。なおこれは、Microsoft Speech Platform - Runtimeで配布されているものと同一です。

音声エンジンのインストール

SDKやランタイムには音声エンジンが含まれていないため、対象とする言語に合わせて別途インストールが必要です。必要なファイルは次のページからダウンロードできます。

Download Microsoft Speech Platform - Runtime Languages (Version 11) from Official Microsoft Download Center

このページでは多数のファイルが公開されていますが、それらは次の規則で命名されています。

  • 音声認識 (speech recognition) … MSSpeech_SR_xx-YY_TELE.msi
  • 音声合成 (speech synthesis) … MSSpeech_TTS_xx-YY_Zzzz.msi

音声認識 (Speech Recognition API)

static void Main( string[] args )
{
    // あか、みどり、あおを認識する、単純な文法を作成する
    Choices choices = new Choices();
    choices.Add( new string[] { "あか", "みどり", "あお" } );

    // GrammarBuilderのインスタンスを作成し、Choicesを追加する
    GrammarBuilder grammarBuilder = new GrammarBuilder();
    grammarBuilder.Append( choices );

    // Grammarのインスタンスを作成する
    Grammar grammar = new Grammar( grammarBuilder );


    // SpeechRecognitionEngineのインスタンスを作成し、Grammarを読み込む
    SpeechRecognitionEngine speechRecognitionEngine =
        new SpeechRecognitionEngine( new System.Globalization.CultureInfo( "ja-JP" ) );

    speechRecognitionEngine.LoadGrammar( grammar );

    // Waveファイルを入力ソースとして設定する
    speechRecognitionEngine.SetInputToWaveFile( @"c:\sample.wav" );

    // 音声認識イベントのハンドラを登録する
    speechRecognitionEngine.SpeechRecognized +=
        new EventHandler<SpeechRecognizedEventArgs>( SpeechRecognized );

    // 認識を開始する
    speechRecognitionEngine.Recognize();
}

// 音声認識イベントのハンドラ
static void SpeechRecognized( object sender, SpeechRecognizedEventArgs e )
{
    // 認識したテキストを出力する
    Console.Write( e.Result.Text );
}
Get Started with Speech Recognition (Microsoft.Speech) | MSDN

トラブル対処法

Speech Recognition is not available on this system. SAPI and Speech Recognition engines cannot be found.

SpeechRecognitionEngineのインスタンス作成時に「Speech Recognition is not available on this system. SAPI and Speech Recognition engines cannot be found.」として例外が発生することがあります。これは対象プラットフォーム向けのランタイムがインストールされていないのが原因で、それをインストールすることで解決できます。Speech Recognition is not available on this system. SAPI and Speech Recognition engines cannot be found

No recognizer of the required ID found.

SpeechRecognitionEngineのインスタンス生成時に「No recognizer of the required ID found.」として例外が発生することがあります。これは指定の言語用の音声エンジンがインストールされていないのが原因で、それをインストールすることで解決できます。

音声合成 (Speech Synthesis API)

複数の技術系サイトから、まとめて検索