Éradication
Bailling est un assistant de conversation vocale open source conçu pour avoir des conversations naturelles avec les utilisateurs via la voix. Le projet combine la reconnaissance vocale (ASR), la détection d'activité de la parole (VAD), le modèle de grande langue (LLM) et les technologies de synthèse de la parole (TTS). Il s'agit d'un robot de conversation vocal de type GPT-4O implémenté via ASR + LLM + TTS pour offrir une expérience de conversation vocale de haute qualité avec un retard de bout en bout de 800 ms. Bailling vise à obtenir des effets de dialogue de type GPT-4O sans avoir besoin de GPU, et convient à divers appareils de bord et à des environnements à faible ressource.

Caractéristiques du projet
- Modèle open source efficace : Bailling utilise plusieurs modèles open source pour assurer une expérience de conversation vocale efficace et fiable.
- Aucun GPU requis : optimisé, déployable localement et fournit toujours des performances comme GPT-4.
- Conception modulaire : les modules ASR, VAD, LLM et TTS sont indépendants les uns des autres et peuvent être remplacés et améliorés en fonction des exigences.
- Soutenir la fonction de mémoire : il a la capacité d'apprendre en continu, peut se souvenir des préférences des utilisateurs et des dialogues historiques, et offre une expérience interactive personnalisée.
- APPEPEMENT D'OUILLES SUPPORT : Intégration flexible des outils externes, les utilisateurs peuvent demander directement des informations ou effectuer des opérations via la voix, améliorant l'aspect pratique de l'assistant.
- Gestion des tâches de support : gérer efficacement les tâches des utilisateurs, pouvoir suivre les progrès, définir des rappels et fournir des mises à jour dynamiques pour garantir que les utilisateurs manquent toutes les questions importantes.
Introduction du projet
Bailling réalise la fonction de dialogue vocal à travers les composants techniques suivants:
- ASR : Utilisez FORASR pour une reconnaissance vocale automatique pour convertir la voix de l'utilisateur en texte.
- VAD : Utilisez SILERO-VAD pour effectuer une détection d'activité vocale pour vous assurer que seuls les segments vocaux valides sont traités.
- LLM : Utilisez Deepseek comme modèle de langue large pour traiter la saisie des utilisateurs et générer des réponses, ce qui est extrêmement rentable.
- TTS : Utilisez Edge-TTS CHATTTS MacOS dit pour la conversion de texte vocale, en convertissant la réponse du texte générée en une parole naturelle et lisse.
Description du cadre

Robot est responsable de la gestion efficace des tâches et de la gestion de la mémoire, et peut gérer intelligemment les demandes d'interruption des utilisateurs, tout en obtenant une coordination et une connexion transparentes entre divers modules pour assurer une expérience interactive fluide.
| Statut de joueur | Je dois parler | illustrer |
|---|
| Jouant | Ne parlant pas | normale |
| Jouant | dire | Interrompre la scène |
| Pas joué | Ne parlant pas | normale |
| Pas joué | dire | Jugement VAD, reconnaissance ASR |
Démo
Baillage de dialogue audio
Baillage de dialogue audio
Caractéristiques fonctionnelles
- Entrée vocale : reconnaissance de la parole précise via funasr.
- Détection d'activité vocale : utilisez SILERO-VAD pour filtrer l'audio non valide pour améliorer l'efficacité de la reconnaissance.
- Génération de dialogue intelligente : s'appuyant sur la compréhension du langage puissante fournie par Deepseek, il génère des réponses textuelles naturelles, qui est extrêmement rentable.
- Sortie vocale : convertir le texte en voix via Edge-TTS pour fournir aux utilisateurs des commentaires auditifs réalistes.
- Interruptions de support : la configuration flexible des stratégies d'interruption peut être utilisée pour identifier les mots clés et les interruptions vocales, assurer une rétroaction et un contrôle instantanés des utilisateurs dans les conversations et améliorer la maîtrise de l'interaction.
- Soutenir la fonction de mémoire : il a la capacité d'apprendre en continu, peut se souvenir des préférences des utilisateurs et des dialogues historiques, et offre une expérience interactive personnalisée.
- APPEPEMENT D'OUILLES SUPPORT : Intégration flexible des outils externes, les utilisateurs peuvent demander directement des informations ou effectuer des opérations via la voix, améliorant l'aspect pratique de l'assistant.
- Gestion des tâches de support : gérer efficacement les tâches des utilisateurs, pouvoir suivre les progrès, définir des rappels et fournir des mises à jour dynamiques pour garantir que les utilisateurs manquent toutes les questions importantes.
Avantages du projet
- Conversation vocale de haute qualité : intégrez d'excellentes technologies ASR, LLM et TTS pour assurer la maîtrise et la précision des conversations vocales.
- Conception légère : fonctionne sans matériel haute performance, adapté aux environnements limités aux ressources.
- Entièrement open source : Bailling est entièrement open source, encourageant la contribution communautaire et le développement secondaire.
Installation et exécution
Dépendre de l'environnement
Assurez-vous que les outils et bibliothèques suivants sont installés dans votre environnement de développement:
- Python 3.8 ou plus tard
- Gestionnaire de packages
pip - Funasr, SILERO-VAD, ENFEEK, EDGE-TTS BIBLIOTHÈQUE DE DÉPENDENCE REQUISE
Étapes d'installation
Clonage de l'entrepôt du projet:
git clone https://github.com/wwbin2017/bailing.git
cd bailing
Dépendances requises pour l'installation:
pip install -r requirements.txt
Configurer les variables d'environnement:
- Ouvrir Config / config.yaml pour configurer ASR LLM et d'autres configurations connexes
- Télécharger SenseVoicesMall sur les modèles de répertoire / SenseVoicesMall SenseVoices Mall Télécharger l'adresse
- Accédez au site officiel Deepseek pour obtenir la configuration API_KEY, Deepseek Obtenez l'API_KEY, bien sûr, vous pouvez également configurer d'autres modèles tels que Openai, Qwen, Gemini, 01Yi, etc.
Exécutez le projet:
cd server
python server.py # 启动后端服务,也可不执行这一步
Instructions pour une utilisation
- Après avoir démarré l'application, le système attendra l'entrée vocale.
- Convertir la voix de l'utilisateur en texte via FunaSr.
- SILERO-VAD effectue une détection d'activité vocale pour s'assurer que seule la voix valide est traitée.
- Deepseek traite la saisie du texte et génère des réponses intelligentes.
- Edge-TTS, Chattts, MacOS dit convertit le texte généré en parole et le joue à l'utilisateur.
Feuille de route
À l'avenir, Bailling sera sublimé dans un assistant personnel de type Jarvis, comme un groupe de réflexion attentionné avec une mémoire inégalée et des capacités de gestion des tâches prospectives. S'appuyant sur la technologie des chiffons et des agents de pointe, il contrôlera avec précision vos affaires et vos connaissances et simplifiera le complexe. Juste un murmure, tel que «Aidez-moi à trouver des nouvelles récentes» ou «résume les derniers développements du grand modèle», Bailling répond rapidement, analyse intelligemment, suit en temps réel et vous présente les résultats. Imaginez que vous avez non seulement un assistant, mais un partenaire intelligent qui connaît bien vos besoins, vous accompagnant à chaque moment important dans le futur, vous aidant à tout voir et à gagner mille milles.
Outils pris en charge
| Nom de la fonction | décrire | Fonction | Exemple |
|---|
get_weather | Obtenir des informations météorologiques pour un emplacement | Après avoir fourni le nom de l'emplacement, revenez aux conditions météorologiques de l'emplacement | L'utilisateur a dit: "Quel temps fait-il à Hangzhou?" → zhejiang/hangzhou |
ielts_speaking_practice | Pratique orale ielts | Générez des questions et des dialogues d'exercice oral IELTS pour aider les utilisateurs à pratiquer les exercices oraux IELTS | - |
get_day_of_week | Obtenez le jour en cours de la semaine ou la date | Lorsque l'utilisateur demande l'heure, la date ou le jour de la semaine en cours, les informations correspondantes sont renvoyées | L'utilisateur a dit: "Quel jour de la semaine aujourd'hui?" → Retour à la semaine en cours |
schedule_task | Créer une tâche chronométrée | Les utilisateurs peuvent spécifier le temps d'exécution et le contenu de la tâche et rappeler régulièrement aux utilisateurs | L'utilisateur a dit: "Rappelez-moi de boire de l'eau tous les matins à 8 heures." → time: '08:00', content: '提醒我喝水' |
open_application | Ouvrez l'application spécifiée sur votre Mac | Les utilisateurs peuvent spécifier le nom de l'application et le script lancera l'application correspondante sur le Mac | L'utilisateur a dit: "Open Safari". → application_name: 'Safari' |
web_search | Rechercher des mots clés spécifiés en ligne | Renvoyer les résultats de recherche correspondants en fonction du contenu de recherche fourni par l'utilisateur | L'utilisateur a déclaré: "Recherchez les dernières nouvelles technologiques." → query: '最新的科技新闻' |
Guide de contribution
Toutes les contributions sont les bienvenues! Si vous avez des suggestions d'amélioration du projet de renflouement ou que vous trouvez des problèmes, veuillez fournir des commentaires ou soumettre une demande de traction via des problèmes de github.
Protocole open source
Le projet est ouvert sur la base de la licence MIT. Vous êtes libre d'utiliser, de modifier et de distribuer ce projet, mais vous devez conserver l'énoncé de licence d'origine.
Coordonnées
Si vous avez des questions ou des suggestions, veuillez contacter:
- Problèmes de github: suivi des problèmes de projet
Clause de non-responsabilité
Bailling est un projet open source conçu à des fins d'apprentissage personnel et de recherche. Veuillez noter l'avertissement suivant lorsque vous utilisez ce projet:
- Utilisation personnelle : ce projet est pour des études personnelles et des recherches uniquement et ne convient pas aux environnements commerciaux ou de production.
- Risques et responsabilités : l'utilisation de renflouement peut entraîner une perte de données, une défaillance du système ou d'autres problèmes. Nous ne sommes pas responsables des pertes, dommages ou problèmes résultant de l'utilisation de ce projet.
- Assistance : Ce projet ne fournit aucun support technique ou garantie. Les utilisateurs doivent supporter les risques d'utiliser ce projet à leurs propres risques.
Veuillez vous assurer de comprendre et d'accepter ces avertissements avant d'utiliser ce projet. Si vous n'acceptez pas ces conditions, veuillez ne pas utiliser ce projet.
Merci pour votre compréhension et votre soutien!