初音ミクが自動で喋るツール作ってみた

まずはこれ。てってってー。

http://spectacler.blog104.fc2.com/blog-entry-116.html


結果から言うと、釣りなんだけど・・・

本ツールについて広島国際大学の石原茂和氏は、「既存の技術を集めるだけでできる」と太鼓判。「あの楽器」プロジェクトよろしく、近々ホンモノの「初音ミクが自動で喋るツール」が出てきそう
http://vocaloid.blog120.fc2.com/blog-entry-7464.html

出てきそうっていうか、もう公式ででそうな気配ありますよね。
3ヶ月ぐらいまえに流行ったよね、オレ3ヶ月ぐらい前にネットでみたわ!



というか、実際つくった記憶がある・・・。
マッシュアップアワードでヤマハさんがnet-vocaloid flexっていう実験段階のを締め切り2週間まえぐらいに駆け込みで発表したのでおもわず俺も駆け込んでみましたよ。で、頑張って数日かけてつくったのだけど、ほったらかしになっていました。

つくるのは大変か?

@shigekzishihara
Shigekazu Ishihara
形態素解析+intonation+意味処理,正攻法で来たなRT @hatsunemikumiku: 神ツールか!?→【自動で】初音ミクが自動で喋るツール作ってみた!【喋らせてみた】 (7:50) #nicovideo #sm13013900 nico.ms/sm13013900

@shigekzishihara
Shigekazu Ishihara
イントネーションの辞書だけは必要.意味辞書は既にあるものに手をいれれば良い.RT @hatsunemikumiku: 【自動で】初音ミクが自動で喋るツール作ってみた!【喋らせてみた】 (7:50)#nicovideo

イントネーション辞書も必要だけど、VOCALOIDの場合持っている音節が促音+母音みたいな形で1音を構成するから、イントネーション分解した辞書と日本語辞書の音節をわりつけるマッピングがとても大変だとおもうのですよ。
そういう辞書はないから自前でつくらにゃならん。


単純にアイウエオの50音を発音させようとしてもボーカロイドさんの発音記号はこんな感じ。

ア a イ i ウ M エ e オ o
カ ka キ k'i ク kM ケ ke コ ko
サ sa シ Si ス sM セ se ソ so

「ス」を作ろうとしたら「s」を40ミリセック発音して、「う」の音である「M」を100ミリ秒発音するとかそういう風にして「ス」という音をつくらなきゃいけない。
イントネーションプロミネンスをいじるという事はこの最初の音を長さと高低を制御せにゃならん。
しかも抑揚なんて100セントもない範囲の微妙なニュアンスなので、音をコントロールというよりはギターのチョーキングのように滑らかなピッチベンドコントロールをしなきゃだめだとおもうのさ。


前節の音に影響をうけて促音とか拗音になるし、棒読みで再現するのもめんどくさかったですよ。
日本語がいくら文法に忠実で例外が少ない言語だといっても、それをコーディングに起こすのはパターンをつぶしていかなきゃならないので人生が暮れてしまいそうです。ロジックよりもパターンな領域なので根性が試されます
というわけで、イントネーション辞書が必要とかいわれた時点で俺なら紅茶いれにいって帰ってきません。



ちなみに、これが俺がつくったやつね。ひらがなをうちこむとミクねえさんが読み上げてくれるよ。
「上下3度」を選択すれば普通の日常会話っぽくなるかな。
(一時間で100人までしかヤマハさんの制限でうごかないよ。詳しくは http://iteahelper.com/sandbox/netvocaloid/


こんなんでいいならすでにあるよ。
画面の下側に表示されているXMLっぽいのがミソでこれを自動生成するためだけのプログラムになります。こういう地味なところわかってくれる人すくなそうだ・・・。

すっごいつまんないよね。ごめんなさい。
なにがどの程度の労力でできるのかの評価だからかんべんしてね。
使ってもらうために魅せることにたいしては労力さいてないのです。


ちなみに自分のつくった無調教パターンは音楽的に違和感のないように構成しているだけで、前述ででたイントネーションの部分はロジックで逃げています。高低も長さもランダムです。日本語としての抑揚とかはコントロールしていません。
設計的には高低や長さを指定できるようにクラスオブジェクトをつくってはいるけど、そんなの指定できるようにしたらインターフェイスを実装するだけで大変でござる。辞書をつくる気力もないし。
でも、こっから先を作ろうとしたらこのインターフェイス部分を避けてとおれないんですよね。


楽譜はとても優秀ですよ。そりゃ500年もつかわれてきた実績は伊達ではございません。
結局、まわりまわって元にもどってしまいそうです。



個人的 結論

うえにあげたようなレベルまでだったら紅茶屋が片手間にほほいーってやってつくれるぐらいなのでそんなに難しくはないとおもいます。ただ抑揚をオートチューンでコントロールしようとしたら、大変なんじゃね?


イントネーションを何パターンかつくっておいてそれに割り当てっていうインターフェイスだったら実装できそうだけどね。「ささやき」「低い声で」「ハイテンション」「しりすぼみ」とか「怒声」とかそういうのだったらある程度、音調構成を絞れるからやりやすそう。
俺が手伝ってあげるからだれかつくりなよー
もしくは、俺のやる気を出すのをだれかてつだってよ。
APIの使用期限が切れるのが先か、俺のやる気がでるのが先かで厳しい勝負ですね。


たぶんつくりたいもの

タブレットPCつかって、ボーカロイドをカオスボードとかテノリオンみたいな楽器にできたらないいなーとおもって構想はしています。これができれば上にあげたイントネーションの補正もできるようになるなと。

・・・。
俺の書いていること伝わった?伝わらないよね・・・。
んー。
そういうのやりたい人いない?

追記

http://d.hatena.ne.jp/Molokheiya/20101215/p1
初音ミクが自動で喋るツール」を作ってみた(本物?)

お、なんか頑張ってる方がいるみたいですね。
がんばれーー

日本語を入力する
形態素解析器にかける
文章の文節・品詞・よみがなを取得
ひらがなの文章からミク語に翻訳
単語のアクセントを生成
意味辞書からイントネーションを生成(未定)
それらの情報から発話のピッチを演算して生成
Voice Synthesis XMLを生成
YAMAHAのNetVOCALOID-flexサーバに投げる
しゃべる!


これをみての余談。
Yahoo!のテキスト解析API結構レスポンスいい!
自分も点字ソフトをつくったとき、点字用の分かち書きが必要だったので利用しておおぅと思いました。メカブさんは自前DB鯖をつかうところまでサービスを創り上げるのだったらありかなと。

辞書からアクセント抜いているんですね。辞書の[1]とかってアクセントだったのか・・・。Yahooのテキスト解析にアクセントのっけてくれればいいのにね。


NetVOCALOID-flexが自分の試した範囲では合計10秒までしか応答してくれなかったのと、NetVOCALOID-flex試用期間が切れるとかなりお高いというおはなしが・・・。
んー。

Robert Penner氏のイージングっておもしろげ。