⚡️ ¿Por qué un asistente de voz local?
Imagina un asistente que no solo entiende tus comandos, sino que responde con voz propia, estilo punk, y todo sin depender de la nube. Con las herramientas adecuadas, puedes montar este sistema en tu servidor casero, integrado con n8n, Home Assistant o cualquier automatización DIY.
1️⃣ Herramientas esenciales
| Función | Herramienta | Enlace |
|---|---|---|
| Texto a Voz (TTS) | Piper TTS | GitHub |
| Voz a Texto (STT) | Whisper.cpp | GitHub |
| Procesamiento de Comandos | n8n + DeepSeek R1 | Guía |
2️⃣ Instalación detallada
Paso 1: Instalar Piper TTS
# Descargar imagen Docker
docker pull rhasspy/piper-tts:es
# Ejecutar contenedor con voz en español
docker run -d -p 5000:5000 rhasspy/piper-tts:es --language es
Paso 2: Configurar Whisper.cpp para STT
# Descargar modelo pequeño (tiny) en español
wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin
# Iniciar servicio web
docker run -d -p 6000:6000 -v ./models:/models onerahmet/openai-whisper-asr-webservice --model /models/ggml-tiny.bin
3️⃣ Workflow n8n paso a paso
Paso 1: Capturar audio desde un dispositivo
Usa un nodo Webhook en n8n para recibir grabaciones desde:
- Una app móvil (como Tasker)
- Un script en Raspberry Pi con micrófono USB
- Home Assistant mediante integración
Paso 2: Transcripción con Whisper
{
"url": "http://localhost:6000/asr",
"method": "POST",
"headers": {
"Content-Type": "audio/wav"
},
"body": "={{ $input }}"
}
Paso 3: Procesar comando con IA
{
"model": "deepseek/deepseek-r1:free",
"messages": [
{
"role": "system",
"content": "Eres un asistente punk. Responde de forma breve, con jerga rebelde y sin censura. Ejemplo: '¡Vamos, enciende esa luz como un verdadero hacker!'"
},
{
"role": "user",
"content": "{{transcripcion}}"
}
]
}
Paso 4: Generar respuesta de voz
{
"url": "http://localhost:5000/api/tts",
"method": "POST",
"body": {
"text": "{{respuesta_ia}}",
"voice": "david_angry",
"speed": 1.2
}
}
Paso 5: Reproducir audio
- Opción 1: Usar un nodo SSH en n8n para ejecutar
aplay respuesta.waven tu servidor. - Opción 2: Enviar el audio a un dispositivo IoT (como un Google Nest mediante emulación).
4️⃣ Casos de uso avanzados
Integración con Home Assistant
# automation.yaml
- alias: "Encender luces por voz"
trigger:
platform: event
event_type: n8n_voice_command
action:
service: light.turn_on
target:
entity_id: light.salon
Notificaciones proactivas
Haz que tu asistente avise cuando:
- El servidor está al 90% de carga
- Se detecta movimiento en cámaras de seguridad
- Hay actualizaciones pendientes en tu servidor
5️⃣ Solución de problemas comunes
- Error de latencia: Usa modelos ligeros (Tiny para Whisper, voces rápidas en Piper).
- Audio distorsionado: Ajusta la tasa de muestreo a 16000Hz en las grabaciones.
- Falta de voces: Descarga más voces para Piper desde HuggingFace.
🎸 Descarga y personalización
Todo el código, Dockerfiles y workflows están disponibles en nuestro repositorio GitHub. ¡Clónalo, modifícalo y hazlo tan rebelde como quieras!
🔗 Recursos adicionales
- Guía de n8n para principiantes
- Exponer servicios de voz de forma segura
- Hilo de la comunidad sobre asistentes locales
