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 conphp artisan serve --port=50513 puedes utilizar tal cual /audio_query, /synthesis, etc.
Preparación
Configura VOICEVOX Core for PHP
Prepara
voicevox-core-php y la biblioteca core siguiendo Instalación y configuración.Arranca el motor versión Laravel
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
2. Sintetizar el audio con synthesis
Uso desde el cliente Laravel
Puedes usar el motor versión Laravel como destino de conexión del modo cliente.Habilitar/deshabilitar la Engine API y fallback
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
| Endpoint | Versión Laravel | Fallback | Notas |
|---|---|---|---|
POST /audio_query | ✅ | ✅ | No admite enable_katakana_english |
POST /accent_phrases | ✅ | ✅ | No admite enable_katakana_english |
POST /synthesis | ✅ | ✅ | |
POST /mora_data | ✅ | ✅ | |
POST /mora_length | ✅ | ✅ | |
POST /mora_pitch | ✅ | ✅ | |
GET /speakers | ✅ | ✅ | |
GET /speaker_info | ✅ | ✅ | Requiere instalar recursos |
POST /cancellable_synthesis | ❌ | ✅ | Solo fallback |
POST /multi_synthesis | ❌ | ✅ | Solo 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.
Parámetros
| Parámetro | Descripción |
|---|---|
input | Texto a leer (máx. 4096 caracteres) |
voice | ID de estilo (número), alias (ずんだもん, 四国めたん, etc.) o nombre de voz de OpenAI (alloy, shimmer, etc.) |
speed | Velocidad de reproducción. Se aplica como speedScale (0.25-4.0; por defecto 1.0) |
response_format | Siempre se devuelve como wav. El valor indicado se ignora |
| Otros parámetros | Se 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.