Skip to main content
Met de presetfunctie kun je veelgebruikte combinaties van spraaksyntheseparameters opslaan in de officiële VOICEVOX-engine en hergebruiken. In de clientmodus worden presets niet aan de Laravel-kant opgeslagen; je gebruikt de preset-API die door de gekoppelde officiële engine wordt beheerd.

Overzicht

Presets in de clientmodus beheer je via de Voicevox-facade. Intern worden HTTP-requests verstuurd naar /presets, /add_preset, /update_preset, /delete_preset en /audio_query_from_preset van de officiële VOICEVOX-engine. De presets van de officiële engine worden per OS opgeslagen in het gebruikersgebied als presets.yaml. Bij de macOS-buildversie van de VOICEVOX-app (productversie) worden ze doorgaans hier opgeslagen.
Ook als je de officiële engine in Docker draait, worden ze opgeslagen in het gebruikersgebied binnen de container. Zolang je dezelfde container blijft gebruiken, blijft de data behouden na een herstart. Maar als je telkens een tijdelijke container aanmaakt, zoals met docker run --rm, gaan de presets verloren zodra de container stopt. Wil je presets betrouwbaar persistent maken, mount dan het gebruikersgebied in de container via een Docker volume. Dit staat los van storage/voicevox/presets.json van de native modus. De Laravel-instelling config('voicevox.core.presets') wordt in de clientmodus niet gebruikt.

Voorbereiding

Start de officiële VOICEVOX-engine.
Je kunt de bestemming wijzigen met VOICEVOX_URL.

Structuur van een preset

De presets die je in de clientmodus verstuurt en ontvangt zijn arrays volgens het schema van de officiële engine-API.

Basisgebruik

Een preset aanmaken

Met Voicevox::addPreset() maak je een preset aan. Als je bij de officiële engine 0 opgeeft als id, wordt er een ongebruikt ID toegewezen.

Alle presets ophalen

Een preset bijwerken

Een preset verwijderen

Spraaksynthese met presets

talkFromPreset()

Voicevox::talkFromPreset() maakt via /audio_query_from_preset van de officiële engine een TalkAudioQuery waarop de preset al is toegepast.

audioQueryFromPreset()

Gebruik audioQueryFromPreset() als je alleen de audioquery-array van vóór de spraaksynthese wilt ophalen.

Extra aanpassingen met tap()

Ook een TalkAudioQuery die uit een preset is gemaakt, kun je net als bij het gewone Voicevox::talk() aanpassen met tap().

Mapping met de Engine API

Elke methode van de Voicevox-facade komt overeen met een API van de officiële engine.

Verschillen met de native modus

Praktijkvoorbeelden

Voor narratie

Voor snel spreken

Parameterdetails

  • speedScale: 0.5 – 2.0 (spreeksnelheid)
  • pitchScale: -0.15 – 0.15 (toonhoogte)
  • intonationScale: 0.0 – 2.0 (intonatie)
  • volumeScale: 0.0 – 2.0 (volume)
  • prePhonemeLength: 0.0 – 1.5 (stilte aan het begin, in seconden)
  • postPhonemeLength: 0.0 – 1.5 (stilte aan het einde, in seconden)

Aandachtspunten

In de clientmodus wordt de presets.yaml aan de kant van de officiële engine bijgewerkt. Er wordt niets opgeslagen in de storage van je Laravel-project.
  • Als je telkens een tijdelijke container aanmaakt, zoals met docker run --rm, gaan de presets verloren wanneer de container stopt.
  • Neem zowel speaker_uuid als style_id op.
  • Als je een query die met talkFromPreset() is gemaakt aan generate(id:) doorgeeft, geef je normaal gesproken hetzelfde ID op als het style_id van de preset.

Problemen oplossen

Presets kunnen niet worden opgehaald

  1. Controleer of de officiële VOICEVOX-engine draait.
  2. Controleer of VOICEVOX_URL naar de juiste bestemming verwijst.
  3. Controleer of je in Docker niet per ongeluk een andere container opnieuw hebt gestart.

De locatie van het presetbestand is onbekend

Controleer bij de macOS-buildversie de volgende locatie.
In Docker worden ze opgeslagen in het gebruikersgebied van de officiële engine (binnen de container). Als persistentie nodig is, mount dan het gebruikersgebied in de container op een Docker volume.

De speaker_uuid is onbekend

Je kunt de UUID ophalen uit de lijst met speakers.
Laatst gewijzigd op 6 september 2026