まほろば

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

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

 Microsoft Visual C# を使った Microsoft Speech Platform 用の簡単なプログラムを作成してみました。Microsoft Speech Platform SDK に同梱されている DLL で、Microsoft.Speech.Synthesis の SpeechSynthesizer クラスを使用する方法です。音声合成記述言語 (Speech Synthesis Markup Language: SSML) を使うことができます。


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

●サンプルプログラム

◆実行ファイル
mssp_SampleC_10_Exe.zip をダウンロードして解凍し、実行ファイルを実行する。
◆SSML
 Speech Synthesis Markup Language を使えば、読み上げる言語や詳しい読み上げ方をXMLで記述をすることができます。
 以下、記述方法の一例を表にしました。詳しくは、SDKをインストール後、「MicrosoftSpeechPlatformSDK.chm」の ”Speech Synthesis Markup Language Reference (Microsoft.Speech)” を参考にしてください。
 または、【TOSHIBA】ToSpeak 制御タグ仕様 が参考になります。

項目内容記述例
voice話者<voice xml:lang="en-US">so good</voice>
<voice gender="female">そうね</voice>
prosody音質音量 <prosody volume="90"> ~ </prosody>
速度 <prosody rate="-10%"> ~ </prosody>
音程 <prosody pitch="x-high"> ~ </prosody>
emphasis強調<emphasis level="strong"> ~ </emphasis>
break一時休止<break time="2s" strength="strong "/>
say-asテキストの意味<say-as interpret-as="date" format="ymd">2012/04/29<say-as>
<say-as interpret-as="time" format="hms">17:45:30</say-as>
<say-as interpret-as="telephone">123457890</say-as>
sub読み上げ内容無変換
audioファイル再生<audio src="http://www.xxxx.net/abc.wav"> ~ </audio>

●ソースファイル

◆ダウンロード
(1)Microsoft Visual C# 2010 用ソースファイル mssp_SampleC_10_Src.zip をダウンロードして、解凍する。
(2)SpeechPlatformSample.csproj を開く。
◆Visual C# で SpeechSynthesizer クラスを使うには
(1)Microsoft Speech Platform - Software Development Kit (SDK) (Version 11) をインストールする。
(2)[プロジェクト] [参照の追加] で、[参照] タブを選択し、
C:¥Program Files¥Microsoft SDKs¥Speech¥v11.0¥Assembly¥Microsoft.Speech.dll
  を追加する。
(3)プログラムの先頭に、
    using Microsoft.Speech.Synthesis;
  を追加する。

◆大事なポイント
出力先の設定をしないとスピーカーから音が出ないようです。一番簡単なのが、
メソッド SetOutputToDefaultAudioDevice()
を実行することです。

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

●SAPI5用に改造するには
 [プロジェクト] [参照の追加] で、[.NET]タブを選択し、[System.Speech] を追加する。
 プログラムの先頭の、
using Microsoft.Speech.Synthesis;

using System.Speech.Synthesis;
に変更する。


◆関連記事

◆関連サイト