Vocalizer es una extensión nativa de PHP creada por Akram Zerarka que permite síntesis de texto a voz de forma local, sin APIs en la nube ni dependencias de tiempo de ejecución. Integra dos motores de inferencia — sherpa-onnx (ONNX Runtime) y audio.cpp (ggml) — y se distribuye como un binario .so precompilado, por lo que no hay nada que compilar. El artículo de Paul Redmond en Laravel News, fechado el 16 de julio de 2026, muestra a desarrolladores PHP por qué vale la pena considerar esta extensión para aplicaciones con voz.

Una sola llamada a Engine::load() apunta a un directorio de modelos y detecta automáticamente una de las ocho familias soportadas: Chatterbox, Supertonic, Piper/VITS, Pocket, Kokoro, Kitten, Matcha y ZipVoice. La síntesis se realiza con una llamada a speak(), cuyo resultado puede guardarse como WAV, obtenerse como cadena WAV o leerse como PCM float32. Chatterbox es la opción más capaz: un único modelo de ~7,5 GB cubre 23 idiomas y clona una voz a partir de un WAV de referencia de 3–10 segundos. También incluye una protección contra alucinaciones que re-sintetiza la salida con una nueva semilla si detecta texto omitido, bucles o silencio, con dos reintentos por defecto antes de lanzar una Vocalizer\Exception. Supertonic 3 está orientado a síntesis multilingüe en tiempo real (31 idiomas), Pocket TTS es ligero para clonación en francés/inglés, y Piper/VITS es el más rápido con un modelo por configuración regional.

La robustez está pensada para producción. Los modelos se almacenan en caché por worker PHP con eviction LRU, y la síntesis se ejecuta por defecto en modo fork para que un fallo del motor se capture y reintente sin matar el worker FPM. Chatterbox es la excepción porque su pool de hilos ggml no es seguro con fork, por lo que siempre ejecuta en modo directo. También hay speakAsync() para síntesis fuera de la petición, controles en php.ini para aislamiento, timeout, max_models y max_concurrency, y timeouts por llamada.

La instalación se realiza mediante un script curl que descarga la extensión precompilada de ~44 MB y la verifica con SHA256. Requiere Linux x86-64 con glibc ≥ 2.28 y PHP 8.4 o 8.5 NTS; no se soportan Alpine/musl, ARM ni ZTS. Los modelos se descargan por separado, incluyendo Chatterbox (~7,5 GB) y Supertonic 3 (~120 MB). La extensión tiene licencia MIT y enlaza estáticamente sherpa-onnx (Apache-2.0), audio.cpp/ggml (MIT), ONNX Runtime (MIT) y espeak-ng (datos de fonematización GPL-3.0).