Empacado
Bailing es un asistente de conversación de voz de código abierto diseñado para tener conversaciones naturales con los usuarios a través de la voz. El proyecto combina tecnologías de reconocimiento de voz (ASR), detección de actividad del habla (VAD), modelo de lenguaje grande (LLM) y síntesis de voz (TTS). Este es un robot de conversación de voz similar a GPT-4O implementado a través de ASR+LLM+TTS para proporcionar una experiencia de conversación de voz de alta calidad con un retraso de extremo a extremo de 800 ms. El rescate tiene como objetivo lograr efectos de diálogo similar a GPT-4O sin la necesidad de GPU, y es adecuado para varios dispositivos de borde y entornos de baja recursos.

Características del proyecto
- Modelo de código abierto eficiente : el rescate utiliza múltiples modelos de código abierto para garantizar una experiencia de conversación de voz eficiente y confiable.
- No se requiere GPU : optimizado, desplegable localmente y aún proporciona rendimiento de rendimiento como GPT-4.
- Diseño modular : los módulos ASR, VAD, LLM y TTS son independientes entre sí y pueden ser reemplazados y actualizados de acuerdo con los requisitos.
- Función de memoria de soporte : tiene la capacidad de aprender continuamente, puede recordar las preferencias de los usuarios y los diálogos históricos, y proporciona una experiencia interactiva personalizada.
- Llamadas de herramientas de soporte : integración flexible de herramientas externas, los usuarios pueden solicitar directamente información o realizar operaciones a través de la voz, mejorando la practicidad del asistente.
- Gestión de tareas de soporte : administre eficientemente las tareas del usuario, capaz de rastrear el progreso, establecer recordatorios y proporcionar actualizaciones dinámicas para garantizar que los usuarios pierdan cualquier asunto importante.
Introducción del proyecto
El rescate realiza la función de diálogo de voz a través de los siguientes componentes técnicos:
- ASR : Use FunAsr para el reconocimiento automático de voz para convertir la voz del usuario en texto.
- VAD : use Silero-Vad para realizar la detección de actividades de voz para garantizar que solo se procesen segmentos de voz válidos.
- LLM : Use Deepseek como un modelo de lenguaje grande para procesar la entrada del usuario y generar respuestas, lo cual es extremadamente rentable.
- TTS : use los macos de chattts de borde y los tts para la conversión de texto a voz, convirtiendo la respuesta de texto generada en un discurso natural y suave.
Descripción del marco

