红联Linux门户
Linux帮助

用命令行去除音频文件的背景噪声

发布时间:2016-07-30 15:16:14来源:linux网站作者:六个九十度
录音时麦克风难免会有噪声,就是那种嘶嘶声,用音频编辑软件(比如audacity)可以很方便的去除,但如果要处理大量这种文件,用命令行工具是更有效率的办法。
 
SoX号称音频处理的瑞士军刀,光manpage就40多页,功能不可谓不强大,通用命令格式:
 
sox [global-options] [format-options] infile1
[[format-options] infile2] ... [format-options] outfile
[effect [effect-options]] ...
play [global-options] [format-options] infile1
[[format-options] infile2] ... [format-options]
[effect [effect-options]] ...
rec [global-options] [format-options] outfile
[effect [effect-options]] ...
 
概括成一句话,就是将多个输入文件非线性叠加后,再加入一系列指定特效,最后生成一个输出文件:
Input(s) → Combiner → Effects → Output(s)
 
但它的降噪功能并不强,只能去除背景噪声,而不能去除动态噪声(次声噪声之类的),不过对于录音来说,也够用了。
 
降噪分两步:
 
首先给SoX提供你的背景噪声,好让它分析出噪声的profile:
用命令行去除音频文件的背景噪声
棕色表示输出到null file(即不关心输出),蓝色是纯噪声(没有人声)所在的时间段(本例是0秒到1秒区间),红色是SoX子命令名称,黄色是输出profile文件名
 
然后用SoX处理你的录音文件,后面跟上profile:
用命令行去除音频文件的背景噪声
绿色是输入文件,棕色是输出文件(无噪声),红色是另一个SoX子命令,黄色是刚才生成的profile文件,蓝色是降噪等级(取值范围0-1,默认0.5)
 
最后给大家看下效果,上面是含噪声的波形,下面是去掉噪声的波形:
用命令行去除音频文件的背景噪声
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22861.html