Open-source AI singing cover and lyric video generator for VOICEVOX.
音源と歌詞から、VOICEVOXキャラクターの歌唱カバーと字幕付きMVをローカルで生成する Pythonツールです。元ボーカルのピッチ、音量、歌詞タイミングを解析し、VOICEVOXの 歌声へ移植します。ブラウザで操作できるStudioとCLIの両方を提供します。
Project status: Alpha 仕様、プロジェクト形式、出力品質は今後変更される可能性が あります。まずは権利を保有する短い素材で試してください。
- ボーカル+伴奏、または歌入りMP3/WAVから歌唱カバーを生成
- RMVPE/pyinによるF0解析と、元歌唱のピッチ・音量・表情の移植
- テキスト、Markdown、LRCの歌詞入力
- 波形上での行・モーラタイミング編集、部分再生成、セグメントキャッシュ
- 9:16 Shortまたは16:9長編の字幕付きMP4生成
- PSDレイヤーによる口パク・瞬き・表情、通常画像の静止画表示
- 動画内ブランド表示と、OSS誘導・登録促進・自由入力・なしの終了案内
- VOICEVOX
.vvprojとUtaFormatix.ufdataの書き出し - すべてローカルで動作し、外部Webサービスは不要
AIモデル、音源、歌詞、キャラクター立ち絵は同梱していません。
- macOS 13以降、またはWindows 11
- Python 3.11または3.12
- ffmpeg
- 起動済みのVOICEVOX ENGINE(既定:
http://127.0.0.1:50021) - 音源分離を行う場合は
audio-separator、またはフォールバック用Demucs
VOICEVOX ENGINEと利用する音声ライブラリは、それぞれの配布元から取得してください。
リポジトリを取得後、プロジェクト直下で仮想環境を作ります。
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]'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-characterspython -m vv_cover studiomacOSでは、UtaForge AI Studio.commandをダブルクリックしても起動できます。.venv
がまだない場合は、ランチャーがPython 3.11以降の仮想環境を作成し、Studioと曲入り
音源の分離に必要な基本依存関係(UVRを含む)を自動インストールします(初回のみ時間が
かかります)。Studioは既定でhttp://127.0.0.1:8765を開きます。
- 権利を持つ音源と歌詞を読み込みます。
- 自動解析されたタイミングを波形上で確認・修正します。
- キャラクターを選び、VOICEVOXへ反映します。
- MP3、歌声プロジェクト、またはMP4を書き出します。
ローカルプロジェクトは既定でprojects/*.vvcover/へ、中間生成物はwork/へ保存されます。
どちらもGit管理から除外されます。
分離済みのボーカル、伴奏、歌詞を指定するのが最も確実です。
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は互換性のため残しています。
通常の生成と同時に、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 vvprojStudioのタイミング編集画面から、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通常の高速アラインメントに加え、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処理はローカルで行われます。入力素材、解析キャッシュ、生成音声、動画、外部モデルは
リポジトリへ含めず、.gitignoreで除外しています。プロジェクトを共有する場合は、絶対
パス、歌詞、音源、立ち絵、生成物が含まれていないか改めて確認してください。
RMVPE ONNX重みは、初回解析時にSHA-256検証付きで
~/.cache/vv-cover/rmvpe/rmvpe.onnxへ保存されます。
利用者は、入力する楽曲、原盤、歌詞、音声、画像、キャラクター、生成物について必要な 権利と許諾を確認してください。VOICEVOXおよび各音声ライブラリの利用規約・クレジット 要件にも従ってください。本プロジェクトはVOICEVOX公式プロジェクトではなく、特定の キャラクター、音声、立ち絵を同梱または推奨するものではありません。
第三者になりすます用途、本人の許可がない声の模倣、誤認を招く公開には使用しないで ください。生成物であることが重要な文脈では、AI生成・合成音声である旨を表示してください。
python -m pip install -e '.[dev]'
pytest -q実装方針とパイプラインはDESIGN.md、参加方法は CONTRIBUTING.md、脆弱性の報告方法はSECURITY.mdを 参照してください。
ソースコードはMIT Licenseで公開します。依存ライブラリ、VOICEVOX、音声 ライブラリ、外部モデル、利用者が用意する素材には、それぞれ別のライセンスが適用されます。