如何利用ffmpeg和sox进行降噪
你好!本篇博客的降噪思路:通过截取音频中的已知噪音部分,根据该噪音样本对整个音频进行降噪。截取噪音使用ffmpeg,降噪使用sox。
安装工具
两个工具的下载地址如下:
- ffmpeg ,下载地址:ffmpeg.org;
- sox ,下载地址:http://sox.sourceforge.net/;
开始降噪
- 将音频流和视频流拆分为2个不同的文件:
视频: ffmpeg -i input.mp4 -vcodec copy -an tmpvid.mp4
音频: ffmpeg -i input.mp4 -acodec pcm_s16le -ar 128k -vn tmpaud.wav - 从上一步的音频结果文件中生成一个噪声样本:
ffmpeg -i input.mp4 -acodec pcm_s16le -ar 128k -vn -ss 00:00:00.0 -t 00:00:00.5 noiseaud.wav
-ss: 从开始的时间偏移. (h: m: s.ms).
-t duration: 表示要剪切的音频段的持续时间(h: m: s.ms),以便下一步用来作为噪声文件。
选择一段没有语音、只有噪音的音频(例如,讲话者静音时的那一秒钟)。 - 使用sox生成噪音profile:
sox noiseaud.wav -n noiseprof noise.prof - 清除音频流中的噪声样本: