目的
直接運用 VOICEVOX 編輯器的.vvproj,在 Laravel 中重新生成 Talk 與 Song。
頂層結構
.vvproj 為 UTF-8 JSON。Talk 與 Song 儲存在同一個檔案中。
talk 區段
talk.audioKeys 是順序陣列,talk.audioItems 是以 ID 為鍵的 Record。
TalkAudioItem
如果
.vvproj 中已經儲存 query,就無需再執行 /audio_query,可直接進入合成階段。
accentPhrases
song 區段
Track
Note
tick、秒、影格轉換
單一節奏時的轉換如下:tempos 以 position 遞增順序逐區間累加。
Note::len() 輔助函式從 tick 轉換為影格長度的實作,請參閱 Score 與 Note 詳細。
Song 音訊生成流程
直接編輯時的注意事項
tracks的鍵集合必須與trackOrder一致talk.audioKeys與talk.audioItems亦需同步- 維持
position >= 0、duration >= 1、noteNumber在0..127之間 tempos[0].position通常為0,timeSignatures[0].measureNumber通常為1- 未知的鍵盡量保留再儲存,以免破壞與未來版本的相容性
Laravel 程式碼範例
讀取.vvproj 並生成 Talk 與 Song 的最小範例。