Skip to main content

目的

直接運用 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、秒、影格轉換

單一節奏時的轉換如下:
若有節奏變化,則依 temposposition 遞增順序逐區間累加。
利用 Note::len() 輔助函式從 tick 轉換為影格長度的實作,請參閱 Score 與 Note 詳細

Song 音訊生成流程

直接編輯時的注意事項

  • tracks 的鍵集合必須與 trackOrder 一致
  • talk.audioKeystalk.audioItems 亦需同步
  • 維持 position >= 0duration >= 1noteNumber0..127 之間
  • tempos[0].position 通常為 0timeSignatures[0].measureNumber 通常為 1
  • 未知的鍵盡量保留再儲存,以免破壞與未來版本的相容性

Laravel 程式碼範例

讀取 .vvproj 並生成 Talk 與 Song 的最小範例。
最後修改於 2026年8月2日