Skip to main content

What presets are

Presets let you save and reuse common synthesis parameter combinations.
Group speed, pitch, and intonation into reusable sets to keep output quality consistent across multiple clips.

Overview

The Laravel VOICEVOX preset feature is a native implementation backed by VOICEVOX Core. Preset data is persisted as JSON at storage/voicevox/presets.json. It uses storage independent from the official VOICEVOX engine, so presets created on the Laravel side are not reflected in the official engine (and vice versa).

Configuration

By default, presets are saved to storage/voicevox/presets.json. To use another path, update config/voicevox.php.

Preset structure

Basic usage

Create a preset

Get all presets

Find a preset by ID

Update a preset

Delete a preset

Synthesize with a preset

Use the talk() helper or the Engine API /audio_query_from_preset endpoint.

talk() helper

Pass a preset ID to talk(preset:). The normal style ID is ignored in this mode.
Presets only replace default AudioQuery values. The rest of the synthesis flow is the same.

Access via Engine API

Get all presets

Add a preset

Update a preset

Delete a preset

Generate audio query from a 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

Laravel presets and official VOICEVOX engine presets are separate. Add, update, and delete operations are saved to JSON immediately.
  • Set preset id to 0 to auto-assign an unused ID.
  • Include both speaker_uuid and style_id in each preset.

Troubleshooting

Presets are not saved

  1. Check write permissions for the storage directory.
  2. Confirm storage/voicevox/presets.json is created correctly.

Check preset file path

Reset presets

Last modified on May 26, 2026