Um aplicativo de proteção de áudio em tempo real que filtra frequências causadoras de sobrecarga sensorial para proteger seus ouvidos durante o uso de aplicativos com áudio.
Interface gráfica do Protetor de Áudio mostrando controles de dispositivos, filtros e log de atividades
- Filtro Bandpass em Tempo Real: Remove frequências abaixo e acima de limiares configuráveis
- Modo Passthrough: Transmite áudio sem filtragem caso desejado
- Interface Gráfica Intuitiva: Controles simples e acessíveis com alto contraste
- Configuração Flexível: Ajuste as frequências de corte em tempo real
- Seleção de Dispositivos: Escolha dispositivos de entrada e saída de áudio
- Log de Atividades: Monitoramento completo de todas as operações
- Baixa Latência: Processamento performático com chunks pequenos (512 amostras)
- Python 3.x
- PyAudio: Captura e reprodução de áudio
- NumPy: Processamento numérico eficiente
- SciPy: Filtros digitais (Butterworth)
- CustomTkinter: Interface gráfica moderna
- Windows, macOS ou Linux
pyaudio
numpy
scipy
customtkinter
- Clone o repositório:
git clone https://github.com/Derekky/HackaUSP-2025-2.git
cd HackaUSP-2025-2/APP- Instale as dependências:
pip install -r requirements.txt- Configure o VB-Cable (Recomendado para Windows):
- Baixe e instale o VB-Audio Virtual Cable
- Configure aplicativos de áudio para usar "CABLE Input" como dispositivo de saída
- O aplicativo capturará áudio do "CABLE Output"
- Execute o aplicativo GUI:
python gui.py-
Configure os dispositivos:
- Selecione CABLE Output como dispositivo de entrada
- Selecione seus Alto-falantes/Fones como dispositivo de saída
-
Ajuste as frequências (opcional):
- Frequência Baixa: Bloqueia frequências abaixo deste valor (padrão: 250 Hz)
- Frequência Alta: Bloqueia frequências acima deste valor (padrão: 2000 Hz)
- Clique em "Aplicar Frequências"
-
Inicie a proteção:
- PASSTHROUGH: Transmite áudio sem filtro (quando desejado)
- FILTRO: Ativa a proteção com filtro de frequências
-
Para parar: Clique no mesmo botão novamente
Para uso direto via terminal:
python main.pySiga as instruções para selecionar dispositivos de entrada/saída.
- Taxa de Amostragem: 44100 Hz
- Tamanho do Chunk: 512 amostras
- Tipo de Filtro: Butterworth Bandpass (ordem 2-3)
- Frequências Padrão: 700 Hz - 1300 Hz
AudioProcessor
├── Audio Input (VB-Cable Output)
├── Signal Processing (Butterworth Filter)
│ ├── Bandpass Filtering
│ └── State Preservation (lfilter_zi)
└── Audio Output (Speakers/Headphones)
APP/
├── gui.py # Interface gráfica principal
├── main.py # Versão linha de comando
├── test.py # Testes (se disponível)
├── requirements.txt # Dependências Python
└── README.md # Este arquivo
A interface GUI possui três painéis principais:
-
Painel Esquerdo - Dispositivos:
- Seleção de entrada/saída
- Configuração de frequências
- Atualização de dispositivos
-
Painel Central - Controles:
- Indicador de status
- Botão Passthrough
- Botão Filtro
-
Painel Direito - Log:
- Registro de todas as atividades
- Timestamps
- Botão de limpar log
- Verifique se o VB-Cable está instalado corretamente
- Reinicie o aplicativo
- Clique em "Atualizar Dispositivos"
- Reduza o
chunk_size(mínimo: 256) - Feche outros aplicativos de áudio
- Verifique drivers de áudio
- Ajuste as frequências de corte
- Reduza a ordem do filtro
- Verifique níveis de volume
Contribuições são bem-vindas! Sinta-se à vontade para:
- Reportar bugs
- Sugerir novas funcionalidades
- Enviar pull requests
- Equipe do HackaUSP 2025
