vocaloidまわりで手を動かしていて、もうひとつ気づいたことがある。それは、vocaloidとほぼ同じような目的で作られているutauのことだ。存在自体は知っていたのだけど、今どんな感じで作られたり使われたりしているのかは、全く関心が無かった。vsqまわりのデバッグをしていて、ふと思い出してutauにもvsqをインポートする機能があるんじゃないかと思って、ダウンロードして試してみたら、やはり存在していた。インポートは完全ではなかったのだけど(発音表記と実際の発音記号が異なっている場合に、発音記号を正しくインポートしてもらえなかった。これは「-」などをどう処理するかで問題になる)、utauでも再生できるvsqが生成できていたことに、とりあえず満足したのだった。
もしかしたら、VSTやらReWireやらを要求されるvocaloidでうまくいっていない同時再生も、utauを使えば出来るんじゃないか、と思って見てみたのだけど、APIが用意されている雰囲気は無かった。その代わり、音声合成エンジンがどうなっているか等を知ることが出来て、参考になったのだった。
utauは、Wikipediaの項目にも書いてあるのだけど、音声合成エンジンとGUIエディタは別々のもので、音声合成エンジンはさらにAquesTalkというTTS (text to speech)エンジンと、発声したwavに音階等の合成を加えるエンジンが別に存在しているようだ。そしてAquesTalkはどうやら開発者が別で、しかもさまざまなプラットフォームで動作するようだ(iPhoneやAndroidまである)。Cで書かれているらしく、C#からP/Invokeしている人が多く見つかった。やはり考えることは同じらしい。
これはこれで興味深いのだけど、より驚いたのは、vocaloidと同様の技術は、TTSをベースに作れなくもないということ(に気づいてしまったこと)だ。確かに、考えてみたら、TTSで生成した音声に、音階をつけてやれば、歌っているのとだいたい同じようなことになる。音階は周波数を加工したり何かいろいろすれば(わかってない)、自然に出来るのだろう。この辺が一体の技術であると考える必要は無かったのだ。
ということは、AquesTalkを使わなくても、既存のTTSを使えば、utauと似たようなソフトウェアは作れるのではないか。utauはAquesTalkを使っていることもあってか、寄付歓迎シェアウェアという実態はフリーソフトにはなっていても、オープンソースにはなっていないし、AquesTalkがWindows版のみ無償利用可能(!)になっているので、クロスプラットフォームにもならない。しかしTTSには(英語しか無いだろうけど)クロスプラットフォームのものも存在している。それならば、何かこの辺で面白い物が作れたりしないものだろうか。
とまあ、そんなことを考えた。具体的にそれを実践する知識は何もないのだけど、基本的なやり方が何となく分かったというのは大きいと思っている。
Leave a comment