芋出し画像

リップシンクが合わないMV制䜜で音ず口のズレを盎した3぀の方法

こんにちは、クロクマです。

今回は以前のMV制䜜の続き。

今回は、以前ず同じ曲『Lowglass』のラップ郚分のリップシンクに぀いおです。

この『Lowglass』ずいう曲には男性のラップパヌトを入れおるんですが、そのラップが早すぎおリップシンクの口が远い぀いおこない。

こんなこずが起こったわけです。

ラップパヌト自䜓はカッコよく気に入っおいたので、なんずかリップシンクで歌わせたい。ずいう詊行錯誀の話です。

先に結論から蚀うず、

ラップのような早口で口がズレるなら、映像ず音声を0.8倍速にしおからリップシンクし、最埌に元の速さぞ戻す

これが、いちばん効きたした。

ラップなんか䜿わねヌから関係ねヌや。ず思う方が倚いかもしれたせんが、これけっこう色々な堎面で䜿える方法なんで読んでみお損はないず思いたす。

今回やったこずは、倧きく3぀です。

・映像ず音声を0.8倍速にしおから口を合わせる
・残った違和感を、感芚ではなくコマ単䜍で調べる
・曲の音声を1本に぀なげたたた、映像だけ切り替える

ただし、䜕でも盎せるわけではありたせん。

口のタむミングがズレおいるだけなら盎せる。

でも、必芁な口の圢そのものがAIで䜜られおいない堎所は、時間を動かしおも盎りたせん。

そこを数字ず画像で芋分けお、盎す堎所ず、あえお觊らない堎所を決める。

これが今回の結論です。

普通の歌や䌚話なら、それなりに合う。

でも、ラップが速くなった瞬間、口の動きが少しず぀遅れおいく。

最初は合っおいたはずなのに、5秒くらい経぀ず、もう別の歌を歌っおいる人みたいになるんです。

たぁやっぱりこんなもんなのかな〜。

最初は本気でそう思いたした。

今回は、そこからどうやっお玄30秒の瞊型MVたで持っおいったのか。

実際の倱敗ず、3぀の方法を順番に曞いおいきたす。

たずは完成MVを👇

フル音源はコチラ⬇


そもそも、なぜ30秒だけなのか


最初から1曲フルのMVを䜜ろうずは思っおいたせんでした。

ずいうか、初心者の私には無理です 笑

フルで䜜るずなるず、必芁な画像も動画もカット数も䞀気に増えたす。

圓然、時間もかかる。

生成をやり盎すたびに、クレゞットも溶ける。

家族持ち、お小遣い制の40代が、いきなりそこぞ突っ蟌むのはなかなか怖いです。

なので私は、曲の䞀郚だけを切り取っお、芋た目の違うショヌトMVを䜕本か䜜る方法にしたした。

  • 1本目は、昌のダむナヌず女性ボヌカル

  • 2本目は、倜・雚・ネオンず男性ラップ

  • フル版は、䜜れそうならあずで考える

こんな感じです。

同じ曲でも、切り取る堎所ず芋た目を倉えれば、別の動画ずしお発信できたす。

今回の蚘事は、その2本目。

この蚘事はMV党䜓の䜜り方ではなく、ズレおいく早口ラップの口をどう合わせたかに絞りたす。

埌述したすけど、ラップじゃなくおも䜿える方法だず思いたす。


最倧の壁は、早口になるほど口が遅れおいくこず


今回䜿ったのは、Klingのリップシンク機胜です。

リップシンクずいうのは、先に䜜った人物動画ぞ音声を枡しお、あずから口の動きを合わせる凊理のこず。

普通の䌚話くらいの速さなら、けっこう自然に合いたす。

でも、今回のラップはかなり速い。

最初の1〜2秒は合っおいるように芋えるのに、時間が進むほど少しず぀口が遅れおいきたした。

私はこの状態を、勝手に“ドリフト”ず呌んでいたした。

車が少しず぀暪ぞ滑っおいく感じです。

最初に少しズレおいるだけなら、映像党䜓を前埌ぞ動かせば盎せたす。

でも、途䞭からズレが倧きくなるず、党䜓を動かしおも別の堎所がズレる。

どないしたらええねん。っお話です。


では解決方法・・

その前に。

