Vous pouvez générer un profil de bruit pour SoX avec :
sox sample-input.wav --null noiseprof ~/noise.profile
Vous pouvez ensuite utiliser le profil pour filtrer votre enregistrement :
sox recording.wav filtered.wav noisered ~/noise.profile
Cela fonctionne parce que le bruit statique que votre microphone capte dépend généralement de votre installation (câblage) et est donc toujours à peu près le même dans le même environnement. Notez que SoX est considérablement plus mauvais que Audacity à supprimer le bruit. :(
De plus, vous pouvez utiliser les filtres audio de ffmpeg comme passe-haut / passe-bas pour diminuer les fréquences en dessous/au-dessus d'un certain seuil, ou utiliser compandant filtre pour compresser la gamme dynamique de l'enregistrement et/ou faire un porte-bruit .
Une fois que vous avez le profil du bruit, le pipeline complet du processus pourrait être :
ffmpeg -f alsa -i hw:0,0 -af 'highpass=300, lowpass=4000' -f wav - | sox -f wav -f wav - noisered ~/noise.profile | aplay
Notez que vous devez extraire le profil de l'enregistrement filtré par ffmpeg, si vous utilisez ces filtres.