Corrección de errores: distorsión de audio y bloqueo de PipeWire (Linux)

Este documento describe cómo resolver la distorsión de audio (“klirren”), artefactos de voz robótica y bloqueos de audio del sistema que pueden ocurrir al usar SL5-aura-service junto con otras aplicaciones multimedia como OBS, AnyDesk o transmisiones TTS de alta frecuencia.

Síntomas

  • La salida/entrada de voz suena distorsionada, metálica o “chirriante”.

  • El audio del sistema se bloquea con el mensaje: “Estableciendo conexión con PulseAudio” o “Espere”.

  • Pérdida total de audio después de una carga alta de CPU o uso simultáneo de transmisión.

  • Los registros del diario muestran: spa.alsa: hw:X: snd_pcm_status error: No existe tal dispositivo.

Causa principal

En Manjaro y otras distribuciones modernas de Linux, PipeWire gestiona el audio. La distorsión suele deberse a:

  1. Insuficiencia del búfer: Conflicto entre transmisiones simultáneas (p. ej., AnyDesk captura audio mientras se ejecuta TTS/OBS).

  2. Frecuencia de muestreo no coincidente: Cambio frecuente entre 44,1 kHz y 48 kHz.

  3. Problemas de sincronización USB: La alta carga del bus hace que los auriculares USB (como Plantronics/Poly) se desconecten temporalmente.


Soluciones

1. Recuperación Inmediata (El Reinicio “Nuclear”)

Si la pila de audio está congelada o distorsionada, elimine todos los procesos relacionados con el audio. Se reiniciarán automáticamente inmediatamente.

# Force kill PipeWire and its PulseAudio compatibility layer
killall -9 pulseaudio pipewire pipewire-pulse

2. Configuración de prevención y estabilidad

Deshabilitar el audio de AnyDesk

AnyDesk a menudo intenta conectarse al dispositivo de audio, lo que provoca conflictos de hardware.

  • Acción: Abra la configuración de AnyDesk -> Audio -> Deshabilite “Transmitir audio” y “Reproducir audio”.

Arreglar la frecuencia de muestreo de PipeWire (recomendado)

Fuerce a PipeWire a permanecer en 48 kHz para evitar artefactos de remuestreo durante la reproducción TTS.

  1. Cree el directorio de configuración: mkdir -p ~/.config/pipewire

  2. Copie la configuración predeterminada: cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/

  3. Edite ~/.config/pipewire/pipewire.conf y configure:

    default.clock.rate = 48000
    
  4. Reiniciar los servicios:

    systemctl --user restart pipewire pipewire-pulse wireplumber
    

3. Recuperación de posproducción (FFmpeg)

Si grabó una sesión y el audio está distorsionado (“clirring”), use la siguiente cadena de filtros ffmpeg para reparar el archivo.

Comando de reparación recomendado

Este comando aplica un eliminador de recortes, reducción de ruido y un filtro de paso bajo para eliminar artefactos digitales de alta frecuencia sin volver a codificar el vídeo.

probado y muy bueno:

ffmpeg -i input_video.mp4 
    -af "adeclip, afftdn, lowpass=f=5000, volume=1.5" \
    -c:v copy reparatur_output.mp4  

puede ser mejor con (no probado):

ffmpeg -i input_video.mp4 \
  -af "adeclip, afftdn, lowpass=f=3500, volume=1.8" \
  -c:v copy repaired_audio_output.mp4

no probado:

ffmpeg -i input_video.mp4 -af "arnndn=m=cb.rnnn, lowpass=f=5000" -c:v copy ki_reparatur.mp4

Desglose del filtro:

  • adeclip: Redondea los picos de recorte digital.

  • afftdn: Reduce el ruido digital basado en FFT.

  • lowpass=f=3500: Corta las frecuencias superiores a 3,5 kHz donde se produce la mayor parte del “clic” (hace que la voz sea más clara/cálida).

  • volume=1.8: Compensa la pérdida de volumen durante el filtrado.

  • -c:v copy: Mantiene la calidad del vídeo original (extremadamente rápido).


Herramientas de depuración

Para monitorear el estado del audio en tiempo real durante el desarrollo:

  • pw-top: Muestra errores en tiempo real (columna ERR) y el estado del buffer.

  • journalctl --user -u pipewire: comprueba si hay desconexiones de hardware.