Presets let you save and reuse common synthesis parameter combinations on the official VOICEVOX engine. In client mode, presets are managed entirely by the connected official engine — Laravel does not store preset data locally.
Overview
The client mode presets are operated through the Voicevox facade. Internally it sends HTTP requests to the official VOICEVOX engine endpoints /presets, /add_preset, /update_preset, /delete_preset, and /audio_query_from_preset.
The official engine stores presets in the OS user area as presets.yaml. On macOS (VOICEVOX app product build), the default path is:
When running the official engine via Docker, data is stored inside the container’s user area. Data persists across container restarts as long as you reuse the same container. However, when creating a temporary container each time with docker run --rm, presets are lost when the container stops. Use a Docker volume to mount the container’s user area if you need persistence.
This is separate from the native mode storage/voicevox/presets.json. The Laravel config('voicevox.core.presets') setting is not used in client mode.
Prerequisites
Start the official VOICEVOX engine.
The connection URL can be changed with VOICEVOX_URL.
Preset structure
Presets in client mode use the official engine API schema.
Basic usage
Create a preset
Use Voicevox::addPreset() to create a preset. Set id to 0 for auto-assignment.
Get all presets
Update a preset
Delete a preset
Synthesize with a preset
talkFromPreset()
Voicevox::talkFromPreset() uses the official engine’s /audio_query_from_preset to create a TalkAudioQuery with the preset already applied.
audioQueryFromPreset()
Use audioQueryFromPreset() to retrieve only the audio query array before synthesis.
Additional adjustment with tap()
A TalkAudioQuery created from a preset can be adjusted with tap(), just like Voicevox::talk().
Engine API mapping
Each Voicevox facade method maps to an official engine API endpoint.
Differences from native mode
Examples
Narration preset
Fast-talk preset
Parameter reference
speedScale: 0.5 to 2.0
pitchScale: -0.15 to 0.15
intonationScale: 0.0 to 2.0
volumeScale: 0.0 to 2.0
prePhonemeLength: 0.0 to 1.5 seconds
postPhonemeLength: 0.0 to 1.5 seconds
Notes
In client mode, the official engine’s presets.yaml is updated. Nothing is stored in your Laravel project’s storage.
- With
docker run --rm, presets are lost when the container exits.
- Include both
speaker_uuid and style_id in each preset.
- When calling
generate(id:) on a query built with talkFromPreset(), use the same ID as the preset’s style_id.
Troubleshooting
Presets are not found
- Confirm the official VOICEVOX engine is running.
- Check that
VOICEVOX_URL points to the correct engine.
- Check whether a different Docker container was started.
Check preset file path
On the macOS product build, check:
In Docker, presets are inside the container’s user area. Mount that path as a Docker volume if persistence is required.
speaker_uuid is unknown
You can retrieve the speaker UUID from the speaker list.