Skip to main content
Con la funcionalidad de presets puedes guardar combinaciones habituales de parámetros de síntesis de voz en el motor oficial de VOICEVOX y reutilizarlas. En modo cliente, los presets no se guardan en Laravel; se usa la API de presets que gestiona el motor oficial al que te conectas.

Resumen

Los presets del modo cliente se manejan desde la facade Voicevox. Internamente envía peticiones HTTP a /presets, /add_preset, /update_preset, /delete_preset y /audio_query_from_preset del motor oficial de VOICEVOX. Los presets del motor oficial se guardan como presets.yaml en el área de usuario según el sistema operativo. En la build de macOS de la app de VOICEVOX (versión de producto) se guarda normalmente en:
Cuando ejecutas el motor oficial con Docker también se guarda en el área de usuario dentro del contenedor. Los datos se mantienen mientras sigas usando el mismo contenedor, aunque reinicies. Sin embargo, si creas contenedores efímeros cada vez con docker run --rm, los presets se pierden al finalizar el contenedor. Si necesitas persistencia garantizada, monta el área de usuario del contenedor con un volumen Docker. Se gestionan por separado del storage/voicevox/presets.json del modo nativo. El config('voicevox.core.presets') de Laravel no se usa en modo cliente.

Preparación

Arranca el motor oficial de VOICEVOX.
Puedes cambiar el destino de conexión con VOICEVOX_URL.

Estructura del preset

El preset que se envía y recibe en modo cliente es un array que se ajusta al esquema de la API del motor oficial.

Uso básico

Crear un preset

Puedes crear presets con Voicevox::addPreset(). En el motor oficial, si indicas 0 como id, se asigna un ID libre.

Obtener todos los presets

Actualizar un preset

Eliminar un preset

Síntesis de voz con presets

talkFromPreset()

Voicevox::talkFromPreset() usa /audio_query_from_preset del motor oficial para crear un TalkAudioQuery con el preset ya aplicado.

audioQueryFromPreset()

Si solo necesitas el array de audio query previo a la síntesis, usa audioQueryFromPreset().

Ajustes adicionales con tap()

El TalkAudioQuery creado desde un preset se puede ajustar con tap() igual que con el Voicevox::talk() habitual.

Correspondencia con la Engine API

Cada método de la facade Voicevox corresponde a una API del motor oficial.

Diferencias con el modo nativo

Ejemplos prácticos

Para narración

Para habla rápida

Detalle de parámetros

  • speedScale: 0.5 a 2.0 (velocidad)
  • pitchScale: -0.15 a 0.15 (tono)
  • intonationScale: 0.0 a 2.0 (entonación)
  • volumeScale: 0.0 a 2.0 (volumen)
  • prePhonemeLength: 0.0 a 1.5 (silencio inicial, en segundos)
  • postPhonemeLength: 0.0 a 1.5 (silencio final, en segundos)

Notas importantes

En modo cliente se actualiza el presets.yaml del motor oficial. No se guarda en el storage del proyecto Laravel.
  • Si creas contenedores efímeros cada vez con docker run --rm, los presets se pierden al finalizar el contenedor.
  • Incluye tanto speaker_uuid como style_id.
  • Cuando llames a generate(id:) con una query creada por talkFromPreset(), normalmente indica el mismo ID que el style_id del preset.

Solución de problemas

No se pueden obtener los presets

  1. Comprueba que el motor oficial de VOICEVOX esté arrancado.
  2. Comprueba que VOICEVOX_URL apunte al destino correcto.
  3. Comprueba si has vuelto a arrancar un contenedor distinto de Docker.

No sé dónde está el archivo de presets

En la build de macOS, comprueba esta ruta:
En Docker se guarda en el área de usuario del motor oficial (dentro del contenedor). Si necesitas persistencia, monta el área de usuario del contenedor en un volumen Docker.

No conozco el speaker_uuid

Puedes obtener el UUID desde la lista de speakers.
Última modificación el 13 de julio de 2026