Um sistema profissional de Public Address (PA) para Discord que transmite áudio de qualquer dispositivo de entrada ou saída do computador para múltiplos canais de voz simultaneamente.
- Múltiplos Bots - Suporte para vários bots Discord funcionando simultaneamente
- Captura Universal de Áudio - Captura de TODOS os dispositivos de áudio (entradas e saídas)
- Transmissão Simultânea - Transmite para múltiplos canais de voz ao mesmo tempo
- Interface Web Moderna - Interface intuitiva para gestão completa
- Tempo Real - Atualizações instantâneas via WebSocket
- Configuração Persistente - Guarda dispositivo de áudio e canais predefinidos
- Voice Activity Detection (VAD) - Os bots mostram indicador "a falar" apenas quando há som
- Auto-restauro - Restaura automaticamente a última configuração ao iniciar
- Node.js 18 ou superior
- FFmpeg (incluído automaticamente via ffmpeg-static)
- Windows (para captura de dispositivos via DirectShow)
- Conta Discord com bots criados no Discord Developer Portal
git clone https://github.com/IvoAndre/Discord-PA.git
cd Discord-PAnpm installCopie o ficheiro de exemplo:
cp .env.example .envEdite o ficheiro .env e adicione os tokens dos seus bots:
BOT_TOKENS=token_do_bot_1,token_do_bot_2,token_do_bot_3
PORT=3000npm startAbra o navegador em http://localhost:3000
- Aceda ao Discord Developer Portal
- Clique em "New Application" e dê um nome
- Vá a "Bot" no menu lateral
- Clique em "Reset Token" e copie o token
- Em "Privileged Gateway Intents", ative:
- Server Members Intent
- Vá a "OAuth2" > "URL Generator"
- Selecione os scopes:
bot - Selecione as permissões:
Connect,Speak,View Channels - Copie o URL gerado e abra-o para adicionar o bot aos seus servidores
Dica: Crie múltiplos bots se precisar de transmitir para muitos canais simultaneamente. Cada bot pode estar em um canal de voz por servidor.
- Inicie o servidor com
npm start - Aceda à interface web em
http://localhost:3000 - Selecione um dispositivo de áudio no dropdown (microfone, saída de sistema, etc.)
- Selecione um bot e escolha um servidor/canal de voz
- Clique em "Entrar no Canal" para conectar o bot
- Repita para adicionar mais bots a outros canais
- Clique em "Iniciar Transmissão" para começar a transmitir áudio
- Configure o VAD se quiser que os bots só mostrem "a falar" quando há som
O VAD permite que os bots mostrem o indicador de "a falar" no Discord apenas quando há som real:
- Ativar/Desativar: Checkbox na interface
- Threshold: Sensibilidade do detetor (1-500, menor = mais sensível)
- Timeout de Silêncio: Tempo em ms antes de parar após silêncio (200-2000ms)
| Comando | Descrição |
|---|---|
npm start |
Inicia o servidor |
npm run dev |
Inicia em modo de desenvolvimento (auto-reload) |
npm run debug |
Inicia com logs de debug detalhados |
Discord-PA/
├── src/
│ ├── index.js # Servidor principal (Express + WebSocket)
│ ├── audio/
│ │ └── AudioManager.js # Gestão de dispositivos e captura de áudio
│ ├── bot/
│ │ └── BotManager.js # Gestão de bots e transmissão
│ ├── config/
│ │ └── ConfigManager.js # Configuração persistente
│ └── public/
│ └── index.html # Interface web
├── .env.example # Exemplo de configuração
├── package.json
└── README.md
| Variável | Descrição | Padrão |
|---|---|---|
BOT_TOKENS |
Tokens dos bots separados por vírgula | (obrigatório) |
PORT |
Porta do servidor web | 3000 |
- discord.js - Biblioteca principal do Discord
- @discordjs/voice - Suporte a canais de voz
- Express - Servidor web
- WebSocket (ws) - Comunicação em tempo real
- ffmpeg-static - Captura e processamento de áudio
- opusscript - Codificação de áudio Opus
- Verifique se o token do bot está correto no
.env - Verifique se o bot tem permissões
ConnecteSpeakno servidor
- Verifique se selecionou o dispositivo de áudio correto
- Verifique se a transmissão está iniciada
- Se usar VAD, tente baixar o threshold
- Certifique-se que o dispositivo está ativo no Windows
- Reinicie o servidor para atualizar a lista