0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HuBERT+subseq DTW+Viterbi+Forced Alignmentまで実装しても、別アレンジRemixの後半でリップシンクが崩れる

0
Posted at

HuBERT+subseq DTW+Viterbi+Forced Alignmentまで実装しても、別アレンジRemixの後半でリップシンクが崩れる

以前こちらで BPMと構成が違うRemixのリップシンク について質問し、回答いただいた構成(Demucs → HuBERT → subsequence DTW → Viterbi → 局所DTW → 子音ピーク合わせ → 映像warp)をほぼそのまま実装しました。さらに Forced Alignment(faster-whisperの単語タイムスタンプ)と multi-scale DTW も追加しています。

おかげで原曲Edit版や、テンポが素直なRemixはかなり合うようになったのですが、構成を激しく組み替えたRemixの「後半」だけ、どうしても崩れます。その原因切り分けと、定番の対処を伺いたいです。

実装済みのパイプライン

Demucs で remix / 原曲MV 双方からボーカルstem分離
HuBERT(facebook/hubert-base-ls960)の中間層(層9)特徴量を抽出
multi-scale subsequence DTW(5秒窓 + 10秒窓)で窓ごとに top-k 候補抽出
Viterbi で全体経路推定(等速を基準に時間順を保つ遷移ペナルティ)
局所DTWで微調整
子音オンセット(onset_strength)で ±0.5s 微合わせ
Forced Alignment:双方を faster-whisper で単語タイムスタンプ化し、同一単語へスナップ
ffmpeg で setpts warp / 等速配置のどちらかで mux

WhisperX も試しましたが、こちらの環境が Python 3.14 で ctranslate2==4.4.0 が解決できず導入できなかったため、faster-whisper で代替しています。

症状

具体例:曲尺 311秒 / 原曲MV 257秒、テンポ一致度が極端に低い(chroma一直線度9%)激しいRemix。

得られた remix秒→MV秒 の対応(抜粋):

remix 0s → MV 43s
remix 55s → MV 70s
remix 105s → MV 108s
remix 188s → MV 166s
remix 217s → MV 87s ← 後半でMVが逆走(過去に飛ぶ)
remix 297s → MV 172s

前半〜中盤は概ね単調で口も合う
後半になるほど対応が非単調になり、MVが行ったり来たりする
サビの繰り返し部分で、同じ歌詞が原曲MVの別箇所に誤マッチしているように見える

自分なりの原因分析

MVが曲より物理的に短い(257s < 311s)。Remixがサビを増やしているため、後半はそもそも対応するMV区間が存在しない
サビ反復で「同じ歌詞」が複数箇所にあり、Forced Alignmentが最も近い1箇所に集中マッチしてしまう

試した対処と、その失敗

3分割(イントロ=最初の8小節、アウトロ=MV不足分を逆算、中盤だけ精密リップシンク)→ 後半の大きな逆走は減ったが、中盤に1点の誤マッチは残る
アンカーの単調化(PAVA)+傾き制限で後戻りを消す → 後戻りは消えたが、MVをスロー再生して尺を埋める形になり「同じ映像が繰り返される」副作用が発生
MVを広く使い切るよう再スケール → 今度は単語マッチ位置から離れて「口パクが全く合わない」状態に悪化したため撤回

つまり「口パク精度」と「映像の自然さ(繰り返し回避)」が真っ向からトレードオフになっていて、両立できずにいます。

質問

サビ反復で同一歌詞が複数回出るケースで、Forced Alignment / DTW の対応を「同じ歌詞の異なるテイクへ分散」させる定番手法はありますか?(1箇所集中ではなく、複数テイクを順番に使い回したい)
MVが曲より短く、対応が原理的に存在しない後半を、破綻なく扱う実務的な設計はどうするのが定石でしょうか?(フィラーへ逃がす以外に)
「フレーム精度の口パク」と「映像を満遍なく使う(繰り返し回避)」が衝突する場合、どちらをどう優先するのが一般的でしょうか。両立のための後段処理(コスト関数への使用済みペナルティ導入など)の知見があれば伺いたいです。
そもそも、ここまで構成が変わったRemixに対して原曲MVのリップシンクを追求するのは限界で、ビート同期のカット編集に切り替えるのが現実解、という理解で合っていますか?

環境:Python 3.14(librosa, scipy, Demucs, faster-whisper, ffmpeg)。アプローチの方向性自体への指摘も歓迎です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?