Voicebox: Estudio de voz IA open source local-first
Clona voces, genera habla, dicta en cualquier app y da voz a agentes IA — todo ejecutándose localmente en tu máquina
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Voicebox: Estudio de voz IA open source local-first en el canal GENBYTE:
¿Qué es Voicebox: Estudio de voz IA open source local-first?
Voicebox es un estudio de voz IA local-first, gratuito y de código abierto, alternativa a ElevenLabs y WisprFlow en una sola aplicación. Permite clonar voces a partir de pocos segundos de audio, generar habla en 23 idiomas mediante 8 motores TTS, dictar en cualquier campo de texto con una tecla global y dar a cualquier agente compatible con MCP una voz propia. La privacidad es completa: modelos, datos de voz y capturas nunca salen de la máquina. Está construido con Tauri (Rust) para rendimiento nativo, no Electron, y funciona en macOS (MLX/Metal), Windows (CUDA), Linux, AMD ROCm, Intel Arc y Docker.
Características principales
Clonación multi-motor
Ocho motores TTS intercambiables por generación: Qwen3-TTS (0.6B/1.7B, 10 idiomas, instrucciones de entonación), Qwen CustomVoice (9 voces predefinidas con control en lenguaje natural), Qwen VoiceDesign (crea voz desde descripción textual), LuxTTS (ligero ~1GB VRAM, 48kHz, 150x realtime en CPU), Chatterbox Multilingual (23 idiomas), Chatterbox Turbo (350M, etiquetas paralingüísticas), HumeAI TADA (1B/3B, 700s+ coherentes), Kokoro (50 voces predefinidas, 82M, CPU rápido).
Etiquetas paralingüísticas y emociones
Chatterbox Turbo interpreta etiquetas como [laugh], [sigh], [gasp], [cough], [groan], [sniff], [shush], [clear throat] y de entonación: [angry], [crying], [dramatic], [fear], [happy], [narration], [sarcastic], [surprised], [whispering], [advertisement]. Se insertan con '/' en el cuadro de texto. Los demás motores las leen como texto literal.
Post-procesado de audio
8 efectos con pedalboard de Spotify: Pitch Shift (±12 semitonos), Reverb (tamaño sala, amortiguación, mix), Delay (tiempo, feedback, mix), Chorus/Flanger, Compresor, Gain (-40 a +40 dB), Filtro pasa-alto, Filtro pasa-bajo. 4 presets incluidos (Robotic, Radio, Echo Chamber, Deep Voice) y presets personalizados. Asignables por perfil como default.
Generación de longitud ilimitada
Auto-chunking en fronteras de oración con crossfade configurable (0-200ms). Límite de chunk 100-5000 caracteres. Longitud máxima 50.000 caracteres. Respeta abreviaturas, puntuación CJK y etiquetas.
Versiones de generación con linaje
Cada generación guarda Original (TTS limpio), versiones con efectos, takes (regeneración con nueva seed), seguimiento de procedencia y favoritos.
Cola asíncrona no bloqueante
Ejecución serial para evitar contención GPU, streaming SSE en tiempo real, reintento de fallos, recuperación automática de generaciones obsoletas al iniciar.
Gestión de perfiles de voz
Creación desde archivo o grabación in-app, import/export, multi-muestra para mayor calidad, cadenas de efectos por defecto por perfil, organización con descripciones y etiquetas de idioma.
Editor Stories multi-pista
Línea de tiempo multi-voz para conversaciones, podcasts y narrativas: composición drag-and-drop, recorte y división inline, reproducción sincronizada, pinning de versión por clip.
Dictado global y entrada de voz
Hotkey global configurable (hold-to-speak y tap-to-toggle), paste accesible verificado en macOS con guardado/restauración atómico del portapapeles, botón mic en cada campo de texto, refinamiento opcional con LLM local, píldora flotante con estados recording/transcribing/refining/speaking.
Speech-to-Text con Whisper
Whisper Base/Small/Medium/Large y Turbo (~8x más rápido que Large, pérdida mínima). Ejecución MLX en Apple Silicon, PyTorch en CUDA/ROCm/DirectML/CPU. Parakeet v3 y Qwen3-ASR planificados.
Capturas persistentes
Todo dictado, grabación y archivo subido queda en pestaña Capturas con audio original y transcripción. Replay, re-transcripción con cualquier tamaño Whisper, re-refinamiento con flags LLM, edición inline, reproducción con voz clonada, promoción a muestra de perfil, almacenamiento local en directorio de datos.
Salida de voz para agentes (MCP)
Una llamada de herramienta (voicebox_speak) y cualquier agente MCP-aware (Claude Code, Cursor, Cline, Windsurf, VS Code) habla con voz clonada. Píldora bidireccional compartida con dictado, binding por agente en Settings → MCP, transporte HTTP + stdio, expuesto también como POST /speak para scripts y ACP/A2A.
Personalidades de voz
Personalidad libre por perfil (quién es, cómo habla, qué le importa). Dos acciones: Compose (genera línea in-character) y Speak in character (reescribe input antes de TTS). Agentes invocan personality:true en voicebox_speak. LLM local Qwen3 0.6B/1.7B/4B compartido con TTS/STT (MLX en Apple Silicon, PyTorch en resto).
Gestión de modelos
Descarga individual para liberar VRAM sin borrar descargas, directorio personalizable via VOICEBOX_MODELS_DIR, migración con progreso, cancelación/limpieza UI.
Soporte GPU multiplataforma
macOS Apple Silicon: MLX/Metal (4-5x vía Neural Engine). Windows NVIDIA: PyTorch CUDA (auto-descarga binario). Linux NVIDIA: PyTorch CUDA (backend Python local/remoto). Linux AMD: PyTorch ROCm (auto-configura HSA_OVERRIDE_GFX_VERSION). Windows cualquier GPU: DirectML. Intel Arc: IPEX/XPU. CPU: universal, más lento.
Requisitos del sistema
- Docker y Docker Compose
- Para GPU NVIDIA en Linux: controladores NVIDIA y nvidia-container-toolkit
- Para AMD ROCm: Docker con soporte ROCm y variable ROCM_VERSION (default 6.3, 7.2 para RDNA4)
- Mínimo 4 CPU y 8GB RAM asignados al contenedor (límites en docker-compose.yml)
- Puerto 17600 en host mapeado a 17493 en contenedor
Instalación con Docker Compose
Clonar repositorio y preparar directorios
Clona el repositorio y crea el directorio de salida para generaciones en el host.
cd voicebox
mkdir -p output
Levantar contenedor CPU (default)
Construye la imagen y levanta el servicio en segundo plano. El puerto 17600 en localhost expone la API y UI web.
Levantar con aceleración AMD ROCm
Usa el overlay docker-compose.rocm.yml para compilar y ejecutar con soporte ROCm. Ajusta ROCM_VERSION si usas RDNA4 (7.2).
Ver logs y estado
Comprueba que el contenedor está sano y la API responde.
curl -f http://127.0.0.1:17600/health
Acceder al proyecto
Interfaz web y API REST
Accede a la UI web y documentación OpenAPI en http://127.0.0.1:17600 (puerto host). La API nativa del contenedor escucha en 17493. Endpoints principales: POST /generate, POST /speak, POST /transcribe, GET /profiles, GET /docs (Swagger UI).
Servidor MCP (HTTP)
Endpoint MCP en http://127.0.0.1:17600/mcp. Requiere header X-Voicebox-Client-Id para binding por cliente. Configuración en Settings → MCP de la UI.
Servidor MCP (stdio)
Binario voicebox-mcp incluido en la app nativa. En Docker no está expuesto directamente; usa el transporte HTTP para clientes MCP.
Casos de uso
- Bucles de desarrollo con agentes: dicta pregunta, oye respuesta en voz clonada
- Diálogos para juegos y herramientas narrativas
- Producción de podcasts con editor Stories multi-pista
- Asistencia de habla para personas que no pueden usar su voz original
- Asistentes de voz locales y privacidad total
- Automatización de contenido: artículos, capítulos, guiones a audio
- Integración en scripts y pipelines CI/CD vía POST /speak
- Transcripción y refinamiento de reuniones, notas de voz, capturas
Configuración avanzada
Configurar cliente MCP (Claude Code)
Registra el servidor MCP HTTP con identificador de cliente para binding de voz por agente.
–transport http \
–url http://127.0.0.1:17600/mcp \
–header "X-Voicebox-Client-Id: claude-code"
Configurar cliente MCP (Cursor, Windsurf, VS Code)
Añade al archivo de configuración MCP del cliente (ej. ~/.cursor/mcp.json o settings.json).
"mcpServers": {
"voicebox": {
"url": "http://127.0.0.1:17600/mcp",
"headers": { "X-Voicebox-Client-Id": "cursor" }
}
}
}
Uso de voicebox_speak con personalidad desde agente
El agente reescribe el texto con la personalidad del perfil antes de sintetizar.
text: "Tests passing. Ready to merge.",
profile: "Morgan",
personality: true
});
Generar habla vía API REST
Ejemplo curl para síntesis directa especificando perfil y idioma.
-H "Content-Type: application/json" \
-d '{"text": "Hola mundo", "profile_id": "abc123", "language": "es"}'
Transcribir archivo de audio vía API
Sube archivo y elige modelo Whisper (base, small, medium, large, turbo).
Directorio de modelos personalizado
Define VOICEBOX_MODELS_DIR en environment del contenedor para almacenar modelos fuera del volumen por defecto.
– VOICEBOX_MODELS_DIR=/ruta/personalizada/modelos
Gestión y mantenimiento
Healthcheck automático
El contenedor incluye healthcheck cada 30s (timeout 10s, 3 reintentos, start-period 60s) contra /health. Docker reinicia si falla.
CMD curl -f http://localhost:17493/health || exit 1
Actualizar imagen y contenedor
Descarga cambios, reconstruye y recrea contenedor preservando volúmenes de datos y caché HuggingFace.
git pull
docker compose up –build -d
Gestión de memoria GPU
Desde la UI: Settings → Models → unload por modelo para liberar VRAM sin borrar descargas. En Docker, reiniciar contenedor también libera memoria.
Backup de perfiles, BD y generaciones
Los volúmenes voicebox-data y ./output contienen perfiles, SQLite, caché y audio generado. Copia estos directorios para backup.
Limpiar caché HuggingFace
El volumen huggingface-cache persiste descargas. Para limpiar, elimina el volumen y recrea.
docker volume rm voicebox_huggingface-cache
docker compose up –build -d
Stack técnico
- Desktop App: Tauri (Rust)
- Frontend: React, TypeScript, Tailwind CSS
- State: Zustand, React Query
- Backend: FastAPI (Python)
- TTS Engines: Qwen3-TTS, Qwen CustomVoice, Qwen VoiceDesign, LuxTTS, Chatterbox, Chatterbox Turbo, HumeAI TADA, Kokoro
- STT: Whisper / Whisper Turbo (PyTorch o MLX)
- Local LLM: Qwen3 (0.6B / 1.7B / 4B), runtime compartido con TTS/STT
- MCP Server: FastMCP en /mcp (Streamable HTTP) + binario stdio shim
- Native Shim: Rust (Tauri) para hotkey global, inyección paste, introspección foco
- Effects: Pedalboard (Spotify)
- Inference: MLX (Apple Silicon) / PyTorch (CUDA/ROCm/XPU/CPU)
- Database: SQLite
- Audio: WaveSurfer.js, librosa
Referencias oficiales
- Repositorio oficial GitHub: https://github.com/jamiepine/voicebox
- Sitio web y descargas: https://voicebox.sh
- Documentación oficial: https://docs.voicebox.sh
- Guía de instalación Linux: https://voicebox.sh/linux-install
- Guía de troubleshooting: https://github.com/jamiepine/voicebox/blob/main/docs/content/docs/overview/troubleshooting.mdx
- Guía completa MCP: https://github.com/jamiepine/voicebox/blob/main/docs/content/docs/overview/mcp-server.mdx
- Estado del proyecto y roadmap: https://github.com/jamiepine/voicebox/blob/main/docs/PROJECT_STATUS.md
- Licencia MIT: https://github.com/jamiepine/voicebox/blob/main/LICENSE
- Guía de contribución: https://github.com/jamiepine/voicebox/blob/main/CONTRIBUTING.md
- Política de seguridad: https://github.com/jamiepine/voicebox/blob/main/SECURITY.md
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
