Saltar al contenido principal

Qué es el modo Engine API

El modo Engine API expone dentro de tu app Laravel una API HTTP compatible con el motor oficial de VOICEVOX. Solo con arrancar la app con php artisan serve --port=50513 puedes utilizar tal cual /audio_query, /synthesis, etc.

Preparación

1

Configura VOICEVOX Core for PHP

Prepara voicevox-core-php y la biblioteca core siguiendo Instalación y configuración.
2

Configura las variables de entorno y habilita FFI

VOICEVOX_CORE_PATH=/path/to/voicevox_core/
ffi.enable=true
3

Instala los recursos de información de personajes

php artisan voicevox:install

Arranca el motor versión Laravel

php artisan serve --port=50513
Por defecto arranca en http://127.0.0.1:50513.

Sobre el puerto 50513

El puerto por defecto del motor oficial de VOICEVOX es 50021. Para poder arrancar a la vez el motor versión Laravel y el oficial, hemos fijado el puerto por defecto en 50513. Solo se arranca añadiendo --port=50513, así que también puedes usar otro puerto como --port=8000.
El motor oficial, si el puerto está en uso, arranca automáticamente en el primer puerto libre a partir del 50022. php artisan serve, si no indicas --port, también se ajusta automáticamente a partir del 8001, pero si indicas --port y el puerto está en uso, el arranque falla. Se recomienda fijar un puerto que difícilmente colisione con otros servicios. El 50513 es un ejemplo.

Generar audio de talk

1. Crear el audio_query

curl -s -X POST "http://127.0.0.1:50513/audio_query?speaker=1&text=ララベルが好きなのだ" \
  -H "Content-Type: application/json" \
  > audio_query.json

2. Sintetizar el audio con synthesis

curl -s -X POST "http://127.0.0.1:50513/synthesis?speaker=1" \
  -H "Content-Type: application/json" \
  -d @audio_query.json \
  > talk.wav

Uso desde el cliente Laravel

Puedes usar el motor versión Laravel como destino de conexión del modo cliente.
// config/voicevox.php
'client' => [
    'url' => env('VOICEVOX_URL', 'http://127.0.0.1:50513'),
],
use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('ララベルが好きなのだ', id: 1)
    ->generate(id: 1);

$response->storeAs('engine', 'talk.wav');

Habilitar/deshabilitar la Engine API y fallback

'engine' => [
    'disabled' => env('VOICEVOX_ENGINE_DISABLED', false),
    'fallback_url' => env('VOICEVOX_ENGINE_FALLBACK_URL', 'http://127.0.0.1:50021'),
],
Los endpoints no implementados como cancellable_synthesis o multi_synthesis pueden hacer fallback al motor oficial.
Si vas a usar el fallback, arranca el motor oficial en VOICEVOX_ENGINE_FALLBACK_URL.

Estado de compatibilidad relacionado con Talk

EndpointVersión LaravelFallbackNotas
POST /audio_queryNo admite enable_katakana_english
POST /accent_phrasesNo admite enable_katakana_english
POST /synthesis
POST /mora_data
POST /mora_length
POST /mora_pitch
GET /speakers
GET /speaker_infoRequiere instalar recursos
POST /cancellable_synthesisSolo fallback
POST /multi_synthesisSolo fallback

Endpoint TTS compatible con OpenAI

POST /v1/audio/speech acepta el mismo formato de petición que la API de síntesis de voz de OpenAI. Basta con cambiar la Base URL para usarlo desde Laravel AI SDK y muchas otras herramientas compatibles con la API de OpenAI.
curl -s -X POST "http://127.0.0.1:50513/v1/audio/speech" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "voicevox",
    "input": "ララベルが好きなのだ",
    "voice": "ずんだもん"
  }' \
  > talk.wav

Parámetros

ParámetroDescripción
inputTexto a leer (máx. 4096 caracteres)
voiceID de estilo (número), alias (ずんだもん, 四国めたん, etc.) o nombre de voz de OpenAI (alloy, shimmer, etc.)
speedVelocidad de reproducción. Se aplica como speedScale (0.25-4.0; por defecto 1.0)
response_formatSiempre se devuelve como wav. El valor indicado se ignora
Otros parámetrosSe ignoran
Los nombres de voz de OpenAI (alloy, shimmer, etc.) son una asignación provisional. No existe una definición oficial de cómo relacionar cada voz de OpenAI con los personajes de VOICEVOX, así que la relación se hace convencionalmente por compatibilidad. Recomendamos usar los alias de personajes de VOICEVOX (ずんだもん, 四国めたん/ノーマル, etc.).

Siguientes páginas

Engine API: Song

Revisa cómo usar sing_frame_audio_query y frame_synthesis.

Integración con Laravel AI SDK

Revisa la configuración para usar VOICEVOX desde la facade Audio.
Última modificación el 13 de julio de 2026