Robot es responsable de la gestión eficiente de tareas y la gestión de la memoria, y puede manejar de manera inteligente las solicitudes de interrupción del usuario, al tiempo que logran una coordinación y conexión perfecta entre varios módulos para garantizar una experiencia interactiva suave.
| Estado del jugador | Si hablar | ilustrar |
|---|
| Jugando | No hablar | normal |
| Jugando | decir | Interrumpir la escena |
| No jugado | No hablar | normal |
| No jugado | decir | Juicio de Vad, reconocimiento de ASR |
Manifestación
Diálogo de audio de rescate
Diálogo de audio de rescate
Características funcionales
- Entrada de voz : reconocimiento de voz preciso a través de Funasr.
- Detección de actividad de voz : use Silero-Vad para filtrar audio inválido para mejorar la eficiencia de reconocimiento.
- Generación de diálogo inteligente : depender de la poderosa comprensión del lenguaje proporcionada por Deepseek, genera respuestas de texto naturales, lo cual es extremadamente rentable.
- Salida de voz : Convierta el texto en voz a través de Edge-TTS para proporcionar a los usuarios comentarios auditivos realistas.
- Interrupciones de soporte : se puede utilizar la configuración flexible de las políticas de interrupción para identificar las interrupciones de palabras clave y de voz, garantizar la retroalimentación instantánea y el control de los usuarios en las conversaciones y mejorar la fluidez de interacción.
- Función de memoria de soporte : tiene la capacidad de aprender continuamente, puede recordar las preferencias de los usuarios y los diálogos históricos, y proporciona una experiencia interactiva personalizada.
- Llamadas de herramientas de soporte : integración flexible de herramientas externas, los usuarios pueden solicitar directamente información o realizar operaciones a través de la voz, mejorando la practicidad del asistente.
- Gestión de tareas de soporte : administre eficientemente las tareas del usuario, capaz de rastrear el progreso, establecer recordatorios y proporcionar actualizaciones dinámicas para garantizar que los usuarios pierdan cualquier asunto importante.
Ventajas del proyecto
- Conversación de voz de alta calidad : integrar excelentes tecnologías ASR, LLM y TTS para garantizar la fluidez y la precisión de las conversaciones de voz.
- Diseño liviano : funciona sin hardware de alto rendimiento, adecuado para entornos con recursos limitados.
- Open -Open Fore : Rateing es completamente abierto, alentando la contribución de la comunidad y el desarrollo secundario.
Instalación y ejecución
Depender del entorno
Asegúrese de que las siguientes herramientas y bibliotecas estén instaladas en su entorno de desarrollo:
- Python 3.8 o posterior
- Administrador de paquetes
pip - Funasr, Silero-Vad, Deepseek, Biblioteca de dependencia de Edge-TTS requerido
Pasos de instalación
Cloning the Project Warehouse:
git clone https://github.com/wwbin2017/bailing.git
cd bailing
Dependencias requeridas para la instalación:
pip install -r requirements.txt
Configurar variables de entorno:
- Abra config/config.yaml para configurar ASR LLM y otras configuraciones relacionadas
- Descargue SensevoicesMall a los modelos de directorio/SensevoicesMall SensevoicesMall Dirección de descarga
- Vaya al sitio web oficial de Deepseek para obtener la configuración API_KEY, Deepseek obtenga el API_KEY, por supuesto, también puede configurar otros modelos como OpenAi, Qwen, Gemini, 01YI, etc.
Ejecute el proyecto:
cd server
python server.py # 启动后端服务,也可不执行这一步
Instrucciones de uso
- Después de comenzar la aplicación, el sistema esperará la entrada de voz.
- Convierta la voz del usuario en texto a través de FunAsr.
- Silero-Vad realiza la detección de actividades de voz para garantizar que solo se procese la voz válida.
- Deepseek procesa la entrada de texto y genera respuestas inteligentes.
- Edge-TTS, Chattts, MacOS dice que convierte el texto generado en discurso y lo reproduce al usuario.
Hoja de ruta
En el futuro, el rescate se sublimará en un asistente personal similar a Jarvis, como un grupo de expertos con cuidado con memoria incomparable y capacidades de gestión de tareas con visión de futuro. Confiando en la tecnología de trapo y agente de vanguardia, controlará con precisión sus asuntos y conocimientos y simplificará el complejo. Solo un susurro, como "Ayudarme a encontrar noticias recientes" o "resumir los últimos desarrollos en el gran modelo", Bailing responde rápidamente, analiza de manera inteligente, pistas en tiempo real y le presenta los resultados con gracia para usted. Imagine que no solo tiene un asistente, sino también un socio inteligente que está bien versado en sus necesidades, acompañándolo en cada momento importante en el futuro, ayudándole a ver todo y ganar mil millas.
Herramientas compatibles
| Nombre de función | describir | Función | Ejemplo |
|---|
get_weather | Obtener información meteorológica para una ubicación | Después de proporcionar el nombre de la ubicación, regrese a las condiciones climáticas de la ubicación | El usuario dijo: "¿Cómo está el clima en Hangzhou?" → zhejiang/hangzhou |
ielts_speaking_practice | IELTS Práctica oral | Genere preguntas y diálogos de ejercicio oral de IELTS para ayudar a los usuarios a practicar ejercicios orales de IELTS | - |
get_day_of_week | Obtenga el día actual de la semana o la fecha | Cuando el usuario solicita la hora actual, la fecha o el día de la semana, se devuelve la información correspondiente | El usuario dijo: "¿Qué día de la semana hoy?" → Volver a la semana actual |
schedule_task | Crear una tarea cronometrada | Los usuarios pueden especificar el tiempo de ejecución y el contenido de la tarea y recordar a los usuarios regularmente | El usuario dijo: "Recuérdame beber agua todas las mañanas a las 8 en punto". → time: '08:00', content: '提醒我喝水' |
open_application | Abra la aplicación especificada en su Mac | Los usuarios pueden especificar el nombre de la aplicación, y el script iniciará la aplicación correspondiente en la Mac | El usuario dijo: "Abra Safari". → application_name: 'Safari' |
web_search | Busque palabras clave especificadas en línea | Devuelva los resultados de búsqueda correspondientes en función del contenido de búsqueda proporcionado por el usuario | El usuario dijo: "Busque las últimas noticias tecnológicas". → query: '最新的科技新闻' |
Guía de contribución
¡Cualquier contribución es bienvenida! Si tiene alguna sugerencia para mejoras en el proyecto de rescate o encuentre algún problema, proporcione comentarios o envíe una solicitud de extracción a través de problemas de GitHub.
Protocolo de código abierto
El proyecto es de origen abierto en función de la licencia MIT. Usted es libre de usar, modificar y distribuir este proyecto, pero debe retener la declaración de licencia original.
Información del contacto
Si tiene alguna pregunta o sugerencia, comuníquese con:
- Problemas de Github: seguimiento de problemas del proyecto
Descargo de responsabilidad
El rescate es un proyecto de código abierto diseñado para fines de aprendizaje y investigación personal. Tenga en cuenta el siguiente descargo de responsabilidad cuando use este proyecto:
- Uso personal : este proyecto es solo para estudios e investigaciones personales y no es adecuado para entornos de uso comercial o de producción.
- Riesgos y responsabilidad : el uso del rescate puede conducir a la pérdida de datos, falla del sistema u otros problemas. No somos responsables de las pérdidas, daños o problemas derivados del uso de este proyecto.
- Soporte : este proyecto no proporciona ningún soporte técnico o garantía. Los usuarios tendrán los riesgos de usar este proyecto bajo su propio riesgo.
Antes de usar este proyecto, asegúrese de comprender y aceptar estas descargas de responsabilidad. Si no está de acuerdo con estos términos, no use este proyecto.
¡Gracias por su comprensión y apoyo!