{"type":"mcp_server","name":"xiaozhi-esp32-server","description":"ESP32 server backend. Enables quick setup of ESP32 device control.","category":"AI","language":"Python","stars":10147,"forks":1875,"owner":"xinnan-tech","github_url":"https://github.com/xinnan-tech/xiaozhi-esp32-server","homepage":null,"setup":"## Setup\n\nThis project offers two deployment options, choose the one that best suits your needs:\n\n#### 🚀 Deployment Options\n\n| Deployment Type | Features | Use Cases | Documentation | Hardware Requirements | Video Tutorial |\n|---|---|---|---|---|---|\n| **Simplified Installation** | Smart conversation, IOT, MCP, Visual Perception | Low-resource environments, data stored in configuration files, no database required | [① Docker](docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E5%8F%AA%E8%BF%90%E8%A1%8Cserver) / [② Source Code](docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%8F%AA%E8%BF%90%E8%A1%8Cserver) | 2 cores, 4GB RAM if using `FunASR`; 2 cores, 2GB RAM for API-only | - |\n| **Full Module Installation** | Smart conversation, IOT, MCP Access Point, Visual Perception, OTA, Smart Control Panel | Complete feature experience, data stored in a database | [① Docker](docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97) / [② Source Code](docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97) / [③ Source Code Auto-Update](docs/dev-ops-integration.md) | 4 cores, 8GB RAM if using `FunASR`; 2 cores, 4GB RAM for API-only | [Local Source Code Startup Video Tutorial](https://www.bilibili.com/video/BV1wBJhz4Ewe) |\n\n**Detailed instructions for each deployment method can be found in the linked documentation.**  The following is a general outline of the steps involved.\n\n#### Prerequisites\n\nBefore you begin, ensure you have the following installed:\n\n*   **For Docker Deployment:**\n    *   [Docker](https://www.docker.com/)\n    *   [Docker Compose](https://docs.docker.com/compose/install/) (Recommended)\n*   **For Source Code Deployment:**\n    *   [Python 3.7+](https://www.python.org/downloads/)\n    *   [Java JDK](https://www.oracle.com/java/technologies/javase-downloads.html) (For Java components)\n    *   [Node.js](https://nodejs.org/en/download/) and [npm](https://www.npmjs.com/get-npm) (For Vue frontend)\n    *   [Redis](https://redis.io/docs/getting-started/installation/) (For Full Module Installation)\n    *   [MySQL](https://www.mysql.com/downloads/) or other compatible database (For Full Module Installation)\n\n#### Installation Steps\n\n**1. Clone the Repository:**\n\n```bash\ngit clone https://github.com/xinnan-tech/xiaozhi-esp32-server.git\ncd xiaozhi-esp32-server\n```\n\n**2. Choose a Deployment Method:**\n\nFollow the instructions in the appropriate documentation file based on your chosen deployment method:\n\n*   **Simplified Installation:**\n    *   [Docker](docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E5%8F%AA%E8%BF%90%E8%A1%8Cserver)\n    *   [Source Code](docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%8F%AA%E8%BF%90%E8%A1%8Cserver)\n*   **Full Module Installation:**\n    *   [Docker](docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97)\n    *   [Source Code](docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97)\n\n**3. Configuration:**\n\n*   **API Keys:**  You will need to configure API keys for various services (ASR, LLM, TTS, VLLM) in the configuration files.  Refer to the documentation for specific instructions.\n*   **Database Configuration:** For Full Module Installation, configure the database connection settings in the appropriate configuration files.\n*   **Other Settings:**  Adjust other settings as needed based on your requirements.\n\n**4. Environment Variables:**\n\nThe project may require certain environment variables to be set.  These are typically used for API keys, database credentials, and other sensitive information.  Refer to the documentation for a complete list of required environment variables. Example:\n\n```bash\nexport DATABASE_URL=\"mysql://user:password@host:port/database\"\nexport OPENAI_API_KEY=\"your_openai_api_key\"\n```\n\n**5. Run the Application:**\n\nFollow the instructions in the documentation to start the application.  This may involve running Docker Compose, executing Python scripts, or building and running Java applications.\n\n#### 🚩 Configuration Recommendations\n\nThe project supports two configuration schemes:\n\n1.  `Entry-Level Free` Configuration: Suitable for personal/home use. All components use free options, requiring no extra payment.\n2.  `Streaming` Configuration: Suitable for demonstrations, training, or scenarios with more than 2 concurrent users. Uses streaming technology for faster response times and a better experience.\n\n| Module Name | Entry-Level Free Setting | Streaming Configuration |\n|---|---|---|\n| ASR (Speech Recognition) | FunASR (Local) | 👍 FunASRServer or 👍 DoubaoStreamASR |\n| LLM (Large Language Model) | ChatGLMLLM (Zhipu glm-4-flash) | 👍 DoubaoLLM (Volcano doubao-1-5-pro-32k-250115) |\n| VLLM (Visual Large Model) | ChatGLMVLLM (Zhipu glm-4v-flash) | 👍 QwenVLVLLM (Qianwen qwen2.5-vl-3b-instructh) |\n| TTS (Text-to-Speech) | ✅ LinkeraiTTS (Lingxi Streaming) | 👍 HuoshanDoubleStreamTTS (Volcano Dual-Stream Speech Synthesis) |\n| Intent (Intent Recognition) | function\\_call (Function Call) | function\\_call (Function Call) |\n| Memory (Memory Function) | mem\\_local\\_short (Local Short-Term Memory) | mem\\_local\\_short (Local Short-Term Memory) |","tools":"## Available Tools\n\n**Deployment:**\n\n*   **Docker Deployment:** Containerized deployment for simplified setup and management.\n    *   **Simplest Installation:** Deploys only the server component, suitable for low-resource environments. Stores data in configuration files, eliminating the need for a database.\n    *   **Full Module Installation:** Deploys all modules, including the control panel, for a complete feature set. Requires a database for data storage.\n*   **Source Code Deployment:** Manual deployment from source code, offering greater customization.\n    *   **Simplest Installation:** Deploys only the server component, suitable for low-resource environments. Stores data in configuration files, eliminating the need for a database.\n    *   **Full Module Installation:** Deploys all modules, including the control panel, for a complete feature set. Requires a database for data storage.\n\n**Testing:**\n\n*   **Audio Interaction Test Tool:** Located at `main/xiaozhi-server/test/test_page.html`. Open with Google Chrome to test audio playback and reception, verifying Python-side audio processing.\n*   **Model Response Test Tool 1:** Located at `main/xiaozhi-server/performance_tester.py`. Run `python performance_tester.py` to test the response speed of ASR (Speech Recognition), LLM (Large Language Model), and TTS (Text-to-Speech) modules.\n*   **Model Response Test Tool 2:** Located at `main/xiaozhi-server/performance_tester_vllm.py`. Run `python performance_tester_vllm.py` to test the response speed of the VLLM (Visual Language Model).\n\n**Functionality:**\n\n*   **Core Service Architecture:** WebSocket and HTTP server-based architecture with console management and authentication.\n*   **Voice Interaction System:** Supports streaming ASR, streaming TTS, VAD (Voice Activity Detection), multi-language recognition, and voice processing.\n*   **Intelligent Dialogue System:** Supports various LLMs for intelligent conversations.\n*   **Visual Perception System:** Supports various VLLMs for multimodal interaction.\n*   **Intent Recognition System:** Supports LLM-based intent recognition and Function Call, providing a pluggable intent processing mechanism.\n*   **Memory System:** Supports local short-term memory and mem0ai interface memory, with memory summarization capabilities.\n*   **Tool Calling:** Supports client-side IOT protocol, client-side MCP protocol, server-side MCP protocol, MCP access point protocol, and custom tool functions.\n*   **Management Backend:** Web-based management interface for user, system, and device management.\n*   **Plugin System:** Supports functional plugin extensions, custom plugin development, and plugin hot-reloading.","faq":null,"created_at":"2025-02-02T14:25:16+00:00","updated_at":"2025-07-07T16:18:30+00:00","source_url":"https://model-context-protocol.com/servers/xiaozhi-esp32-server","related_articles":[]}