xiaozhi-esp32-server : Service backend open source pour le chatbot Xiaozhi AI

Introduction générale

Le serveur xiaozhi-esp32 est un nouveau serveur pour le programme Chatbot Xiaozhi AI (xiaozhi-esp32)Fournir des outils pour les services d'arrière-plan. Il est écrit en Python et basé sur le protocole WebSocket pour aider les utilisateurs à construire rapidement un serveur pour contrôler les appareils ESP32. Ce projet convient aux personnes qui ont déjà acheté du matériel ESP32 et qui veulent construire le serveur par elles-mêmes. Ses fonctionnalités sont très pratiques, comme le support du dialogue vocal, la reconnaissance multi-langues et le contrôle de la maison intelligente. Le projet est open source sur GitHub, dernière mise à jour mars 2025, avec une documentation officielle détaillée et une communauté active. Notez qu'il est encore en cours de développement et qu'il n'est pas recommandé de l'utiliser directement dans un environnement de production.

xiaozhi-esp32-server:小智AI聊天机器人开源后端服务

 

Liste des fonctions

  • Communication WebSocket: échange des données avec le matériel en temps réel en utilisant le protocole xiaozhi-esp32.
  • dialogue vocalLe dialogue de réveil, le dialogue manuel et les interruptions en temps réel sont pris en charge, et l'appareil se met automatiquement en hibernation s'il n'est pas utilisé pendant une longue période.
  • Reconnaissance des intentionsIl reconnaît l'intention de l'utilisateur à l'aide d'un grand modèle et peut également appeler des fonctions pour exécuter des instructions.
  • Prise en charge multilingueComprendre le chinois, le cantonais, l'anglais, le japonais et le coréen avec FunASR par défaut.
  • Changement de modèle linguistiqueChatGLM : ChatGLM est utilisé par défaut, mais prend également en charge Alibaba Refinement, DeepSeek, etc.
  • synthèse vocaleLa version anglaise du logiciel : supporte EdgeTTS et Volcano Engine TTS pour générer une parole naturelle.
  • mode mémoireMémoire : Il existe trois options : mémoire extra-longue, résumé local et pas de mémoire.
  • Contrôle de la maison intelligenteLe système HomeAssistant permet d'allumer et d'éteindre les appareils électroménagers.

 

Utiliser l'aide

Processus d'installation

Pour utiliser xiaozhi-esp32-server, vous devez préparer votre matériel et votre environnement. Voici les étapes à suivre :

1. travaux préparatoires

  • logicielUn dispositif ESP32 qui supporte le firmware xiaozhi-esp32, voirListe officielle.
  • ordinateurs portablesIl est recommandé d'utiliser un processeur à 4 cœurs et une mémoire vive de 8 Go. Si vous utilisez l'API pour faire de la reconnaissance vocale, 2 cœurs, 2GB fonctionneront également.
  • matériel: Installer Python 3.10 et Conda.

2. télécharger le projet

  • Ouvrir https://github.com/xinnan-tech/xiaozhi-esp32-server.
  • Cliquez sur "Code" et sélectionnez "Download ZIP" pour télécharger.
  • Décompressez-le et renommez le dossier en "xiaozhi-esp32-server".

3. configurer l'environnement Conda

  • Ouvrez la ligne de commande et exécutez :
conda create -n xiaozhi-esp32-server python=3.10 -y
conda activate xiaozhi-esp32-server
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda install libopus -y
conda install ffmpeg -y
  • Vérifiez le résultat de chaque étape pour vous assurer qu'aucune erreur n'est signalée.

4. installation des dépendances

  • Allez dans le dossier du projet :
cd xiaozhi-esp32-server/main/xiaozhi-server
  • Mettre en place une source domestique et l'installer :
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt

5. télécharger le modèle

  • Par défaut, la reconnaissance vocale FunASR est utilisée. Consultez les directives officielles (voir README) et téléchargez les modèles dans le dossier "models".
  • Vérifiez la présence de "model.pt" dans le dossier "SenseVoiceSmall" et téléchargez-le s'il ne s'y trouve pas.

