Skip to content

hachi-mori/VOICEVOX-Song-to-Talk-Length-Sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

VOICEVOX-Song-to-Talk-Length-Sync

【VOICEVOXでラップ】songノートからtalkモーラに秒数を反映させるツール

ツールの使い方

VOICEVOXの ソング で打ち込んだノートのリズム(テンポ/休符を含む実時間)を、トーク の各モーラ(拍)へ自動で割り当てる ブラウザツール です。
リズムはソングで厳密に、イントネーションはトークに任せる を実現します。

  • 外部送信なし・ブラウザ内で完結(単一HTML)
  • .vvproj を読み込み、同期済み .vvproj をダウンロード

https://hachi-mori.github.io/VOICEVOX-Song-to-Talk-Length-Sync/

手順

1. VOICEVOXエディタで新規プロジェクトを作成

image.png

2. トークにセリフを並べる

image.png

Tip

トーク画面ではこの時点で、使用したいキャラクターに変更する。

3. ソングにラップしたいリズムを ノートとして打ち込む(音高は何でもOK)

image.png

Tip

モーラ数=ノート数 にする。トーク画面とソング画面をよく見比べよう。

4. .vvproj を保存 → ツールに通して再保存 → エディタで読み直し

image.png

5. トークを再生成して再生。指定した通りのリズムで喋る はずです

image.png

Tip

イントネーションはトーク側で調整する。(アクセント位置、抑揚など)

任意のBPM/譜割で“しゃべるラップ” を素早く作れます!

実装

  1. 必要な情報を読み込む

    • ソング:テンポ一覧(tempos)、四分音符あたりのtick数(tpqn)、ノートの開始位置と長さ(position / duration
    • トーク:各モーラの長さ(consonantLength / vowelLength
  2. ノートの長さを秒に換算

    • 計算式:ticks / tpqn * (60 / bpm)
    • 可変テンポにも対応し、テンポが変わる区間ごとに計算して合計する
  3. 休符(無音部分)の処理

    • 最初にある休符は無視(しゃべり出しを遅らせないため)
    • 途中の休符は「直前のアクセントフレーズ」のポーズ時間(pauseMora.vowelLength)に加算
  4. モーラ内での時間配分

    • 元の子音:母音の比率をそのまま保ちつつ、合計時間を目標の秒数に合わせてスケーリング
    • 子音・母音のどちらも未設定の場合は、すべて母音に割り当てる
  5. 結果を書き出す

    • 秒数は小数第6位まで丸め
    • 更新済みのデータを新しい .vvproj として保存

ポイント:ソングのノート時間とトークのモーラ長がぴったり一致し、休符は自然な“間”として反映されます。

tpqn = 四分音符あたりのtick数

  • ツールで 音符→秒 を変換し、各モーラへ反映
  • BPMに忠実で、喋りは自然――実用的な“しゃべるラップ”が作れます!

詳細はQiitaの記事をご参照ください。

https://qiita.com/hachi_mori_/items/cf9d3ebdce84bd9395e4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages