目的
VOICEVOXエディターの.vvproj をそのまま活用して、Laravel でトーク・ソングを再生成できるようにします。
トップレベル構造
.vvproj は UTF-8 JSON です。トークとソングを同じファイルに保存します。
talk セクション
talk.audioKeys は順序配列、talk.audioItems は ID をキーにした Record です。
TalkAudioItem
.vvproj に query が保存済みなら、/audio_query を再実行せずにそのまま合成へ進めます。
accentPhrases
song セクション
Track
Note
tick・秒・フレーム変換
単一テンポでは次で変換します。tempos を position 昇順で区間積算します。
Note::len() ヘルパーで tick からフレーム長へ変換する実装は Score と Note 詳細 を参照してください。
ソング音声生成の流れ
直接編集時の注意点
tracksのキー集合とtrackOrderを必ず一致させるtalk.audioKeysとtalk.audioItemsも同様に同期するposition >= 0、duration >= 1、noteNumberは0..127を維持するtempos[0].positionは通常0、timeSignatures[0].measureNumberは通常1- 未知キーは可能なら保持して再保存し、将来バージョンとの互換性を壊さない
Laravel コード例
.vvproj を読み込み、トークとソングを生成する最小例です。