【VOICEVOXでラップ】songノートからtalkモーラに秒数を反映させるツール
VOICEVOXの ソング で打ち込んだノートのリズム(テンポ/休符を含む実時間)を、トーク の各モーラ(拍)へ自動で割り当てる ブラウザツール です。
リズムはソングで厳密に、イントネーションはトークに任せる を実現します。
- 外部送信なし・ブラウザ内で完結(単一HTML)
.vvprojを読み込み、同期済み.vvprojをダウンロード
https://hachi-mori.github.io/VOICEVOX-Song-to-Talk-Length-Sync/
1. VOICEVOXエディタで新規プロジェクトを作成
2. トークにセリフを並べる
Tip
トーク画面ではこの時点で、使用したいキャラクターに変更する。
3. ソングにラップしたいリズムを ノートとして打ち込む(音高は何でもOK)
Tip
モーラ数=ノート数 にする。トーク画面とソング画面をよく見比べよう。
4. .vvproj を保存 → ツールに通して再保存 → エディタで読み直し
5. トークを再生成して再生。指定した通りのリズムで喋る はずです
Tip
イントネーションはトーク側で調整する。(アクセント位置、抑揚など)
→ 任意のBPM/譜割で“しゃべるラップ” を素早く作れます!
-
必要な情報を読み込む
- ソング:テンポ一覧(
tempos)、四分音符あたりのtick数(tpqn)、ノートの開始位置と長さ(position/duration) - トーク:各モーラの長さ(
consonantLength/vowelLength)
- ソング:テンポ一覧(
-
ノートの長さを秒に換算
- 計算式:
ticks / tpqn * (60 / bpm) - 可変テンポにも対応し、テンポが変わる区間ごとに計算して合計する
- 計算式:
-
休符(無音部分)の処理
- 最初にある休符は無視(しゃべり出しを遅らせないため)
- 途中の休符は「直前のアクセントフレーズ」のポーズ時間(
pauseMora.vowelLength)に加算
-
モーラ内での時間配分
- 元の子音:母音の比率をそのまま保ちつつ、合計時間を目標の秒数に合わせてスケーリング
- 子音・母音のどちらも未設定の場合は、すべて母音に割り当てる
-
結果を書き出す
- 秒数は小数第6位まで丸め
- 更新済みのデータを新しい
.vvprojとして保存
ポイント:ソングのノート時間とトークのモーラ長がぴったり一致し、休符は自然な“間”として反映されます。
※tpqn = 四分音符あたりのtick数
- ツールで 音符→秒 を変換し、各モーラへ反映
- BPMに忠実で、喋りは自然――実用的な“しゃべるラップ”が作れます!
詳細はQiitaの記事をご参照ください。




