Projet open source
xinnan-tech/xiaozhi-esp32-server avatar
xinnan-tech/xiaozhi-esp32-server

Service backend pour xiaozhi-esp32 : construire votre propre serveur de contrôle d'appareils ESP32

Le service backend xiaozhi-esp32 ESP32 pour xiaozhi-esp32 vous aide à créer rapidement un serveur de contrôle de périphérique ESP32.

10 571 étoiles3 607 forksJavaScriptMIT

En bref

De quoi s’agit-il ?
Backend pour le projet matériel open source xiaozhi-esp32, prenant en charge MQTT+UDP, WebSocket, point d'accès MCP, reconnaissance vocale et base de connaissances.
À qui s’adresse-t-il ?
Le projet est en développement actif et n'a pas passé d'évaluation de sécurité réseau ; le README déconseille une utilisation en production. Pour xiaozhi-esp32-server, vérifiez d'abord la liaison avec le matériel ESP32 et le protocole choisi, MQTT+UDP ou WebSocket.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement JavaScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

À quoi sert ce service backend

xinnan-tech/xiaozhi-esp32-server est le service backend du projet matériel intelligent open source xiaozhi-esp32. Selon le README, il est implémenté en Python, Java et Vue, et suit le protocole de communication Xiaozhi. Le service prend en charge les protocoles MQTT+UDP et WebSocket, un point d'accès MCP, la reconnaissance vocale et une base de connaissances. Les utilisateurs cibles déclarés sont les personnes qui possèdent déjà du matériel ESP32, ont été connectées à un déploiement existant du backend xiaozhi-esp32 et souhaitent gérer leur propre instance. Le projet est attribué à l'équipe du professeur Siyuan Liu de l'Université de technologie de Chine du Sud.

Deux méthodes de déploiement et choix de configuration

Le README documente deux méthodes de déploiement. L'installation simplifiée est destinée aux environnements à faible configuration, stocke les données dans des fichiers de configuration et ne nécessite pas de base de données ; elle peut être exécutée via Docker ou à partir du code source. L'installation complète ajoute la gestion multi-utilisateurs, la gestion multi-agents et une console intelligente, et stocke les données dans une base de données. Les deux méthodes ont des chemins Docker et source. Le README décrit également deux schémas de configuration : les paramètres gratuits de niveau entrée pour un usage personnel et domestique, et une configuration en streaming destinée aux démonstrations et aux scénarios avec plus de deux utilisateurs simultanés. La configuration en streaming est prise en charge depuis la version 0.5.2 et le projet rapporte que la vitesse de réponse s'améliore d'environ 2,5 secondes par rapport aux versions antérieures.

Modules fonctionnels implémentés

La liste des fonctionnalités comprend une architecture de base basée sur une passerelle MQTT+UDP, des serveurs WebSocket et HTTP, avec gestion de console et authentification. L'interaction vocale couvre l'ASR en streaming, la TTS en streaming, la VAD, la reconnaissance multilingue et le traitement vocal. La reconnaissance vocale prend en charge l'enregistrement multi-utilisateurs et l'identification en temps réel du locuteur, traitée en parallèle avec l'ASR. Le système prend en charge plusieurs grands modèles de langage pour le dialogue, plusieurs modèles de vision pour l'interaction multimodale, la reconnaissance d'intention via l'appel de fonction ou des modèles d'intention dédiés, et un système de mémoire avec mémoire à court terme locale, mem0ai et PowerMem. Une intégration de base de connaissances avec RAGFlow permet au LLM de décider s'il faut interroger la base. L'appel d'outils prend en charge IOT client, MCP client, MCP serveur, point de terminaison MCP et fonctions personnalisées. Le backend d'administration fournit une interface Web pour la gestion des utilisateurs, du système et des appareils, avec affichage en chinois simplifié, chinois traditionnel et anglais. Il existe également des outils de test, un support Docker et de déploiement local, ainsi qu'un système de plugins avec chargement à chaud.

Composants et services tiers pris en charge

Le README répertorie les plates-formes prises en charge dans des tableaux. Pour les LLM, des interfaces compatibles OpenAI sont répertoriées pour Alibaba Bailian, Volcano Engine, DeepSeek, Zhipu, Gemini et iFLYTEK, avec Zhipu et Gemini marqués comme gratuits ; Ollama, Dify, FastGPT, Coze, Xinference et HomeAssistant sont également pris en charge. Le README note que tout LLM prenant en charge les appels d'interface OpenAI peut être intégré. Pour les modèles de vision, Zhipu ChatGLMVLLM est répertorié comme option gratuite, et tout VLLM avec des appels compatibles OpenAI devrait fonctionner. Les options TTS incluent EdgeTTS, iFLYTEK, Volcano Engine, Tencent Cloud, Alibaba Cloud, et plusieurs autres, plus des services locaux comme FishSpeech, GPT-SOVITS, Index-TTS et PaddleSpeech. La VAD est fournie par SileroVAD, localement et gratuitement. L'ASR comprend FunASR et SherpaASR localement, et des options cloud de Volcano Engine, iFLYTEK, Tencent Cloud, Alibaba Cloud, Baidu Cloud et OpenAI ASR. La reconnaissance vocale utilise 3D-Speaker localement. Les options de mémoire sont mem0ai, PowerMem, mem_local_short et nomem. La reconnaissance d'intention utilise intent_llm, function_call ou nointent. Le RAG est fourni via ragflow.

