Skip to content

Repository files navigation

UtaForge AI

Open-source AI singing cover and lyric video generator for VOICEVOX.

音源と歌詞から、VOICEVOXキャラクターの歌唱カバーと字幕付きMVをローカルで生成する Pythonツールです。元ボーカルのピッチ、音量、歌詞タイミングを解析し、VOICEVOXの 歌声へ移植します。ブラウザで操作できるStudioとCLIの両方を提供します。

Project status: Alpha 仕様、プロジェクト形式、出力品質は今後変更される可能性が あります。まずは権利を保有する短い素材で試してください。

Features

  • ボーカル+伴奏、または歌入りMP3/WAVから歌唱カバーを生成
  • RMVPE/pyinによるF0解析と、元歌唱のピッチ・音量・表情の移植
  • テキスト、Markdown、LRCの歌詞入力
  • 波形上での行・モーラタイミング編集、部分再生成、セグメントキャッシュ
  • 9:16 Shortまたは16:9長編の字幕付きMP4生成
  • PSDレイヤーによる口パク・瞬き・表情、通常画像の静止画表示
  • 動画内ブランド表示と、OSS誘導・登録促進・自由入力・なしの終了案内
  • VOICEVOX .vvproj とUtaFormatix .ufdata の書き出し
  • すべてローカルで動作し、外部Webサービスは不要

AIモデル、音源、歌詞、キャラクター立ち絵は同梱していません。

Requirements

  • macOS 13以降、またはWindows 11
  • Python 3.11または3.12
  • ffmpeg
  • 起動済みのVOICEVOX ENGINE(既定: http://127.0.0.1:50021
  • 音源分離を行う場合はaudio-separator、またはフォールバック用Demucs

VOICEVOX ENGINEと利用する音声ライブラリは、それぞれの配布元から取得してください。

Installation

リポジトリを取得後、プロジェクト直下で仮想環境を作ります。

macOS

brew install ffmpeg
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e '.[japanese,pitch]'

Windows PowerShell

ffmpegをインストールしてPATHへ追加した後、次を実行します。

py -3.11 -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[japanese,pitch]"

歌入り音源を自動分離する場合は、UVR系モデルを使うuvrを追加します。Demucsも フォールバックとして使う場合はseparationを追加してください。

python -m pip install -e '.[japanese,pitch,uvr,separation]'

Studioで利用する任意機能をまとめて導入する場合は次でも構いません。

python -m pip install -r requirements.txt

導入後、VOICEVOX ENGINEを起動して接続を確認します。

python -m vv_cover --doctor
python -m vv_cover --list-characters

Studio

python -m vv_cover studio

macOSでは、UtaForge AI Studio.commandをダブルクリックしても起動できます。.venv がまだない場合は、ランチャーがPython 3.11以降の仮想環境を作成し、Studioと曲入り 音源の分離に必要な基本依存関係(UVRを含む)を自動インストールします(初回のみ時間が かかります)。Studioは既定でhttp://127.0.0.1:8765を開きます。

  1. 権利を持つ音源と歌詞を読み込みます。
  2. 自動解析されたタイミングを波形上で確認・修正します。
  3. キャラクターを選び、VOICEVOXへ反映します。
  4. MP3、歌声プロジェクト、またはMP4を書き出します。

ローカルプロジェクトは既定でprojects/*.vvcover/へ、中間生成物はwork/へ保存されます。 どちらもGit管理から除外されます。

CLI quick start

分離済みのボーカル、伴奏、歌詞を指定するのが最も確実です。

python -m vv_cover \
  --vocal /path/to/vocal.wav \
  --inst /path/to/instrumental.wav \
  --lyrics /path/to/lyrics.lrc \
  --character ずんだもん \
  -o output.mp3

歌入り音源から自動分離する場合:

python -m vv_cover /path/to/song.mp3 \
  --lyrics /path/to/lyrics.txt \
  --character 波音リツ \
  -o output.mp3

移植強度やミックスを調整する例:

python -m vv_cover \
  --vocal vocal.wav --inst instrumental.wav --lyrics lyrics.txt \
  --transfer-f0 0.9 --transfer-vol 0.6 \
  --vocal-gain-db 6 --inst-gain-db -3 --duck-db 4 \
  --preset anisong -o output.mp3

解析済みデータを利用し、指定した段階以降だけを再実行できます。

python -m vv_cover \
  --vocal vocal.wav --inst instrumental.wav --lyrics lyrics.txt \
  --from-stage score -o output.mp3

コマンド名utaforge-aiも利用できます。旧vv-coverコマンドとPythonパッケージ名 vv_coverは互換性のため残しています。

Singing project export

通常の生成と同時に、VOICEVOX用.vvprojとUtaFormatix Data .ufdataを書き出せます。

python -m vv_cover \
  --vocal vocal.wav --inst instrumental.wav --lyrics lyrics.txt \
  --export vvproj,ufdata --export-bpm 120 -o output.mp3

解析済みworkディレクトリやStudioプロジェクトだけを変換することもできます。

python -m vv_cover export work/example --format vvproj,ufdata -o exports
python -m vv_cover export projects/example.vvcover --format vvproj

Video output

Studioのタイミング編集画面から、Short向け9:16(1080×1920)または長編向け16:9 (1920×1080)のMP4を生成できます。

Short自動MVは、フレーズごとの背景、音量に反応する光、モーラタイミングに沿う歌詞の 色進行、ループしやすい終端を生成します。立ち絵の全身位置は固定し、口・目・眉などの 表情だけを動かします。ブランド表示と終了案内は個別に無効化できます。

立ち絵はPSD、PNG、JPEG、WebPに対応します。対応レイヤーのない画像は静止画として 書き出します。PSDの期待レイヤー構造と動画処理の詳細は設計書を参照して ください。

WindowsではYu GothicまたはMeiryoを自動検出します。別の字幕フォントを使う場合は、 互換性維持の環境変数VV_COVER_FONTへフォントファイルの絶対パスを設定します。

$env:VV_COVER_FONT = 'C:\path\to\font.ttf'
python -m vv_cover studio

Advanced alignment

通常の高速アラインメントに加え、SOFA、日本語narabasモデル、HTK形式.labを利用できます。 Studioの初回生成は軽量なheuristicで進め、Narabasは「歌詞AI再解析」など明示的に選んだ 場合だけ実行します。これらの 外部リポジトリ、Python環境、checkpointは本プロジェクトに同梱せず、自動取得もしません。 利用前に各モデルのライセンスと配布条件を確認してください。

python -m vv_cover \
  --vocal vocal.wav --inst instrumental.wav --lyrics lyrics.lrc \
  --aligner sofa \
  --sofa-root /path/to/SOFA \
  --sofa-python /path/to/sofa-env/bin/python \
  --sofa-checkpoint /path/to/model.ckpt \
  -o output.mp3

人手タイミングの作成と評価:

python -m vv_cover annotate \
  --audio work/example/vocals.wav \
  --lyrics lyrics.lrc \
  --prediction work/example/alignment.json \
  --analysis work/example/analysis.json \
  -o example.timing.json

python -m vv_cover evaluate \
  --gold example.timing.json \
  --prediction work/example/alignment.json

Data and privacy

処理はローカルで行われます。入力素材、解析キャッシュ、生成音声、動画、外部モデルは リポジトリへ含めず、.gitignoreで除外しています。プロジェクトを共有する場合は、絶対 パス、歌詞、音源、立ち絵、生成物が含まれていないか改めて確認してください。

RMVPE ONNX重みは、初回解析時にSHA-256検証付きで ~/.cache/vv-cover/rmvpe/rmvpe.onnxへ保存されます。

Responsible use

利用者は、入力する楽曲、原盤、歌詞、音声、画像、キャラクター、生成物について必要な 権利と許諾を確認してください。VOICEVOXおよび各音声ライブラリの利用規約・クレジット 要件にも従ってください。本プロジェクトはVOICEVOX公式プロジェクトではなく、特定の キャラクター、音声、立ち絵を同梱または推奨するものではありません。

第三者になりすます用途、本人の許可がない声の模倣、誤認を招く公開には使用しないで ください。生成物であることが重要な文脈では、AI生成・合成音声である旨を表示してください。

Development

python -m pip install -e '.[dev]'
pytest -q

実装方針とパイプラインはDESIGN.md、参加方法は CONTRIBUTING.md、脆弱性の報告方法はSECURITY.mdを 参照してください。

License

ソースコードはMIT Licenseで公開します。依存ライブラリ、VOICEVOX、音声 ライブラリ、外部モデル、利用者が用意する素材には、それぞれ別のライセンスが適用されます。

About

Open-source AI singing cover and lyric video generator for VOICEVOX. Audio + lyrics → singing, lip-sync, subtitles, and MP4.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages