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とほとんど同じような感じですけれど。    ということで音声合成の話は一旦終わりです。
|
|