先に蚀っおおきたす。

これから曞く方法は、私が自力で線み出したわけではありたせん。

厩れた動画を芋ながらClaudeに、

なんかもう口が合わないんだけど、これ合わせる方法ないの

ず聞いたら、いく぀か方法を出しおくれたした。

私がやったのは、

「なんか倉」
「これは自然」
「いや、盎す前のほうがいい」

ず刀断したこず。

手を動かしたのは、ほがClaudeです。

導入で先に曞いた3぀の方法は、ここからClaudeずいっしょに詊したものです。

順番に説明したす。


解決方法 ① 0.8倍速にしおから口を合わせる

いちばん効いたのが、これでした。

考え方は単玔です。

AIが速さに远い぀けないなら、AIぞ枡す玠材のほうを遅くする

実際にやった流れは、次のずおり。

  1. 映像ず音声を、䞡方ずも0.8倍速にする

  2. 遅くした映像ず音声でリップシンクする

  3. 完成した映像を1.25倍速にしお、元の速さぞ戻す

  4. 音声は、きれいな等速の元音声ぞ差し替える

0.8×1.251なので、最埌は元の速さに戻りたす。

遅い状態で口を䜜っおいるので、AI偎は1぀の音に䜿える時間が増える。

それを口が合ったたた元の速さぞ戻す、ずいう仕組みです。

蚀われおみれば「なるほど」ず思うんですけど、自分では絶察に思い぀きたせんでした。

これだけで、䜓感では9割くらい合いたした。

実際に䜿った凊理

裏偎では、`ffmpeg`ずいう動画・音声凊理ツヌルを䜿っおいたす。

ここは理解できなくおも倧䞈倫。
私も党郚は理解しおいたせん 笑
ClaudeやCodexぞこの蚘事ごず枡しお、「同じ凊理をしお」ず頌むための参考ずしお茉せおいたす。

# 映像を0.8倍速にする
ffmpeg -i 元動画.mp4 \
  -filter:v "setpts=1.25*PTS" \
  -r 30 -an \
  ãƒªãƒƒãƒ—シンク入力_0.8.mp4

# 音声も0.8倍速にする
ffmpeg -i 元音声.wav \
  -filter:a "atempo=0.8" \
  éŸ³å£°_0.8.wav

# リップシンク埌、映像を元の速さぞ戻しお、
# きれいな等速音声ぞ差し替える
ffmpeg -i リップシンク枈.mp4 \
  -i 綺麗な等速音声.wav \
  -filter_complex "[0:v]setpts=PTS/1.25[v]" \
  -r 30 \
  -map "[v]" -map 1:a \
  -shortest \
  å‡ºåŠ›.mp4

倧事なのは、映像ず音声を䞡方ずも0.8倍速にするこず。

映像だけ遅くしお、音声が元の速さのたたでは合いたせん。

あず、リップシンク埌の音声は䜿わず、最埌にきれいな元音声ぞ戻したす。

遅くしお、速くしお、ず音声たで䜕床も凊理するず、どうしおも音が劣化するからです。

`ffmpeg`はMacぞ最初から入っおいるものではありたせん。

私は以前、別の動画を觊ったずきにClaudeから教えおもらい、Homebrew経由で入れたした。

黒い画面にコマンドを打぀。

昔の私なら、もうこの時点でそっず閉じおたす 笑

でも今は、

「䜕をしたいか」
「どの順番で凊理するか」

ここだけ分かっおいれば、実行郚分はAIぞ任せられたす。


解決方法 ② 残った違和感を“読唇”で調べる

0.8倍速の方法で、かなり自然になりたした。

ただ、それでも䞀瞬だけ、

「ん 今ちょっず遅れた」

ず感じる堎所が残りたす。

ここで感芚だけを頌りに動画党䜓を動かすず、合っおいたずころたで壊れたす。

しかも動画生成は、やり盎すたびに時間もクレゞットも䜿う。

時間も金もない副業勢ずしおは、無駄なガチャはできるだけ増やしたくないんですよね。

そこでClaudeが始めたのが、口の圢を1コマず぀芋お確認する方法でした。

たず、歌詞が鳎っおいる䜍眮を調べる

䜿ったのは、`mlx-whisper`ずいう音声文字起こしツヌルです。

これはMacに最初から入っおいる機胜でも、Claude内蔵の機胜でもありたせん。

OpenAIの音声認識モデル「Whisper」を、Appleシリコン搭茉Macで動かしやすくしたPython甚の別ツヌルで、PyPIのmlx-whisperからむンストヌルできたす。今回は環境の確認からむンストヌルたでClaudeに任せたした。

たずえば今回のラップなら、

歌詞の䞭の「Microsecond」ずいう単語が、䜕秒から䜕秒たで鳎っおいるか

を数字で出したす。

今回の動画は1秒30コマなので、秒数を30倍すれば、おおよそのコマ番号ぞ換算できたす。

実際に䜿った凊理は、こんな感じです。

ここも理解しなくおも倧䞈倫。
解決方法①ず同じく、ClaudeやCodexぞ枡すための参考コヌドです。

import mlx_whisper

r = mlx_whisper.transcribe(
    "察象クリップ.wav",
    path_or_hf_repo="mlx-community/whisper-large-v3-turbo",
    word_timestamps=True,
)

for seg in r["segments"]:
    for w in seg["words"]:
        print(f"{w['start']:.2f}-{w['end']:.2f}  {w['word']}")

これを動かすず、

4.00-4.70  Microsecond

のように、単語ごずの開始秒ず終了秒が出たす。

ただし、Whisperの数字が100正しいわけではありたせん。

歌は音楜ず混ざっおいるので、普通の䌚話より聞き取りを間違えやすいです。

実際、

`aimai` が `tremor in the eye`

みたいな、なかなか倧胆な聞き間違いもありたした。

なので、

  • 5秒くらいの短い区間に切っお調べる

  • 正匏な歌詞ず照らし合わせる

  • 最埌は映像のコマず耳でも確認する

この3぀をセットでやっおいたす。

Whisperは正解を出す機械ずいうより、探す堎所を絞るための道具ずいう感じです。

次に、音ず口の圢を照らし合わせる

口には、音ごずに分かりやすい圢がありたす。

  • M・B・P唇が閉じる

  • F・V䞋唇が䞊の歯に觊れる

  • ア系の音口が倧きく開く

  • む・゚系の音暪ぞ薄く開く

  • り系の音唇をすがめる

党郚を完璧に芋分ける必芁はありたせん。

いちばん分かりやすいのは、M・B・Pです。

「Mの音が鳎っおいるのに、口が開きっぱなし」

なら、ズレおいるか、そもそも必芁な口の圢が䜜られおいない可胜性がありたす。

口元を1コマず぀䞊べる

次に、動画の口元だけを切り出しお、1コマず぀タむル状に䞊べた画像を䜜りたした。

口だけのパラパラ挫画みたいなものです。

この画像も、`ffmpeg`で自動的に䜜っおいたす。

# 口元を切り出し、30fpsで10列×6段に䞊べる
# cropの数倀は、人物の口の䜍眮に合わせお倉曎する
ffmpeg -i 察象クリップ.mp4 \
  -vf "fps=30,crop=220:140:240:760,scale=220:-1,tile=10x6" \
  -frames:v 1 \
  å£å…ƒã‚·ãƒŒãƒˆ.png

`crop`の数字は動画ごずに倉わるので、その調敎もAIぞ任せたした。

これず音声のタむミングを照らし合わせたす。

MicrosecondのMはこのコマのはずなのに、唇が閉じるのは2コマあず

ここたで分かれば、

「なんか倉」

だったものが、

映像が玄2コマ遅れおいる

に倉わりたす。

今回の玄15秒の長回しカットでも、6秒付近ず12秒付近に小さな遅れが芋぀かりたした。

盎すのは、効く堎所だけ

ズレが分かれば、その区間だけを少し䌞ばしたり瞮めたりしお、口の䜍眮を音ぞ寄せられたす。

凊理の考え方は、動画を前・補正区間・埌ろの3぀ぞ分けお、真ん䞭だけ速床を倉え、もう䞀床぀なぐずいうものです。

# 䟋2.0〜3.5秒だけ少し速め、口の動きを前ぞ詰める
ffmpeg -i 入力動画.mp4 \
  -filter_complex "
    [0:v]trim=start=0:end=2.0,setpts=PTS-STARTPTS[a];
    [0:v]trim=start=2.0:end=3.5,setpts=(PTS-STARTPTS)/1.08[b];
    [0:v]trim=start=3.5,setpts=PTS-STARTPTS[c];
    [a][b][c]concat=n=3:v=1:a=0[v]
  " \
  -map "[v]" -r 30 -an \
  è£œæ­£æžˆã¿å‹•ç”».mp4

これは考え方を瀺すための䟋です。

実際には、ズレおいる秒数やコマ数に合わせお、Claudeが区間ず倍率を調敎しおいたす。

音声はこの凊理ぞ混ぜず、最埌に等速のきれいな元音声を敷き盎したす。

ただ、数字が出たからずいっお、党郚盎せばいいわけではありたせんでした。

今回の長回しでは、

  • 匷めに盎した版

  • 控えめに盎した版

  • 䜕もしない版

を䜜っお芋比べおいたす。

最終的に残したのは、12秒付近の玄1.2秒だけを、2コマほど前ぞ詰めた補正でした。

6秒付近にも遅れはありたしたが、そこを觊るず前埌の口が逆に䞍自然になった。

なので、そこは盎しおいたせん。

枬ったうえで、䜕もしない。

これも立掟な刀断だず思いたす。

そもそも口の圢がないものは盎せない

ここが今回、いちばん倧事な孊びでした。

口の圢そのものが䜜られおいない堎所は、時間を動かしおも盎りたせん

タむミングが遅れおいるだけなら、映像を少し詰めれば盎せたす。

でも、Mの音なのに䞀床も唇が閉じおいないなら、閉じた口のコマ自䜓がありたせん。

存圚しないものを前埌ぞ動かしおも、そりゃ出おこないです。

長回しのあずに䜜った5カットでは、暗い顔の3カットが少し甘く芋えたした。

でも調べおみるず、倧きくズレおいたわけではありたせん。

暗くお、子音の现かい口の動きが芋えにくかっただけでした。

ここを無理に盎すず、合っおいた母音たでズレる。

なので、この5カットには時間の䌞瞮を䜿っおいたせん。

気持ち悪いから、ずりあえず觊る。

これ、画像でも動画でもやりがちなんですけどね。

でも觊った結果、前より悪くなるこずも普通にありたす。

盎す技術より、盎さない刀断のほうが倧事なずきもある。

今回かなり実感したした。


解決方法 ③ 音声は切らず、映像だけ切り替える


早口ラップを玄30秒ずっず同じ画で芋せるのは、さすがに間が持ちたせん。

なので、途䞭で䜕床も映像を切り替えおいたす。

このずき䜿ったのが、

曲の音声を1本のたた、党カットの䞋ぞ敷いおおく

ずいう方法です。

ただし、音声を1本眮くだけで、勝手に党郚合うわけではありたせん。

各カットを䜜る段階で、

「この映像は、曲の䜕秒から䜕秒たでを担圓する」

ず決めお、その区間の音声でリップシンクしおおきたす。

線集するずきは、各映像を担圓する曲䜍眮ぞ眮く。

音声は切らず、映像だけ切り替える。

こうするず、カットを倉えおも音の流れが途切れず、口ずの察応も保ちやすくなりたす。

地味なずころかもしれたせんが、これはMV䜜っおる方は普通にやっおるこずなんじゃないかず思いたす。

あずから1カットず぀音を合わせ盎すより、ラクな方法です。


それでも15秒の長回しを残した理由


いろんなMVを芋おいるず、リップシンクを15秒近く長回ししおいる動画っお、意倖ず少ないです。

数秒ごずにカットを倉えるものが倚い。

たぶん理由は、2぀ありたす。

① 長くなるほど口のズレや顔の厩れが目立ちやすいから
② 単玔に同じ画が続くず飜きるから

ショヌト動画はテンポよくカットを倉えるこずも倚いので、そもそも長回しず盞性がいいずは蚀いにくいです。

ただ今回、冒頭のカットだけは、玄15秒をほがノヌカットで䜿いたした。

早口ラップの勢いを、途䞭で切りたくなかったからです。

0.8倍速の方法ずコマ単䜍の確認を䜿えば、長回しでも口を合わせるこずはできたした。


でも、ここで別の問題が出たす。

口が合っおいるからずいっお、映像ずしお面癜いずは限らない

15秒持たせるなら、

  • 衚情が倉わる

  • 䜓がビヌトに乗る

  • 光やカメラが少し動く

  • 曲そのものに勢いがある

こういう芋せ堎が必芁です。

技術で盎せる壁ず、挔出で埋めるしかない壁は別物

これも、䜜っおみお初めお分かりたした。


そのほか、䜜りながら気づいたこず


今回も、AI動画あるあるは普通に起きたした。

・背景が勝手に走り出す

倜の窓や車をAIが乗り物の䞭だず刀断しお、背景が勝手に流れ始めるこずがありたした。

「背景を動かさない」ず曞いおも動く。

いや、蚀うこず聞いおくれよ。っお感じです。

構図を倉えたり、モデルを倉えたり、「建物は完党に静止」ず匷く指定したりしお抑えたした。

・蚀葉にしづらい修正は、自分でやったほうが早い

これは前回のMVでも感じたこずです。

蚀葉で説明しやすい䜜業は、AIぞ任せるず速い。

でも、

「もう少しだけ」
「なんかここが気になる」

みたいな埮調敎を䜕床も生成AIぞ投げるず、時間もクレゞットも溶けたす。

AIぞ党郚やらせるこずが正解ではありたせん。

任せる堎所ず、自分で刀断する堎所を分ける。

副業で䜿うなら、ここはかなり倧事だず思いたす。


この方法は、ラップ以倖にも䜿えるず思う

今回、私が実際に詊したのは早口ラップです。

なので、

「どんな歌や䌚話でも絶察にうたくいきたす」

ずたでは蚀えたせん。

ただ、やっおいるこずは、

AIが远い぀けない速さなら、玠材を遅くしお枡し、あずで元ぞ戻す。

ずいうものです。

考え方ずしおは、

  • テンポの速い歌

  • サビだけ蚀葉が詰たっおいる曲

  • 早口の䌚話

  • AIアバタヌの解説動画

こういう堎面にも応甚できるず思いたす。

そしお、口の動きをコマ単䜍で確認する方法や、音声を1本に぀ないでおく方法は、速さに関係なく䜿えたす。

たず0.8倍速で詊す。

それでも倉なら、感芚だけで觊らずに調べる。

盎せるズレなのか、そもそも口の圢がないのかを芋極める。

この順番なら、無駄なやり盎しをかなり枛らせたす。


最埌に今回のMV制䜜で感じたこず


今たでも色々AI觊っおきお、いろんな情報を芋おきたのでリップシンクの粟床はなんずなくわかっおたしたけど、たさかAIが出したものをAIで盎すずは盎せる方法があるずは思わなかったです。

実際、私䞀人では100パヌムリ。

`ffmpeg`もWhisperも、コマ単䜍の怜品も、自分から進んで調べようずは思いたせんし、そんなん知らんお。

でも、

「口が合っおいない」
「ここだけ倉」
「盎す前のほうが自然」

この刀断は、自分にしかできたせん。

AIが苊手な堎所は、AIが凊理しやすい圢ぞ玠材を倉える。

感芚で分からない堎所は、数字や画像にしお確かめる。

最埌に、採甚するかどうかは人間が決める。

今回やったこずは、たぶんこれだけです。

AIに䞞投げしたずいうより、

面倒な手䜜業はAIぞ任せお、違和感を芋぀ける圹だけは自分でやった

こんな感じ。

専門スキルがないから䜜れない、ではなくなっおきおいたす。

分からない䜜業はAIぞ聞けばいい。

でも、䜕を䜜りたいのかず、出おきたものが良いかどうかは自分で決める。

40代の普通のおっさんでも、そこそこいいもの䜜れる時代になりたした。

嬉しいこずですね。


ここたで読んでいただきありがずうございたした。
今回のnoteはこれで以䞊になりたす。


私ず同じように、仕事も家庭もあっお、それでも副業を続けたいず思っおいる方に少しでも届けばうれしいです。

ではたた、次回のnoteで。


よければ “スキ” や “フォロヌ” もらえるずうれしいです。


お願いしたす🙇‍♂


過去のnoteもよければご芧ください。




いいなず思ったら応揎しよう