Outils de test et mesure de performance

Deux outils de test sont documentés. L'outil de test d'interaction audio se trouve dans main/digital-human/index.html ; exécuter python start.py dans ce répertoire et ouvrir http://127.0.0.1:8006/index.html teste la lecture et la réception audio pour vérifier le traitement audio côté Python. L'outil de test de réponse du modèle se trouve dans main/xiaozhi-server/performance_tester.py, exécuté avec python performance_tester.py, et mesure la vitesse de réponse pour ASR, LLM, VLLM et TTS. Le README note que seuls les modèles avec des clés API configurées sont testés. Il renvoie également à un référentiel de recherche de performance séparé pour les mesures de latence des composants.

Avertissements, état du projet et licence

Le README contient des avertissements explicites. Ceci est un logiciel open source sans partenariat commercial avec les fournisseurs de services API tiers avec lesquels il s'interface, et il ne fournit aucune garantie de leur qualité de service ou de leur sécurité financière. Les utilisateurs sont invités à privilégier les fournisseurs ayant les licences commerciales pertinentes et à lire les accords de service et les politiques de confidentialité. Le projet n'héberge pas de clés de compte, ne participe pas aux flux de fonds et ne supporte pas le risque de pertes de fonds de recharge. La fonctionnalité n'est pas complète et n'a pas passé d'évaluation de sécurité réseau ; le README déconseille une utilisation en production. Le logiciel est sous licence MIT, qui accorde l'utilisation, la copie, la modification, la fusion, la publication, la distribution, la sous-licence et la vente, sans garantie de qualité marchande ou d'adéquation à un usage particulier.

Remerciements et écosystème Xiaozhi

Le projet remercie plusieurs contributeurs. Il s'inspire du robot de dialogue vocal Bailing et est implémenté sur cette base. Tenclass est crédité pour les protocoles de communication standard, la compatibilité multi-appareils et la pratique de haute concurrence, ainsi que pour la documentation technique complète. Xuanfeng Technology a contribué au framework d'appel de fonction, au protocole de communication MCP et au mécanisme d'appel basé sur des plugins. huangjunsen a contribué au module mobile Smart Control Console. Huiyuan Design et Xi'an Qinren Information Technology ont fourni le design visuel. Le README renvoie également à d'autres projets de l'écosystème Xiaozhi, décrivant Xiaozhi comme un écosystème. Pour xiaozhi-esp32-server, vérifiez d'abord la liaison avec le matériel ESP32 et le protocole choisi, MQTT+UDP ou WebSocket. Le déploiement simplifié utilise des fichiers de configuration sans base de données ; le déploiement complet ajoute multi-utilisateur, multi-agent et console. Le test audio se lance depuis `main/digital-human/` avec `python start.py`, puis `http://127.0.0.1:8006/index.html`; la latence des modèles se mesure avec `main/xiaozhi-server/performance_tester.py` et `python performance_tester.py`. Contrôlez les clés réellement configurées avant d'interpréter ASR, LLM, VLLM ou TTS. Le README déconseille la production tant qu'aucune évaluation de sécurité réseau n'a été menée, point qui domine toute décision de déploiement.

Conclusion éditoriale

Le projet est en développement actif et n'a pas passé d'évaluation de sécurité réseau ; le README déconseille une utilisation en production. Pour xiaozhi-esp32-server, vérifiez d'abord la liaison avec le matériel ESP32 et le protocole choisi, MQTT+UDP ou WebSocket. Le déploiement simplifié utilise des fichiers de configuration sans base de données ; le déploiement complet ajoute multi-utilisateur, multi-agent et console. Le test audio se lance depuis `main/digital-human/` avec `python start.py`, puis `http://127.0.0.1:8006/index.html`; la latence des modèles se mesure avec `main/xiaozhi-server/performance_tester.py` et `python performance_tester.py`. Contrôlez les clés réellement configurées avant d'interpréter ASR, LLM, VLLM ou TTS. Le README déconseille la production tant qu'aucune évaluation de sécurité réseau n'a été menée, point qui domine toute décision de déploiement.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté