初音ミクが人間的な歌声を出せるのに、なぜ音声合成は機械的な声のままなのか。*1

 時流に乗るのはこのブログの流儀に反するが、一応書いておこうと思う。なお、本日の日記で書くことはほとんどが推測である。なぜなら、公式サイトに書かれている "Frequency-domain Singing Articulation Splicing and Shaping" に関する論文が見つからないからである(出典を知っている人は教えてください)。ただ、的はさほど外してはいないはずである。

 さて、初音ミクを知らない人のために、ひとまずリンクを張っておこう。公式ページはこちらである(http://www.crypton.co.jp/mp/pages/prod/vocaloid/)。簡単にいえば、初音ミクというのは、歌唱用の音声合成ソフトウェアである。ユーザが譜面と歌詞を打ち込み、ソフトウェアが合成音で歌う。この合成音の質が予想よりもよいために(また企業の戦略やウェブの状況もよかったために)、期待以上にソフトウェアが売れ、どうやら品切れとなったようである。

 本題に入る。なぜ、初音ミクが人間的な歌声を合成することができるのに、喋り声の合成音声は機械的な声のままなのか。

 答えを説明するために、情報工学の分野の予備知識を復習する。中学校の算数で習うことであるが、x+y=3, x-y=5という二つの式があれば、二つの変数x,yは両方とも値が求まる。ここでもし、x=4, y=-1という式が与えられていたとしたら、より簡単にx,yの値は求まる(というよりすでに求まっているのだから求まる)。ところで、x+y=3という式しか与えられていなかったら変数はどちらも求まらない。これが中学で習う算数の常識である。同様のことは情報工学全般にもいえる。式の本数のような「事前の入力」が充分に多ければ答えは求まる。入力がほとんど答えのようなものだったら、さらに簡単に答えは求まる。入力が足りていなかったら、答えは(そう簡単には)求まらない*1

 さて、初音ミクに関する説明をする。初音ミクには「入力」として「音の高さ」「音の持続時間」「発音」の三つを最低限与える(ほかにもビブラートなどの入力があるらしいが)。これは、音声合成の観点からすれば、「答えをほとんど直接与えている」に等しい。ゆえに音声合成の問題としては簡単な部類に入る。

 一方、従来から目指されている音声合成というのは、「発音」しか与えられていない。ゆえに、問題としては難しい部類に入る。中学校の算数の喩えでいえば、式が一本しか与えられていないのと同じようなものである。「発音」をもとにして「音の高さ」と「音の持続時間」を推測しなければならないのである。しかも「音の高さ」にいたっては1オクターブの中に12しか値が存在しない西洋音楽とは異なり、ほぼ無限の可能性がある。無限の変数をたった一本の式で推測するのはほぼ不可能である。これが、音声合成の難しさである。ほかにもいろいろと難しさの要素はあるのだが、初音ミクとの対比を語る場合には、最も異なるのはこの部分であろうと思われる。

 初音ミクには答えがかなり直接的に与えられている。従来の音声合成にはほとんど答えが与えられていない。

 だからというわけではないが、これまでの音声合成というのは実はものすごく難しいことをなし遂げているのだと、一瞬でもいいから思ってほしい。限りなく解決不可能な問題をそれなりに解いているのである。

 そして、あらためて、自然な声で喋っている人間はそんな不可能な問題をいとも簡単に解いているのだということに驚いてほしい。

 なお、補足であるが、難しい問題に挑戦し続けることも大変なことであるが、簡単且つ実用的な問題を見つけることも同様に大変なことである。初音ミクの開発者は素晴らしい。

*1:ただし入力が多すぎると逆に問題が難しくなったりもするので、そこが情報工学の面白いところである。