Skip to content

Latest commit

 

History

History
376 lines (306 loc) · 23.2 KB

File metadata and controls

376 lines (306 loc) · 23.2 KB

Banners

Serviço Backend Xiaozhi xiaozhi-esp32-server

Este projeto é baseado na teoria e tecnologia de inteligência simbiótica humano-máquina para desenvolver sistemas inteligentes de hardware e software para terminais
fornecendo serviços de backend para o projeto de hardware inteligente de código aberto xiaozhi-esp32
Implementado usando Python, Java e Vue de acordo com o Protocolo de Comunicação Xiaozhi
Suporte ao protocolo MQTT+UDP, protocolo WebSocket, ponto de acesso MCP, reconhecimento de impressão vocal e base de conhecimento

Perguntas Frequentes · Reportar Problemas · Documentação de Implantação · Notas de Lançamento

简体中文版自述文件 README in English Tiếng Việt Deutsch Português (Brasil) GitHub Contributors GitHub pull requests stars

Liderado pela Equipe do Professor Siyuan Liu (Universidade de Tecnologia do Sul da China)
刘思源教授团队主导研发(华南理工大学)
Universidade de Tecnologia do Sul da China (华南理工大学)


Público-Alvo 👥

Este projeto requer dispositivos de hardware ESP32 para funcionar. Se você adquiriu hardware relacionado ao ESP32, conectou-se com sucesso ao serviço backend implantado pelo Brother Xia e deseja construir seu próprio serviço backend xiaozhi-esp32 de forma independente, então este projeto é perfeito para você.

Quer ver os efeitos de uso? Clique nos vídeos abaixo 🎥

Experiência de velocidade de resposta Segredo da otimização de velocidade Cenário médico complexo Envio de comandos MQTT Reconhecimento de impressão vocal
Controle de interruptores de eletrodomésticos Ponto de acesso MCP Tarefas com múltiplos comandos Reproduzir música Plugin de clima
Interrupção em tempo real Fotografar e identificar objetos Timbre de voz personalizado Comunicação em cantonês Transmissão de notícias

Avisos ⚠️

  1. Este projeto é um software de código aberto. Este software não possui parceria comercial com nenhum provedor de serviços de API de terceiros (incluindo, mas não se limitando a reconhecimento de fala, modelos de linguagem, síntese de voz e outras plataformas) com os quais se conecta, e não fornece nenhuma forma de garantia quanto à qualidade de serviço ou segurança financeira desses provedores. Recomenda-se que os usuários priorizem provedores de serviço com licenças comerciais relevantes e leiam cuidadosamente seus termos de serviço e políticas de privacidade. Este software não armazena nenhuma chave de conta, não participa de fluxos de fundos e não assume o risco de perda de fundos recarregados.

  2. A funcionalidade deste projeto não está completa e não passou por avaliação de segurança de rede. Por favor, não o utilize em ambientes de produção. Se você implantar este projeto para fins de aprendizado em um ambiente de rede pública, certifique-se de que as medidas de proteção necessárias estejam em vigor.


Documentação de Implantação

Banners

Este projeto oferece dois métodos de implantação. Por favor, escolha de acordo com suas necessidades específicas:

🚀 Seleção do Método de Implantação

Método de Implantação Funcionalidades Cenários Aplicáveis Documentação de Implantação Requisitos de Configuração Tutoriais em Vídeo
Instalação Simplificada Diálogo inteligente, gerenciamento de agente único Ambientes de baixa configuração, dados armazenados em arquivos de configuração, sem necessidade de banco de dados ①Versão Docker / ②Implantação via Código-Fonte 2 núcleos 4GB se usar FunASR, 2 núcleos 2GB se todas APIs -
Instalação de Módulo Completo Diálogo inteligente, gerenciamento multiusuário, gerenciamento de múltiplos agentes, operação de interface do console inteligente Experiência com funcionalidade completa, dados armazenados em banco de dados ①Versão Docker / ②Implantação via Código-Fonte / ③Tutorial de Atualização Automática via Código-Fonte 4 núcleos 8GB se usar FunASR, 2 núcleos 4GB se todas APIs Tutorial em Vídeo de Inicialização via Código-Fonte Local

