mieki256's diary



2015/05/17() [n年前の日記]

#1 [ruby] DXRuby + wavefile でリップシンクの実験

リップシンクと言っても、日本のアニメのソレだけど。口を閉じる、口を半分開く、口を開くの3枚を、3コマ撮りでランダムっぽく表示するソレ。音声データ(wavファイル)の音量だけを見て、パクパクさせてみて、本当にそれらしく見えるのか実験。しかもRubyで。Rubyで。大事なことなので2回言いました。

安直というか、簡単なことしかしてないのに、結構なんだかそれっぽくなった。まあ、GIFアニメだけでは音が無いから、らしさが伝わらないと思うけど…。
lipsync_test.gif


とりあえず、スクリプトソース、wavファイル、画像ファイルをzipにまとめて置いときます。lipsync_test.rb がスクリプトです。

_lipsync_test_20150522.zip

ソースも、画像も、CC0 / Public Domain ってことで。どうせこれだけじゃ何かに使えるわけでもないし。音声データ(wavファイル)は SofTalk (AquesTalk)で出力したファイルなので、ライセンスはどうなるのかちと分かりません。 *1

ちなみに、wavファイルのフォーマットは、サンプリング周波数 48000Hz(48KHz)、モノラル、16bitで決め打ちなので、別のwavを読ませたい時はフォーマット変換等よろしくです。 _Audacity_SoundEngine Free を使えば変換できるはず…。

動作確認した環境は以下。

感想とか妄想とか。 :

エロゲではこうやって口パクさせてるらしいから、わざわざ実験しなくても実績はあるというか、それらしくなることは当の昔に分かってるのだろうけど。ていうか、大昔のゲーム機、例えばPCエンジンのCD-ROMタイトル等でこういうことやっていても全然おかしくないよなと。だから、「何故に今頃こんなことを」「こんな古い物を…父さん、酸素欠乏性にかかって…」と言われそうだけど。

それでもとりあえず、RubyのようなLL( _lightweight language、軽量プログラミング言語 ) でも、wavファイルを読み込むライブラリさえあれば、こういうソレを気軽に実験できることが分かったので、まあいいやと。

もしかすると、JavaScriptに詳しい人なら、Webブラウザ上でやれたりするのかしらん。今時のブラウザは、音声データをサンプル値単位でアレコレできるAPIが実装済みだった記憶もあるし。

ちなみに、3コマ撮りじゃなくて1コマで、24fpsじゃなくて60fpsで試したら、気持ち悪くて見てられませんでした。フレームレートが上がったら、こんな安直なやり方じゃ全然ダメだなと。何を発音してるか抽出して合わせていかないとおそらく自然に見えないのだろうなと。日本のアニメって、作業の省略化・省エネ化という点でノウハウあるんだなー、と再認識して感心しました。イイ感じの落としどころを見つけたもんだなあ…。

2015/05/22追記。 :

数日後に見返したら絵の下手さにダメージを受けて。SDキャラにすれば誤魔化せるんじゃないかと思いついたので、絵を描き直して差し替え。

*1: ググってみたら、個人が非営利で使うなら無料らしいけど、それは音声合成エンジンの話で、生成した音声データの二次利用制限はまた別、ともあって…。音声データは権利を主張しない、と書いてあるように読めるけど、だからと言って勝手にCC0にしちゃっていいのか、ソレはダメなんじゃないか…。どうもわからんです。

以上です。

過去ログ表示

Prev - 2015/05 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project