Skip to main content

Doel

De .vvproj van de VOICEVOX-editor direct benutten, zodat je talk en song in Laravel opnieuw kunt genereren.

Structuur op het hoogste niveau

Een .vvproj is UTF-8 JSON. Talk en song worden in hetzelfde bestand opgeslagen.

De talk-sectie

talk.audioKeys is een geordende array, talk.audioItems is een record met ID’s als sleutel.

TalkAudioItem

Als er al een query in de .vvproj is opgeslagen, kun je direct doorgaan naar de synthese zonder /audio_query opnieuw uit te voeren.

accentPhrases

De song-sectie

Track

Note

Conversie tussen ticks, seconden en frames

Bij een enkel tempo converteer je zo:
Bij tempowisselingen sommeer je tempos per segment, gesorteerd oplopend op position.
Voor de implementatie die met de Note::len()-helper ticks naar framelengtes converteert, zie Score en Note in detail.

Flow van song-audiogeneratie

Aandachtspunten bij direct bewerken

  • Houd de sleutels van tracks en trackOrder altijd in overeenstemming
  • Synchroniseer op dezelfde manier talk.audioKeys en talk.audioItems
  • Houd position >= 0, duration >= 1 en noteNumber binnen 0..127
  • tempos[0].position is normaal 0, timeSignatures[0].measureNumber is normaal 1
  • Behoud onbekende sleutels waar mogelijk bij het opnieuw opslaan, zodat de compatibiliteit met toekomstige versies niet breekt

Laravel-codevoorbeeld

Een minimaal voorbeeld dat een .vvproj inleest en talk en song genereert.
Laatst gewijzigd op 6 september 2026