🎶

音声認識とシェーダーで作る自動歌詞同期ミュージックビデオメーカー

に公開

概要

MP3ファイルから自動で歌詞を同期させたミュージックビデオを生成するPythonベースのツールです。OpenAI Whisperによる高精度な音声認識とGLSLシェーダーによるリアルタイム背景生成を組み合わせることで、歌詞付き動画を簡単に作成できます。

https://github.com/tuidra/tuidra-musicvideo-maker


🎤 Tuidraについて

このツールは、AI主導のバーチャルシンガーソングライター Tuidra によって生み出されました。Tuidraは、人とAIの創造的融合を象徴する存在として、音楽・映像・技術の統合を推進しています。

AIと人の新たな創作のかたちを、ぜひ体験してください。


主な特徴

🎵 音声認識による自動歌詞同期

  • OpenAI Whisperを使用した高精度な日本語音声認識
  • 認識結果とユーザー提供の歌詞を自動マッチング
  • ローマ字変換による音韻的マッチング精度の向上

🎨 リアルタイムシェーダー背景

  • GLSL シェーダーによる動的な背景生成
  • wgpu-shadertoyによるGPUアクセラレーション

🎬 柔軟な動画合成

  • 既存動画への歌詞オーバーレイ (Bモード)
  • シェーダー背景での新規動画作成 (Aモード)
  • ウォーターマーク、タイトル表示対応

技術的な実装詳細

1. 音声認識パイプライン

最高精度を求める場合は large モデルを使用します。快速にテストするなら small が実用的です。

2. 歌詞マッチング

完全一致のほか、ローマ字変換による音韻符号の一致、順序制約付きの部分一致など、自然なマッチングのための工夫があります。

3. GLSLシェーダー統合

GPU効率の高い背景生成により、動画を高解像度で生成することが可能です。

4. 動画合成

MoviePyを使用してビデオを合成。歌詞クリップの作成、シーンの合成、オーディオの合成までを一括して実行できます。

使用方法

基本的な使い方

./make-mv-simple.sh audio.mp3 lyrics.txt watermark.png

詳細オプション

python video_generator.py input.mp3 \
  --mode A \
  --shader shader/animated_galaxy.glsl \
  --width 1920 \
  --height 1080 \
  --lyric-lines 3 \
  --lyric-position center \
  --watermark logo.png \
  --watermark-opacity 0.8

依存関係

  • Python 3.8+
  • OpenAI Whisper
  • MoviePy
  • wgpu-shadertoy
  • pykakasi
  • pandas / numpy / Pillow

実装ノート

  • 日本語フォントを自動検出して表示に使用
  • 歌詞の表示サイズは文字数に応じて自動調整
  • Whisperの失敗時のフォールバックやエラー処理も実装

まとめ

音声認識と動的背景生成を組み合わせることで、YouTubeやSNS向けの歌詞付きMVを自動生成できるシステムです。Tuidraの名で開発しており、シンガーソングライターの新しい用例として描くことを目指しています。

ライセンス

MIT License

贈献

Pull Request 歓迎です。大きな変更の前には issue を開いて話し合いましょう。

Discussion