Top  > SpchWの部屋

SpchW Ver. 1.00

SAPI 5.1を利用した読み上げソフト(別途 音声合成エンジンが必要)


  テキストファイルを行単位で読み上げる
    SpchWはメールやWebページを読み上げるものではなく、他のアプリケーションと連携せずに単独でテキストファイルを読み上げるプログラムである。その主要部分はMicrosoft SAPI( Speech API ) 5.1の音声合成( TTS:Text-to-speech )の機能をAutomationで呼んでいるだけである。
 そこでSpchWに何ができるかを言うには、SAPI 5.1の機能とSpchWの処理を分けて示さなければならない。
 
 SAPI 5.1の機能   ・発声(Speak)
 ・WAVファイルへの出力
 ・TTS XMLの処理
 ・辞書(Lexicon)
 ・関係する資源(VoiceやAudioなど)の管理
 SpchWの処理   ・ユーザーインターフェース
 ・入力ファイルの行単位の切り出し
 ・コメント行の識別
 ・行番号のカウント
 ・本文/コメント行/行番号/EOF通知の声の切り替えと管理
 ・辞書(User Lexicon)のファイル保存/読み込み
  問題は環境をどうそろえるか
 
   SpchWの実行にはSAPI 5.xに対応した音声合成エンジンが必要
    WindosXPでははじめからMicrosoft SamというSAPI 5.0用の英語用音声合成エンジンが入っているので、(そのVoiceを使うだけであれば)何も準備せずにSpchWを使用することができる。Windows2000の場合にはそれがない。さてどうするか。
  MS Agentなどで使われていたSAPI 4.0用の音声合成エンジンは、SAPI 5.xと互換がないので使えず、Microsoft Speech SDK 5.1にも日本語の音声「認識」エンジンは配布されているが音声「合成」エンジンは含まれていない。(このあたりは少しややこしいので 別ページ にまとめてある。)
  つまり、フリーで利用できる日本語のSAPI 5.x用音声合成エンジンはないと思われる。(2002年12月現在)市販のものとしてはNEC SmartVoice 4.0 XP(定価5,800円)で作動が確認できた。
 
   NEC SmartVoice 4.0 XP について 
  簡単なサンプル    sample1.wma   WMA8   (77Kバイト)
 
 //古今和歌集・巻十六・哀傷歌より
 泣く涙,雨と降らなむ,わたり川,水まさりなば,かへりくるがに
 血の涙,落ちてぞたぎつ,白川は,君が世までの,名にこそありけれ
   上記の3行を以下の設定でWavファイルに出力し、
  それをMicrosoft Media 8 Encording Utilityで32kbps-44kHz-monoのWMAファイルに変換した。
   SpchWの設定:
 全般  ・本文とコメント行の区別をする
 ・本文とコメント行を両方読む
 ・行番号を読む
 ・EOF通知をする
 ・辞書登録なし
 本文  ・NEC Female Robot / 22kHz 16bit Mono / Volume=100 / Rate=-8
 ・TTS XMLを解釈しない
 コメント行  ・NEC Male / 22kHz 16bit Mono / Volume=80 / Rate=0
 ・コメント行の条件=先頭に//のある行
 ・TTS XMLを解釈しない
 行番号  ・NEC Male Robot / 22kHz 16bit Mono / Volume=80 / Rate=-6
 ・pitch=-6
 ・行の読み方=nnn行目
 EOF通知  ・NEC FeMale / 22kHz 16bit Mono / Volume=100 / Rate=0
 ・pitch=0
 ・メッセージ=「以上でサンプルの読み上げを終了します
  TTS XMLを使ったサンプル    sample2.wma   WMA8   (106Kバイト)
 
 <voice required="NAME=NEC Male Elderly"><rate absspeed="2">これは<pron sym="イソップ">伊曽保</pron>物語のお話です。</rate></voice><silence msec="1000"/>A Traveler about to set out on a journey saw his Dog stand at the
 door stretching himself. He asked him sharply:
<voice required="NAME=Microsoft Sam">"Why do you standthere gaping? Everything is ready but you, so come with me instantly." </voice>The Dog, wagging his tail, replied: <voice required="NAME=Microsoft Mike">"O, master! I am quite ready;<silence msec="500"/><emph> it is you</emph> for whom I am waiting." </voice></font>
   WMAファイルの形式は上のサンプルと同じ32kbps-44kHz-mono。SpchWの設定は以下の通り。
 (ちなみに英文の部分はProject Gutenbergの"Aesop's Fables"からの引用であり、"伊曽保"と書いてあるのはあくまで発音表記タグの例を示すためである。天草本などの「伊曽保物語(いそほものがたり)」を指しているわけではない。)
   SpchWの設定:
 全般  ・本文とコメント行の区別をしない
 ・行番号を読まない
 ・EOF通知をしない
 ・辞書登録なし
 本文  ・Micorsoft Mary / 22kHz 16bit Mono / Volume=80 / Rate=0
 ・TTS XMLを解釈する
 
 SpchWでは行単位に処理を行うため、タグは行内で完結する必要があるので見た目が煩雑になるが、このように地のVoiceを固定したままデータ側でVoiceを変えられるのはSAPI 5.1の面白いところである。

 どのようなタグが使用できるかはMicrosoft Speech SDKのヘルプファイルに記載されているが、毎回それを参照するのも手間なので、SpchWのメニュー「情報」->「TTS XML」から概要を見ることもできる。
  スクリーンショット
  Q&A
  2002/12/15 )  
 名称  SpchW   Ver. 1.00
 作動OS  Windows 2000/Windows XP
 作動環境  SAPI 5.x用の音声合成エンジンが必要
 必要なDLL  上記以外はなし
 種別  フリーウェア
 ダウンロード  SpchW100.lzh  (441Kバイト)