Nevebot é um bot Discord avançado escrito em Python, com IA local (LLM via llama.cpp), recursos de voz (STT com faster-whisper e TTS com OmniVoice) e uma interface web para configuração em tempo real. O projeto foca em conversas naturais em português, integração com canais de voz e controle fino via UI.
- Respostas locais usando modelos Llama (GGUF) hospedados no host.
- Modos de operação:
- Assistente: respostas diretas e objetivas.
- Lou: persona casual e introspectiva (não admite ser IA).
- Comandos especiais (via prefixo):
!resumir,!estilo,!limpar,!desligar,!bloquear, entre outros.
- Transcrição (STT): usa
faster-whisper(CTranslate2 backend) com VAD; modelossmall/mediumconfiguráveis para balancear latência x qualidade. - Síntese de voz (TTS): usa
OmniVoiceem modo voice-cloning (gera uma referência única e reutiliza para consistência vocal). - Conversão PCM alinhada a frames Opus e flush final para evitar cortes abruptos no fim do áudio.
- Reproduz TTS diretamente em canais de voz do Discord.
- Suporte a GPU (CUDA) para acelerar STT/TTS/LLM.
- Servidor HTTP embutido para configuração via navegador (
web/index.html). - Ajustes em tempo real: voz, velocidade, pitch, seed, prefixo, PTT, entre outros.
- A seção de comandos na UI é somente leitura (uso/descrição); edição é feita via JSON/config.
- Endpoints REST para enviar áudio, falar texto e obter/alterar config.
- Arquivo de referência de voz:
data/voz_referencia.wav(usado para voice-clone). - Push-To-Talk global: listener no host (Windows) via
pynput; endpoint/api/voz/ptt-estadousado pela UI. - Gravações salvas em
gravacoes/quando habilitado.
- Clone ou copie o repositório:
git clone <url-do-repositorio>
cd Nevebot- Instale dependências (Windows):
install.bat- O script cria/ativa um
venve instala dependências listadas emrequirements.txt. faster-whispere suas dependências (ctranslate2,onnxruntime) são instaladas pelo instalador.
- Configure variáveis de ambiente e modelos:
- Copie
.env.examplepara.enve preenchaDISCORD_TOKENe outros caminhos conforme necessário. - Coloque o(s) modelo(s) LLM GGUF em
models/. - Na primeira execução,
faster-whisperbaixará automaticamente o modelo STT selecionado (small/medium).
- Inicie o bot:
iniciar.bat-
Abra a interface web em
http://127.0.0.1:5000para configurar voz, PTT, prefixos e ver logs simples. -
Use no Discord:
- Use os comandos configurados (ex.:
!assistente,!casual) para trocar modos. - Em canais de voz, fale para o bot — ele transcreve e pode responder por TTS no canal.
data/voz_config.json: configurações de voz (modelo STT, instruct do TTS, velocidade, volume, seed, pitch).data/config_ui.json: configurações exibidas na UI e textos de comandos.data/bloqueados.json: lista de usuários bloqueados.
Nevebot/
├── nevebot.py
├── web_server.py
├── config.py
├── config_loader.py
├── install.bat
├── iniciar.bat
├── requirements.txt
├── cogs/
│ ├── llm_cog.py
│ └── voice_cog.py
├── services/
│ ├── stt_whisper.py # faster-whisper wrapper (STT)
│ └── tts_omnivoice.py # OmniVoice TTS + voice-clone
├── data/
│ ├── config_ui.json
│ ├── voz_config.json
│ └── voz_referencia.wav
├── gravacoes/
├── logs/
├── models/
└── web/
└── index.html
- Python 3.11+
discord.pyllama-cpp-python(para LLM GGUF)faster-whisper(STT)ctranslate2,onnxruntimeomnivoice(TTS) ou SDK/environment compatívelpynput(PTT global)
Consulte requirements.txt para a lista completa e versões testadas.
- Recomendamos GPU (CUDA) para desempenho ideal em STT/TTS/LLM.
- Default do STT é configurável; recomendamos
smallpara bom equilíbrio entre velocidade e qualidade em PT-BR.mediummelhora qualidade, com latência maior. - O pipeline de TTS usa voice-clone com uma referência persistente (
data/voz_referencia.wav) para voz consistente entre gerações. - Implementamos alinhamento de frames e flush no final do PCM para evitar cortes no final da fala.