まほろば

Microsoft Speech Platform のサンプルプログラム その1 (C#)

投稿者:マーチン  2012年5月4日 
カテゴリ:障碍者全般::音声合成

 Microsoft Visual C# を使った Microsoft Speech Platform 用の簡単なプログラムを作成してみました。"Microsoft Speech Object Library" SpeechLib の SpVoice COM クラスを使用する方法です。SAPI text-to-speech (TTS) 拡張マークアップ言語(XML) を使うことが可能です。


【動作環境】 Windows XP / Vista / 7 (32bit/64bit)
       .NET Framework 2.0 以降が必要
       Microsoft Server Speech 11.0
          ⇒ 【まほろば】無料の音声合成エンジン 「Microsoft Speech Platform 11」
【開発環境】 Microsoft Visual C# 2010 Express
【ソフト種別】 オープンソース (改変、再配布は自由です)

●サンプルプログラム

◆実行ファイル
mssp_SampleA_13_Exe.zip をダウンロードして解凍し、実行ファイルを実行する。
◆TTS XML
 SAPI text-to-speech (TTS) 拡張マークアップ言語(XML)は、W3Cの音声合成マークアップ言語(SSML)の詳細が完成する前に、開発されたものです。現在は、SSMLが音声合成用の好ましいマークアップ言語ですが、SAPI TTS XML もまだサポートされています。
 以下、記述方法の一例を表にしました。詳しくは、SDKをインストール後、「MicrosoftSpeechPlatformSDK.chm」の ”XML TTS Tutorial” を参考にしてください。
 または、Galatea Dialog Studio:日本語テキスト音声合成用記号(JEIDA-62-2000)要素 が参考になります。

項目内容記述例
lang言語<lang langid="409">so good</lang>
voice話者<voice required="Name=Microsoft Sam">hello</voice>
<voice required="Gender=Female">そうね</voice>
volume音量<volume level="90"> ~ </volume>
rate 速度<rate absspeed="5"> ~ </rate>
<rate speed="-5"> ~ </rate>
pitch音程<pitch absmiddle="-5"> ~ </pitch>
<pitch middle="2"> ~ </pitch>
emph強調<emph> ~ </emph>
silence一時休止<silence msec="2000"/>
contextテキストの意味<context id="date_ymd">2012/05/05</context>
<context id="time">17:45</context>
<context id="number_decimal">3.14156</context>
partofsp品詞の指定<partofsp part="Noun"> ~ </partofsp>
pron読み上げ内容<pron sym="ムヘンカン"/>無変換<pron>

●ソースファイル

◆ダウンロード
(1)Microsoft Visual C# 2010 用ソースファイル mssp_SampleA_13_Src.zip をダウンロードして、解凍する。
(2)SpeechPlatformSample.csproj を開く。
◆Visual C# で SpVoice COM クラスを使うには
(1)[プロジェクト] [参照の追加] で、[COM] タブを選択し、
Microsoft Speech Object LIbrary 11.0
(パス C:¥Program Files¥Common Files¥Microsoft Shared¥Speech¥Platform¥v11.0¥mssps.dll)
  を追加する。

(3)プログラムの先頭に、
    using SpeechLib;
  を追加する。

◆ソースの主要部分
・変数の定義
・音声リストの作成
・音声、音量、速度の設定と、読み上げ実行

●SAPI5用に改造するには
参照設定の
Microsoft Speech Object LIbrary 11.0
を削除し、
Microsoft Speech Object Library 5.3
(パス C:¥Windows¥System32¥Speech¥Common¥sapi.dll)
を追加する。


◆関連記事

◆関連サイト