Skip to main content

Ziel

Ermöglicht es, .vvproj-Dateien des VOICEVOX-Editors unverändert zu nutzen und Talk und Song in Laravel neu zu erzeugen.

Top-Level-Struktur

.vvproj ist UTF-8-JSON. Talk und Song werden in derselben Datei gespeichert.

talk-Abschnitt

talk.audioKeys ist ein geordnetes Array; talk.audioItems ist ein Record mit IDs als Keys.

TalkAudioItem

Wenn query in .vvproj bereits gespeichert ist, können Sie direkt zur Synthese übergehen, ohne /audio_query erneut auszuführen.

accentPhrases

song-Abschnitt

Track

Note

Umrechnung Tick / Sekunde / Frame

Bei einem einzigen Tempo gilt:
Bei Tempoänderungen summieren Sie tempos in aufsteigender Reihenfolge von position abschnittsweise.
Eine Implementierung, die mit dem Note::len()-Helper von Ticks in Frame-Längen umrechnet, finden Sie unter Score- und Note-Details.

Ablauf der Song-Audio-Erzeugung

Hinweise bei direkter Bearbeitung

  • Die Schlüsselmenge von tracks und trackOrder müssen unbedingt übereinstimmen.
  • Auch talk.audioKeys und talk.audioItems müssen synchron gehalten werden.
  • Halten Sie position >= 0, duration >= 1 und noteNumber innerhalb von 0..127 ein.
  • tempos[0].position ist üblicherweise 0, timeSignatures[0].measureNumber üblicherweise 1.
  • Unbekannte Keys nach Möglichkeit erhalten und wieder speichern, um die Kompatibilität mit zukünftigen Versionen nicht zu brechen.

Laravel-Code-Beispiel

Ein Minimalbeispiel, das .vvproj einliest und Talk und Song erzeugt.
Zuletzt geändert am 13. Juli 2026