Perguntas frequentes e tutoriais relacionados podem ser consultados neste link

💡 Nota: Abaixo está uma plataforma de teste implantada com o código mais recente. Você pode gravar e testar se necessário. Usuários simultâneos: 6, os dados serão limpos diariamente.

Endereço do Console de Controle Inteligente: https://2662r3426b.vicp.fun
Endereço do Console de Controle Inteligente (H5): https://2662r3426b.vicp.fun/h5/index.html

Ferramenta de Teste de Serviço: https://2662r3426b.vicp.fun/test/
Endereço da Interface OTA: https://2662r3426b.vicp.fun/xiaozhi/ota/
Endereço da Interface WebSocket: wss://2662r3426b.vicp.fun/xiaozhi/v1/

🚩 Descrição e Recomendações de Configuração

Note

Este projeto oferece dois esquemas de configuração:

  1. Configurações Gratuitas Nível Básico: Adequado para uso pessoal e doméstico, todos os componentes utilizam soluções gratuitas, sem necessidade de pagamento adicional.

  2. Configuração de Streaming: Adequado para demonstrações, treinamentos, cenários com mais de 2 usuários simultâneos, etc. Utiliza tecnologia de processamento em streaming para velocidade de resposta mais rápida e melhor experiência.

A partir da versão 0.5.2, o projeto suporta configuração de streaming. Em comparação com versões anteriores, a velocidade de resposta é melhorada em aproximadamente 2,5 segundos, melhorando significativamente a experiência do usuário.

Nome do Módulo Configurações Gratuitas Nível Básico Configuração de Streaming
ASR(Reconhecimento de Fala) FunASR(Local) 👍XunfeiStreamASR(Xunfei Streaming)
LLM(Modelo de Linguagem) glm-4-flash(Zhipu) 👍qwen-flash(Alibaba Bailian)
VLLM(Modelo de Visão) glm-4v-flash(Zhipu) 👍qwen2.5-vl-3b-instructh(Alibaba Bailian)
TTS(Síntese de Voz) ✅LinkeraiTTS(Lingxi streaming) 👍HuoshanDoubleStreamTTS(Volcano Streaming)
Intent(Reconhecimento de Intenção) function_call(Chamada de função) function_call(Chamada de função)
Memory(Função de Memória) mem_local_short(Memória local de curto prazo) mem_local_short(Memória local de curto prazo)

Se você está preocupado com o tempo de resposta de cada componente, consulte o Relatório de Teste de Desempenho dos Componentes Xiaozhi, e teste em seu próprio ambiente seguindo os métodos de teste do relatório.

🔧 Ferramentas de Teste

Este projeto fornece as seguintes ferramentas de teste para ajudá-lo a verificar o sistema e escolher modelos adequados:

Nome da Ferramenta Localização Método de Uso Descrição da Função
Ferramenta de Teste de Interação por Áudio main》xiaozhi-server》test》test_page.html Abrir diretamente com Google Chrome Testa as funções de reprodução e recepção de áudio, verifica se o processamento de áudio no lado Python está normal
Ferramenta de Teste de Resposta de Modelo main》xiaozhi-server》performance_tester.py Execute python performance_tester.py Testa a velocidade de resposta dos três módulos principais: ASR(reconhecimento de fala), LLM(modelo de linguagem), VLLM(modelo de visão), TTS(síntese de voz)

💡 Nota: Ao testar a velocidade dos modelos, apenas os modelos com chaves configuradas serão testados.


Lista de Funcionalidades ✨

Implementado ✅

请参考-全模块安装架构图

