Top  > 雑記帳  > キーワード別  > 音声合成

音声合成に関する雑記

  2002年11月20日(水)   音声合成の話・追伸
この話はBCBでのプログラムができるまでペンディングにしようと思ったのですが、気が付いたことがあったのでメモ代わりに書いておきます。 
 
まず、CreateObjectのProgIDについて。よく見たらSDKのSimpleTTS.htmlの中に、JScriptですが、 
 
var VoiceObj = new ActiveXObject("Sapi.SpVoice"); 
 
という記述がありました。 
 
もう一つは、BCBでSmartVoiceにSpeakをかける時、SVSFDefaultだと、「す」や「つ」が含まれる文で、SPERR_TTS_ENGINE_EXCEPTION(0x80045012)エラーが発生します。「す」だけでもエラーになるのに「すいか」は読んだりして、なぜだかわかりません。とりあえず、SVSFlagsAsyncにして、WaitUntilDone(INFINITE)で待つようにしたら読んでくれるようになりました。

  2002年11月19日(火)   音声合成の話・その4
SAPI 5.1ではAutomationが使えます。というか、そもそもこれがあるのでSAPI 5.1に興味がわいたのでした。そこでまずVBScriptからTTSが使えるかどうかやってみようと思ったのですが、SDKのドキュメントの中にはVBのサンプルはあってもVBScriptのものが見当たりません。でも、できると書いてあるからにはできるのでしょう。 
 
まずわからなかったのは、CreateObjectの際のprogIDです。レジストリを見てもどれだかわかりません。そこで適当に「SAPI」かな?と思ってやったらできてしまいました。こんな感じです。 
 
Dim Voice 
Set Voice = CreateObject("SAPI.SpVoice") 
 
さらにSpVoiceのSpeakメソッドの第二パラメータにSVSFIsXMLを指定するとデータ内に書いたTTS XMLを解釈してくれるのですが、このSVSFIsXMLがenumで、VBScriptでどうやってenumを使うのかわからなかったので、ダイレクトに数値(SVSFIsXMLの場合8)を指定しました。 
 
このTTS XMLは種類はそう多くないものの、結構面白いです。例えば、 
 
Voice.Speak "まるで白銀の鏡を" 
 
だと、「まるでハクギンのかがみを」になりますが、次のようにタグを使うと「シロガネ」と発音させることができます。 
 
Voice.Speak "まるで白銀の鏡を",8 
 
その外、タグで男と女の声を切り変えたり、あまり大きな幅ではありませんが、タグでピッチを変化させたりすることなどもできます。ただ、NEC Smart Voice 4.0 XPのTTSだとなどは効かないようですが、それでも十分楽しめます。 
 
さて、VBScriptからたたけることがわかったので、今はBorland C++ Builderから使うテスト・プログラムを書いています。SDKのサンプルにあるTTSAppとほとんど同じような感じですけれど。 
 
ということで音声合成の話は一旦終わりです。

  2002年11月18日(月)   音声合成の話・その3
考えた末、NEC SmartVoice 4.0 XP (定価5,800円)を購入してみました。まず中に入っていた使用許諾契約書を読んでみましたが、特に外部プログラムから制御してはいけないというような項目は見当たりません。また、これには 
 
・2001/10/31 SmartVoice 4 XP アップデート モジュールNo.3129 
・2002/01/09 音声認識エンジン アップデート モジュールNo.3057 
 
の二つのパッチが出ているので、ネットからダウンロードして当ててみました。するとどちらのものか忘れましたが、SAPI 5.1を入れていますというようなメッセージが表示されました。その後、コントロールパネルのスピーチの画面で確認すると、SAPIのバージョンは5.1.4324.00となっていました。これで5.1対応のTTSが手に入りました。 
 
日本語用のVoiceとしては、 
 
NEC Female 
NEC Female Elderly 
NEC Female Robot 
NEC Male 
NEC Male Elderly 
NEC Male Robot 
 
の6つがありますが、男女2種類の声と考えてよいでしょう。読み上げ音質はなかなかなのではないでしょうか。ひらがなに直した古今和歌集の歌を読ませてみたところ、Female Robotが一番しっくりくるように思いました。また英語用のVoiceとしては、多分SAPI 5.1の標準と思われる、 
 
MS Mary 
MS Mike 
MS Sam 
 
が入ります。SmartSpeechというアプリがついていて、上記のパッチを当てることにより、他のプログラムで範囲選択したテキストを読み上げさせることができます。ただし、一度に読めるサイズは64Kまでです。また単語登録もできるようになっています。 
 
さてここからが本題です。前にダウンロードしたSAPI 5.1のSDKからヘルプ・ファイル(sapi.chm)だけを再び解凍して、SAPI 5.1の機能をざっとチェックします。

  2002年11月17日(日)   音声合成の話・その2
結局、TTS(音声合成)は市販のものを探すしかないと思い、ネットで少し調べてみました。なるべくSAPI 5x対応のものがいいと思ったのですが、SR(音声認識)ばかりがクローズアップされていてあまり情報が集まりません。 
 
音声認識+音声合成 
・2002年09月 ViaVoice V10 (IBM) 
・2002年03月 ドラゴンスピーチ V6.0 (スキャンソフト) 
・2001年06月 SmartVoice 4.0 XP (NEC) 
 
音声合成のみ 
・2001年12月 WORLD VOICE2 (高電社) 
・2000年10月 LaLaVoice 2001 (東芝) 
・2000年10月 ボイス君のテキストスピーチ (NTT DATA) 
・2000年07月 SMARTTALK V3.0 (沖電気) 
 
ViaVoice V10 
--------------- 
一番新しいのでSAPI 4.0ということはないと思うのだが、肝心のTTSの部分の情報が見つからない。それとアメリカのScansoftのサイトを見ると2002/11月のニュースとしてIBMがWebSphere Voice ServerのTTSとして同社のRealSpeakを採用、と書いてある。ということは... 
 
ドラゴンスピーチ V6.0 
----------------------- 
V6.0からはTTSとしてRealSpeakがついたようだ。でもそれがSAPI 5xなのかどうかわからない。PCMM RealSpeak SAPI5 V1というSDKもあるが値段が60万円。 
 
SmartVoice 4.0 XP 
----------------------- 
唯一SAPI 5.0という情報が確かめられたもの。でも名前からしていかにもOffice XPのアドインぽい。 
 
WORLD VOICE2 
----------------------- 
日本語のTTSはNECのSmartVoice 4.0 XPのエンジンを使っている。さらにダウンロード販売として、セレクト・ジャパニーズという日本語だけのバージョンを3,000円で売っている。これはちょうどいい、と思ったが使用許諾契約書の部分に次の一文を発見。 
やめる。 
 
お客様は、弊社の事前の承諾なしに、許諾ソフトの一部または全てを、他のソフトウェアプログラムで制御する方法によって使用したり、他のソフトウェアプログラムに組み込んで使用することはできません。 
 
LaLaVoice 2001 
----------------------- 
SDKの情報のところにSAPI 4.0という記述がある。 
 
ボイス君のテキストスピーチ 
------------------------- 
なんとなくよさそうだが、Windows2000/Me対応とあり、SAPI 4.0っぽい。 
 
SMARTTALK V3.0 
----------------------- 
これもよさそうだが、やはりSAPI 4.0っぽい。 
 
ざっと見たところ、こんな感じです。

  2002年11月16日(土)   音声合成の話・その1
テキストの読み上げツールとして、昔IBMのProTalker97というものとRICHOの雄弁家95というのを買ったことがありました。でも実際に使ってみるとやっぱりダメだな、というのが当時の感想でした。 
 
それから月日が経って、また少し興味がわいてきたので2002年11月現在の状況を調べてみました。全体としては今は音声合成(読み上げ)よりも音声認識(声で入力・操作)の方がメインのようです。 
 
まずはMicrosoft。SAPI(Speech API)という音声関係のAPIのかたまりがあって、音声合成はText-to-speech(TTS)、音声認識はSpeech Recognition(SR)とエンジンが分かれているようです。 
 
SAPI 4.0 
---------------- 
多分Officeにイルカなどをつけてきた頃に力を入れていた技術でしょう。かなり力を入れていたようで、日本語のTTSも無償で配布されていました。現在もまだダウンロードできるようです。デスクトップ・キャラクタとしてMS Agentというのもこれがベースになっていて、一時は結構、はやったようですが、現在MS Agentのキャラクタを集めているサイトを覗いても、2000年から2001年にかけて作られたものが多く、新しいものが見当たりません。飽きられてしまったということでしょうか。 
 
SAPI 5.0/5.1 
---------------- 
4.0と共存はできるが互換はないそうです。WindowsXPには、はじめから5.0が載っていて、そのため4.0のTTSやMS AgentをXPで使いたい人はわざわざ4.0のランタイムなどを入れなければならないようです。現在では.NET Speech SDK 1.0 Betaというのが最新のSDKですが、そのSAPI部分はSAPI 5.xが使われているみたいです。 
SAPIのみのものとしてはSpeech SDK 5.1というのがあります。メインの部分が68M、Language Packというのが81.5Mという大きなサイズですが、ダウンロードしてインストールしてみました。これを入れるとSAPI 5.1になります。COMでたたけるようになったのが魅力です。 
ところがこれがヘンな構成でJapaneseはSRしか入っていません。つまりSAPI 5.1で使える日本語のTTSはついてこないわけです。4.0と互換がないと言っているので(試してはいませんが)4.0のTTSエンジンは流用できないでしょう。これでは読み上げができません。音声識別には今のところ興味がないので、早々にアンインストールしました。