6. modification de la configuration

  • Ouvrez le fichier "config.yaml" et ajustez les paramètres :
  • modèle linguistiqueChatGLM : ChatGLM par défaut, peut être modifié en DeepSeek ou Aide à domicile.
  • synthèse vocaleLes deux modèles sont les suivants : EdgeTTS par défaut, Volcano Engine TTS remplaçable.
  • temps de silence: put min_silence_duration_ms Régler sur 1000 (pour une conversation lente).
  • Enregistrer le fichier.

7. démarrer le serveur

  • Exécuter dans le dossier "xiaozhi-server" :

python main.py

  • Si vous voyez "Server running on port 8000", vous avez réussi.

8. mise à jour du micrologiciel

Autres modalités de déploiement

  • Déploiement rapide de Docker: Convient aux novices. Course à pied docker pull xinnan-tech/xiaozhi-esp32-server, suivez les instructions pour le démarrage.
  • Exécution de Docker Source: Bon pour les personnes qui modifient le code. Installez d'abord Docker, puis exécutez le projet avec la documentation officielle.
  • Pour plus de détails, voirDocumentation sur le déploiement.

Fonctionnement

dialogue vocal

  • se réveilleLe serveur répondra en prononçant le mot de réveil (défini dans le micrologiciel).
  • déclencheur manuelPour les autres pays, il est possible d'utiliser le bouton de l'appareil pour entamer un dialogue.
  • se détacherInterruption de la conversation : L'interruption de la conversation est immédiatement prise en charge par l'appareil.
  • Pour l'utiliser : dites "hello" à l'appareil et écoutez la réponse.

reconnaissance multilingue

  • Cinq langues sont prises en charge. La priorité peut être ajustée dans le fichier de configuration.
  • Fonctionnement : dites "Hello" ou "Konichiwa" et l'appareil comprend.

synthèse vocale

  • Lorsque la fonction TTS est configurée, le texte devient parole.
  • Action : entrez "le temps qu'il fait aujourd'hui" avec un script de test et l'appareil le lira.
  • Toggle : Modifier l'interface TTS dans le fichier de configuration.

maison intelligente

  • Connecter HomeAssistant: Remplir le jeton.
  • Fonctionnement : Dites "allumez la lumière" et la lumière s'allume.
  • Test : Exécuter python performance_tester.py Vérifier la vitesse.

mise en garde

  • réticulationPour la stabilité, WebSocket s'appuie sur des connexions en temps réel.
  • cautionLes déploiements de réseaux publics en vue d'une protection ouverte (auth: enabled: true).
  • ajuster les composants pendant les essaisLes problèmes peuvent être résolus en consultant les journaux de la ligne de commande.

 

scénario d'application

  1. maison intelligente
  • Connectez-vous à HomeAssistant, dites "éteindre la climatisation" et la climatisation s'arrête.
  1. assistant vocal
  • Posez-le sur la table, demandez "le temps qu'il fera demain" et il vous le dira.
  1. pratique de la langue
  • Conversation en anglais, l'appareil vous aide à pratiquer votre prononciation.

 

QA

  1. Qu'en est-il de la reconnaissance d'un langage brouillé ?
  • Vérifier la présence de "model.pt" dans "models/SenseVoiceSmall". Si ce n'est pas le cas, allez àligne directriceTélécharger.
  1. L'erreur TTS indique que le fichier n'existe pas ?
  • Confirmé. libopus répondre en chantant ffmpeg. Exécuter sans chargement. conda install conda-forge::libopus répondre en chantant conda install conda-forge::ffmpeg.
  1. Que faire si la réponse est trop lente ?
  • Passer à un modèle plus rapide tel que AliLLM + DoubaoTTS. exécuter python performance_tester.py Prenez une mesure.
  1. Que se passe-t-il si vous êtes lent à parler et que l'on vous prive de vos mots ?
  • Dans "config.yaml", mettez les éléments suivants min_silence_duration_ms Passer à 1000.
  1. Comment contrôler les appareils ?
  • Dans la configuration, sélectionnez HomeAssistant, remplissez le jeton et dites la commande.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...