🌐 Rompiendo barreras de comunicación: Una solución de código abierto para personas sordas
Aplicación web para comunicación bidireccional a través de voz y texto, diseñada especialmente para personas sordas o con dificultades auditivas.
Sinte-Voz es una aplicación web diseñada para facilitar la comunicación bidireccional mediante voz y texto, con un enfoque especial en la accesibilidad para personas sordomudas. La aplicación permite que usuarios sordomudos participen en llamadas telefónicas y videoconferencias con personas oyentes, actuando como un puente de comunicación en tiempo real. Incorpora capacidades de síntesis de voz (TTS) y reconocimiento de voz (STT), funcionando con PulseAudio en sistemas Linux para una gestión avanzada del audio mediante dispositivos virtuales.
- 🎤 Captura de audio USB de alta calidad
- 🔄 Traducción bidireccional en tiempo real
- 💬 Chat de texto a voz y voz a texto
- 🌐 Soporte para múltiples idiomas
- 🎯 Baja latencia en reconocimiento de voz
- 🔌 Detección automática de dispositivos USB
- 🎙️ Micrófono virtual para aplicaciones de videoconferencia
- 🔒 Gestión segura de concurrencia y recursos GPU
- 🧠 Procesamiento optimizado con CUDA
- Interfaz web en tiempo real usando Socket.IO
- Síntesis de voz (TTS) usando gTTS
- Reconocimiento de voz usando Whisper
- Traducción automática con Google Translate
- Manejo de dispositivos de audio virtuales con PulseAudio
- Grabación de audio en formato WAV
-
Asistencia para Personas Sordomudas:
- Permite participar en llamadas y videoconferencias escribiendo texto que se convierte en voz
- Transcribe la voz del interlocutor a texto en tiempo real
- Se integra con Zoom, aplicaciones de telefonía y otras plataformas de comunicación
- Soporta comunicación multiidioma con traducción automática
-
Comunicación General:
- Chat en tiempo real con capacidades de voz
- Traducción automática de idiomas
- Grabación y archivo de conversaciones
- Python 3.11 o superior
- CUDA Toolkit (requerido para procesamiento GPU)
- GPU NVIDIA compatible con CUDA
- PulseAudio
- Navegador web moderno
- Conexión a Internet (para TTS y traducción)
- Dispositivo de audio USB
- Sistema operativo Linux (probado en Debian/Ubuntu)
- Dependencias del sistema:
sudo apt-get install portaudio19-dev python3-pyaudio
- Clonar el repositorio:
git clone [URL_DEL_REPOSITORIO]
cd sinte-voz
- Crear y activar entorno virtual:
python -m venv venv
source ./venv/bin/activate
- Instalar dependencias:
pip install -r requirements.txt
- Configurar dispositivos de audio virtuales:
pulseaudio -k
pulseaudio --start
aplay -l
sudo modprobe -r snd_usb_audio
sudo modprobe snd_usb_audio
pactl load-module module-alsa-card device_id=0
pactl load-module module-null-sink sink_name=virtual_speaker sink_properties=device.description="Virtual_Speaker"
sleep 2
pactl load-module module-remap-source master=virtual_speaker.monitor source_properties=device.description="Virtual_Microphone_Input"
sleep 2
pactl load-module module-null-sink sink_name=virtual_speaker sink_properties=device.description="VirtualSpeaker"
sleep 2
pactl list short sources
- Iniciar el servidor:
python main.py
-
Abrir el navegador en
http://localhost:8000
-
Para grabar audio del chat:
./grabar.sh
- Asegúrate de tener conectado tu dispositivo de audio USB
- Verifica que el dispositivo sea reconocido:
arecord -l
- El dispositivo USB debería aparecer como "USB Audio Device"
-
En la configuración de audio de tu aplicación de videoconferencia:
- Selecciona "Virtual_Microphone_Input" como micrófono
- Selecciona tu dispositivo de salida normal para los altavoces
-
Cuando alguien hable:
- Su voz será capturada por la salida de audio USB
- El texto traducido aparecerá en el chat
- Puedes responder escribiendo en el chat y se enviará como voz
-
Si el dispositivo USB no es detectado:
# Listar dispositivos de audio arecord -l aplay -l
-
Si hay problemas con el micrófono virtual:
# Reiniciar servicios de audio pulseaudio -k pulseaudio --start
main.py
: Servidor principal y lógica de la aplicacióngrabar.sh
: Script para grabar audio del chatstatic/
: Archivos estáticos (HTML, CSS, JS)index.html
: Interfaz web principalstyles.css
: Estilos CSSapp.js
: Lógica del cliente
static/temp/
: Archivos temporales de audio
La aplicación utiliza dos dispositivos de audio virtuales:
virtual_speaker
: Para reproducción de audio TTSvirtual_mic
: Para captura de audio STT
Las contribuciones son bienvenidas. Por favor, abre un issue para discutir cambios mayores.
Este proyecto está licenciado bajo los términos de la licencia MIT.