RealtimeVoiceChat: diálogo hablado natural de baja latencia con IA
Últimos recursos sobre IAPublicado hace 3 meses Círculo de intercambio de inteligencia artificial 1.4K 00
Introducción general
RealtimeVoiceChat es un proyecto de código abierto que se centra en tiempo real, conversaciones naturales con la inteligencia artificial a través de la voz. Los usuarios utilizan el micrófono para introducir la voz , el sistema captura el audio a través del navegador , convertido rápidamente en texto , un gran modelo de lenguaje (LLM) para generar una respuesta , y luego convertir el texto a la salida de voz , todo el proceso está cerca de tiempo real . El proyecto adopta una arquitectura cliente-servidor con énfasis en baja latencia y soporta WebSocket streaming y gestión dinámica de diálogo. Proporciona despliegue Docker, se recomienda ejecutar en sistema Linux y entorno GPU NVIDIA, e integra RealtimeSTT, RealtimeTTS y Ollama y otras tecnologías adecuadas para que los desarrolladores creen aplicaciones de interacción por voz.

Lista de funciones
- interacción por voz en tiempo realLos usuarios introducen su voz a través del micrófono del navegador, y el sistema transcribe y genera una respuesta de voz en tiempo real.
- Procesamiento de baja latenciaOptimice la latencia de voz a texto y de texto a voz a 0,5-1 segundos transmitiendo audio mediante WebSocket.
- Voz a texto (STT)Convierte rápidamente voz a texto con RealtimeSTT (basado en Whisper), con soporte para transcripción dinámica.
- Texto a voz (TTS)Generación de voz natural mediante RealtimeTTS (compatible con Coqui, Kokoro y Orpheus) con una selección de estilos de voz.
- Gestión inteligente del diálogoIntegración de modelos lingüísticos de Ollama u OpenAI para apoyar la generación flexible de diálogos y la gestión de interrupciones.
- Detección dinámica de voz: a través de
turndetect.py
Permite la detección inteligente de silencios y se adapta al ritmo del diálogo. - interfaz web: Proporciona una interfaz de navegador limpia, utiliza Vanilla JS y la Web Audio API, y admite comentarios en tiempo real.
- Despliegue de DockerInstalación simplificada con Docker Compose, compatibilidad con aceleración de GPU y gestión de modelos.
- Personalización de modelosSoporte para cambiar entre los modelos STT, TTS y LLM para ajustar los parámetros del habla y del diálogo.
- código abierto y extensibleEl código es público y los desarrolladores pueden modificarlo o ampliarlo.
Utilizar la ayuda
Proceso de instalación
RealtimeVoiceChat admite tanto implementaciones Docker (recomendadas) como instalaciones manuales; el método Docker es adecuado para sistemas Linux, especialmente entornos con GPUs NVIDIA; las instalaciones manuales son adecuadas para Windows o escenarios en los que se requiera un mayor control. A continuación se detallan los pasos a seguir:
Despliegue en Docker (recomendado)
Requiere Docker Engine, Docker Compose v2+ y NVIDIA Container Toolkit (usuarios de GPU). Se recomiendan los sistemas Linux para un mejor soporte de GPU.
- almacén de clones::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat
- Creación de una imagen Docker::
docker compose build
Este paso descarga la imagen base, instala Python y las dependencias de aprendizaje automático, y descarga previamente los modelos STT predeterminados (Whisper
base.en
). Tarda mucho tiempo, así que asegúrate de que tu red es estable. - Inicio de los servicios::
docker compose up -d
Inicie la aplicación y el servicio Ollama con el contenedor ejecutándose en segundo plano. Espere unos 1-2 minutos a que se complete la inicialización.
- Modelo Pull Ollama::
docker compose exec ollama ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
Este comando extrae el modelo de idioma por defecto. Los usuarios pueden encontrar el modelo de idioma por defecto en
code/server.py
modificaciónLLM_START_MODEL
utilizar otros modelos. - Validación de la utilidad del modelo::
docker compose exec ollama ollama list
Asegúrese de que el modelo está cargado correctamente.
- Detener o reiniciar el servicio::
docker compose down # 停止服务 docker compose up -d # 重启服务
- Ver registro::
docker compose logs -f app # 查看应用日志 docker compose logs -f ollama # 查看 Ollama 日志
Instalación manual (Windows/Linux/macOS)
La instalación manual requiere Python 3.9+, CUDA 12.1 (usuarios de GPU) y FFmpeg. Los usuarios de Windows pueden utilizar el programa proporcionado install.bat
Los guiones simplifican el proceso.
- Instalación de dependencias básicas::
- Asegúrese de que Python 3.9+ está instalado.
- Los usuarios de GPU instalan NVIDIA CUDA Toolkit 12.1 y cuDNN.
- Instala FFmpeg:
# Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows (使用 Chocolatey) choco install ffmpeg
- Clonar el repositorio y crear un entorno virtual::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat python -m venv venv # Linux/macOS source venv/bin/activate # Windows .\venv\Scripts\activate
- Instalación de PyTorch (hardware adecuado)::
- GPU (CUDA 12.1):
pip install torch==2.5.1+cu121 torchaudio==2.5.1+cu121 torchvision --index-url https://download.pytorch.org/whl/cu121
- CPU (rendimiento más lento):
pip install torch torchaudio torchvision
- GPU (CUDA 12.1):
- Instalación de dependencias adicionales::
cd code pip install -r requirements.txt
Nota: DeepSpeed puede ser complicado de instalar, los usuarios de Windows pueden instalar DeepSpeed a través de la aplicación
install.bat
Procesamiento automático. - Instalar Ollama (no usuarios de Docker)::
- Consulte la documentación oficial de Ollama para la instalación.
- Tira del modelo:
ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
- Ejecutar la aplicación::
python server.py
advertencia
- requisitos de hardwareSe recomiendan las GPU NVIDIA (al menos 8 GB de RAM) para garantizar una baja latencia; el funcionamiento de la CPU puede causar una degradación significativa del rendimiento.
- Configuración de DockerModificación
code/*.py
tal vezdocker-compose.yml
Antes de hacerlo, es necesario volver a ejecutar el programadocker compose build
. - Cumplimiento de licenciasEl motor TTS (por ejemplo, Coqui XTTSv2) y el modelo LLM tienen licencias separadas y están sujetos a sus términos.
flujo de trabajo
- Acceso a la Interfaz Web::
- Abra su navegador y visite
http://localhost:8000
(o IP del servidor remoto). - Concede privilegios de micrófono y haz clic en "Iniciar" para comenzar la conversación.
- Abra su navegador y visite
- interacción por voz::
- Hable por el micrófono y el sistema capturará el audio a través de la API de audio web.
- El audio se transfiere al backend a través de WebSocket, RealtimeSTT se convierte en texto, Ollama/OpenAI genera una respuesta y RealtimeTTS se convierte en voz y se reproduce a través del navegador.
- Los retrasos en los diálogos suelen ser de 0,5-1 segundos, con posibilidad de interrumpirlos y continuarlos en cualquier momento.
- Información en tiempo real::
- La interfaz muestra el texto parcialmente transcrito y las respuestas de la IA, lo que facilita a los usuarios seguir el diálogo.
- Puedes hacer clic en "Detener" para finalizar el diálogo y en "Restablecer" para borrar el historial.
- Ajustes de configuración::
- Motor TTS: en
code/server.py
establecerSTART_ENGINE
(por ejemplocoqui
ykokoro
yorpheus
), ajustando el estilo de voz. - Modelo LLMModificación
LLM_START_PROVIDER
responder cantandoLLM_START_MODEL
Estas son algunas de las características más populares de Ollama - Parámetros STT: en
code/transcribe.py
ajuste de la platina central Susurro Umbrales de modelado, lenguaje o silencio. - Detección de silencio: en
code/turndetect.py
modificaciónsilence_limit_seconds
(por defecto 0,2 segundos) para optimizar el ritmo del diálogo.
- Motor TTS: en
- Depuración y optimización::
- Ver registro:
docker compose logs -f
(Docker) o simplemente echa un vistazo alserver.py
Salida. - Problemas de rendimiento: Asegurar la coincidencia de la versión CUDA, reducir
realtime_batch_size
O utilizar un modelo ligero. - Configuración de la red: Si se requiere HTTPS, configure la opción
USE_SSL = True
y proporcione la ruta del certificado (consulte la configuración oficial de SSL).
- Ver registro:
Función destacada Operación
- Procesamiento de secuencias de baja latenciaAudio chunking vía WebSocket, combinado con RealtimeSTT y RealtimeTTS, con una latencia de tan sólo 0,5 segundos. Los usuarios pueden mantener conversaciones fluidas sin esperas.
- Gestión dinámica del diálogo::
turndetect.py
Detecta de forma inteligente el final del discurso y admite interrupciones naturales. Por ejemplo, el usuario puede interrumpir en cualquier momento y el sistema hará una pausa para generar y procesar nuevas entradas. - Interacción con la interfaz webLa interfaz del navegador utiliza Vanilla JS y la Web Audio API para ofrecer transcripción y visualización de respuestas en tiempo real. Los usuarios pueden controlar el diálogo con los botones "Start/Stop/Reset".
- Flexibilidad de modelizaciónSoporte para el cambio de motores TTS (Coqui/Kokoro/Orpheus) y backends LLM (Ollama/OpenAI). Por ejemplo, cambio de TTS:
START_ENGINE = "kokoro" # 在 code/server.py 中修改
- Gestión de Docker: El servicio se gestiona a través de Docker Compose, y sólo es necesario actualizar el modelo:
docker compose exec ollama ollama pull <new_model>
escenario de aplicación
- Investigación sobre interacción de voz con inteligencia artificial
Los desarrolladores pueden probar la integración de RealtimeSTT, RealtimeTTS y LLM para explorar la optimización de la interacción vocal de baja latencia. El código fuente abierto admite parámetros personalizados y es adecuado para la investigación académica. - Prototipo de servicio inteligente de atención al cliente
Las empresas pueden desarrollar sistemas de atención al cliente por voz basados en el proyecto. Los usuarios hacen preguntas por voz y el sistema responde en tiempo real a las cuestiones más comunes, como asistencia técnica o asesoramiento sobre productos. - Herramientas de aprendizaje de idiomas
Las instituciones educativas pueden utilizar la funcionalidad TTS multilingüe para desarrollar herramientas de práctica de diálogo por voz. Los alumnos dialogan con la IA para practicar la pronunciación y la conversación, y el sistema les proporciona comentarios en tiempo real. - Asistentes personales de voz
Los entusiastas de la tecnología pueden desplegar proyectos para experimentar la interacción de voz natural con la IA, simulando un asistente inteligente, para entretenimiento personal o pequeños proyectos.
CONTROL DE CALIDAD
- ¿Qué soporte de hardware se necesita?
Sistema Linux recomendado con GPU NVIDIA (al menos 8 GB de memoria de vídeo) y CUDA 12.1. La CPU funciona de forma viable pero con alta latencia. Requisitos mínimos: Python 3.9+, 8GB RAM. - ¿Cómo resolver los problemas de despliegue de Docker?
Asegúrate de que Docker, Docker Compose y NVIDIA Container Toolkit están instalados correctamente. Compruebedocker-compose.yml
de la configuración de la GPU para ver los registros:docker compose logs -f
. - ¿Cómo cambio entre voz o modelo?
modificacionescode/server.py
ha dado en el clavoSTART_ENGINE
(TTS) oLLM_START_MODEL
(LLM). El usuario de Docker necesita volver a extraer el modelo:docker compose exec ollama ollama pull <model>
. - ¿Qué idiomas se admiten?
RealtimeTTS admite varios idiomas (por ejemplo, inglés, chino y japonés), que deben configurarse en la opcióncode/audio_module.py
Especifique el modelo de lengua y habla en el
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...