Módulo de Funcionalidade Descrição
Arquitetura Principal Baseado em gateway MQTT+UDP, servidores WebSocket e HTTP, fornece sistema completo de gerenciamento de console e autenticação
Interação por Voz Suporta ASR em streaming (reconhecimento de fala), TTS em streaming (síntese de voz), VAD (detecção de atividade vocal), suporta reconhecimento multilíngue e processamento de voz
Reconhecimento de Impressão Vocal Suporta registro, gerenciamento e reconhecimento de impressão vocal de múltiplos usuários, processa em paralelo com o ASR, reconhecimento de identidade do falante em tempo real e repassa ao LLM para respostas personalizadas
Diálogo Inteligente Suporta múltiplos LLM (modelos de linguagem de grande porte), implementa diálogo inteligente
Percepção Visual Suporta múltiplos VLLM (modelos de visão de grande porte), implementa interação multimodal
Reconhecimento de Intenção Suporta reconhecimento de intenção por LLM, Function Call (chamada de função), fornece mecanismo de processamento de intenção baseado em plugins
Sistema de Memória Suporta memória local de curto prazo, memória via interface mem0ai, memória inteligente PowerMem, com funcionalidade de resumo de memória
Base de Conhecimento Suporta base de conhecimento RAGFlow, permitindo que o LLM julgue se deve acionar a base de conhecimento após receber a pergunta do usuário, e então responda à pergunta
Chamada de Ferramentas Suporta protocolo IOT do cliente, protocolo MCP do cliente, protocolo MCP do servidor, protocolo de endpoint MCP, funções de ferramentas personalizadas
Envio de Comandos Suporta envio de comandos MCP para dispositivos ESP32 via protocolo MQTT a partir do Console Inteligente
Backend de Gerenciamento Fornece interface de gerenciamento Web, suporta gerenciamento de usuários, configuração do sistema e gerenciamento de dispositivos; Suporta exibição em Chinês Simplificado, Chinês Tradicional e Inglês
Ferramentas de Teste Fornece ferramentas de teste de desempenho, ferramentas de teste de modelo de visão e ferramentas de teste de interação por áudio
Suporte à Implantação Suporta implantação via Docker e implantação local, fornece gerenciamento completo de arquivos de configuração
Sistema de Plugins Suporta extensões de plugins funcionais, desenvolvimento de plugins personalizados e carregamento dinâmico de plugins

Em Desenvolvimento 🚧

Para conhecer o progresso específico do plano de desenvolvimento, clique aqui. Perguntas frequentes e tutoriais relacionados podem ser consultados neste link

Se você é um desenvolvedor de software, aqui está uma Carta Aberta aos Desenvolvedores. Seja bem-vindo a participar!


Ecossistema do Produto 👬

Xiaozhi é um ecossistema. Ao utilizar este produto, você também pode conferir outros projetos excelentes neste ecossistema


Lista de Plataformas/Componentes Suportados 📋

LLM Modelos de Linguagem

Método de Uso Plataformas Suportadas Plataformas Gratuitas
Chamadas via interface OpenAI Alibaba Bailian, Volcano Engine, DeepSeek, Zhipu, Gemini, iFLYTEK Zhipu, Gemini
Chamadas via interface Ollama Ollama -
Chamadas via interface Dify Dify -
Chamadas via interface FastGPT FastGPT -
Chamadas via interface Coze Coze -
Chamadas via interface Xinference Xinference -
Chamadas via interface HomeAssistant HomeAssistant -

Na verdade, qualquer LLM que suporte chamadas via interface openai pode ser integrado e utilizado.


VLLM Modelos de Visão

Método de Uso Plataformas Suportadas Plataformas Gratuitas
Chamadas via interface OpenAI Alibaba Bailian, Zhipu ChatGLMVLLM Zhipu ChatGLMVLLM

Na verdade, qualquer VLLM que suporte chamadas via interface OpenAI pode ser integrado e utilizado.


TTS Síntese de Voz

Método de Uso Plataformas Suportadas Plataformas Gratuitas
Chamadas via interface EdgeTTS, iFLYTEK, Volcano Engine, Tencent Cloud, Alibaba Cloud e Bailian, CosyVoiceSiliconflow, TTS302AI, CozeCnTTS, GizwitsTTS, ACGNTTS, OpenAITTS, Lingxi Streaming TTS, MinimaxTTS Lingxi Streaming TTS, EdgeTTS, CosyVoiceSiliconflow(parcial)
Serviços locais FishSpeech, GPT_SOVITS_V2, GPT_SOVITS_V3, Index-TTS, PaddleSpeech Index-TTS, PaddleSpeech, FishSpeech, GPT_SOVITS_V2, GPT_SOVITS_V3

VAD Detecção de Atividade Vocal

Tipo Nome da Plataforma Método de Uso Modelo de Preço Observações
VAD SileroVAD Uso local Gratuito

ASR Reconhecimento de Fala

Método de Uso Plataformas Suportadas Plataformas Gratuitas
Uso local FunASR, SherpaASR FunASR, SherpaASR
Chamadas via interface FunASRServer, Volcano Engine, iFLYTEK, Tencent Cloud, Alibaba Cloud, Baidu Cloud, OpenAI ASR FunASRServer

Reconhecimento de Impressão Vocal

Método de Uso Plataformas Suportadas Plataformas Gratuitas
Uso local 3D-Speaker 3D-Speaker

Armazenamento de Memória

Tipo Nome da Plataforma Método de Uso Modelo de Preço Observações
Memória mem0ai Chamadas via interface Cota de 1000 vezes/mês
Memória powermem Resumo local Depende do LLM e BD OceanBase de código aberto, suporta busca inteligente
Memória mem_local_short Resumo local Gratuito
Memória nomem Modo sem memória Gratuito

Reconhecimento de Intenção

Tipo Nome da Plataforma Método de Uso Modelo de Preço Observações
Intenção intent_llm Chamadas via interface Baseado no preço do LLM Reconhece intenção através de modelos de linguagem, forte generalização
Intenção function_call Chamadas via interface Baseado no preço do LLM Completa a intenção através de chamada de função do modelo de linguagem, velocidade rápida, bom resultado
Intenção nointent Modo sem intenção Gratuito Não realiza reconhecimento de intenção, retorna diretamente o resultado do diálogo

RAG Geração Aumentada por Recuperação

Tipo Nome da Plataforma Método de Uso Modelo de Preço Observações
RAG ragflow Chamadas via interface Cobrado com base nos tokens consumidos para fatiamento e segmentação de palavras Utiliza o recurso de geração aumentada por recuperação do RagFlow para fornecer respostas de diálogo mais precisas

Agradecimentos 🙏

Logo Projeto/Empresa Descrição
Robô de Diálogo por Voz Bailing Este projeto foi inspirado pelo Robô de Diálogo por Voz Bailing e implementado com base nele
Tenclass Agradecimentos à Tenclass por formular protocolos de comunicação padrão, soluções de compatibilidade multidispositivo e demonstrações práticas de cenários de alta concorrência para o ecossistema Xiaozhi; fornecendo suporte completo de documentação técnica para este projeto
Xuanfeng Technology (玄凤科技) Agradecimentos à Xuanfeng Technology por contribuir com o framework de chamada de função, protocolo de comunicação MCP e implementação do mecanismo de chamada baseado em plugins. Através de um sistema padronizado de agendamento de instruções e capacidades de expansão dinâmica, melhora significativamente a eficiência de interação e extensibilidade funcional dos dispositivos de frontend (IoT)
huangjunsen Agradecimentos a huangjunsen por contribuir com o módulo Console de Controle Inteligente Mobile, que permite controle eficiente e interação em tempo real em dispositivos móveis, melhorando significativamente a conveniência operacional e a eficiência de gerenciamento do sistema em cenários móveis.
Huiyuan Design (汇远设计) Agradecimentos à Huiyuan Design por fornecer soluções visuais profissionais para este projeto, utilizando sua experiência prática de design atendendo mais de mil empresas para potencializar a experiência do usuário deste produto
Xi'an Qinren Information Technology (西安勤人信息科技) Agradecimentos à Xi'an Qinren Information Technology por aprofundar o sistema visual deste projeto, garantindo consistência e extensibilidade do estilo de design geral em aplicações de múltiplos cenários
Contribuidores de Código Agradecimentos a todos os contribuidores de código, seus esforços tornaram o projeto mais robusto e poderoso.
Star History Chart