Correção de bug: distorção de áudio e travamento do PipeWire (Linux)¶
Este documento descreve como resolver distorções de áudio (“klirren”), artefatos de voz robótica e travamentos de áudio do sistema que podem ocorrer ao usar o SL5-aura-service junto com outros aplicativos de mídia como OBS, AnyDesk ou fluxos TTS de alta frequência.
Sintomas¶
A saída/entrada de voz soa distorcida, metálica ou “cliring”.
O áudio do sistema trava com a mensagem:
Estabelecendo conexão com PulseAudioouAguarde.Perda total de áudio após alta carga de CPU ou uso de stream simultâneo.
Os registros do diário mostram:
spa.alsa: hw:X: snd_pcm_status error: Esse dispositivo não existe.
Causa raiz¶
No Manjaro e em outras distribuições Linux modernas, o PipeWire gerencia o áudio. A distorção geralmente decorre de:
Buffer Underruns: Conflito entre streams simultâneos (por exemplo, AnyDesk capturando áudio enquanto o TTS/OBS está em execução).
Incompatibilidade de taxa de amostragem: Troca frequente entre 44,1kHz e 48kHz.
Problemas de temporização de USB: Alta carga de barramento fazendo com que fones de ouvido USB (como Plantronics/Poly) se desconectem temporariamente.
Soluções¶
1. Recuperação Imediata (A Reinicialização “Nuclear”)¶
Se a pilha de áudio estiver congelada ou distorcida, elimine todos os processos relacionados ao áudio. Eles serão reiniciados automaticamente imediatamente.
# Force kill PipeWire and its PulseAudio compatibility layer
killall -9 pulseaudio pipewire pipewire-pulse
2. Configurações de prevenção e estabilidade¶
Desativar áudio AnyDesk¶
AnyDesk frequentemente tenta se conectar ao dispositivo de áudio, causando conflitos de hardware.
Ação: Abra Configurações do AnyDesk -> Áudio -> Desative “Transmitir áudio” e “Reproduzir áudio”.
Corrigir taxa de amostragem do PipeWire (recomendado)¶
Force o PipeWire a permanecer em 48kHz para evitar artefatos de reamostragem durante a reprodução do TTS.
Crie o diretório de configuração:
mkdir -p ~/.config/pipewireCopie a configuração padrão:
cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/Edite
~/.config/pipewire/pipewire.confe defina:default.clock.rate = 48000
Reinicie os serviços:
systemctl --user restart pipewire pipewire-pulse wireplumber
3. Recuperação pós-produção (FFmpeg)¶
Se você gravou uma sessão e o áudio está distorcido (“cliring”), use a seguinte cadeia de filtros ffmpeg para reparar o arquivo.
Comando de reparo recomendado¶
Este comando aplica um descortador, redução de ruído e um filtro passa-baixa para remover artefatos digitais de alta frequência sem recodificar o vídeo.
testado e muito bom:
CODE_BLOCO_3
pode ser melhor com (não testado):
ffmpeg -i input_video.mp4
-af "adeclip, afftdn, lowpass=f=5000, volume=1.5" \
-c:v copy reparatur_output.mp4
não testado: CODE_BLOCO_5
Detalhamento do filtro:
adeclip: Arredonda os picos de recorte digital.afftdn: Reduz o ruído digital baseado em FFT.lowpass=f=3500: Corta frequências acima de 3,5kHz onde ocorre a maior parte do “cliring” (torna a voz mais clara/quente).volume=1.8: Compensa a perda de volume durante a filtragem.-c:v copy: Mantém a qualidade original do vídeo (extremamente rápido).
Ferramentas de depuração¶
Para monitorar a integridade do áudio em tempo real durante o desenvolvimento:
pw-top: Mostra erros em tempo real (coluna ERR) e status do buffer.journalctl --user -u pipewire: Verifica se há desconexões de hardware.