Você pode gerar um perfil de ruído para o SoX com:
sox sample-input.wav --null noiseprof ~/noise.profile
Você pode usar o perfil para filtrar sua gravação:
sox recording.wav filtered.wav noisered ~/noise.profile
Isso funciona porque o ruído estático que o microfone capta normalmente depende da sua configuração (fiação) e, portanto, é sempre o mesmo no mesmo ambiente. Observe que o SoX é consideravelmente pior do que o Audacity na remoção de ruído. : (
Além disso, você pode usar os filtros de áudio do ffmpeg, como highpass / lowpass para diminuir as frequências abaixo / acima de determinado limite ou use compand filtre para comprimir o alcance dinâmico da gravação e / ou faça um noise gate .
Depois de ter o perfil de ruído, o pipeline de processo completo pode ser:
ffmpeg -f alsa -i hw:0,0 -af 'highpass=300, lowpass=4000' -f wav - | sox -f wav -f wav - noisered ~/noise.profile | aplay
Note que você deve extrair o perfil da gravação filtrada por ffmpeg, se você usar esses filtros.