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

录音时麦克风难免会有噪声,就是那种嘶嘶声,用音频编辑软件(比如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

rec -n trim 0 1 noiseprof noise.profile

  • -n表示输出到null file(即不关心输出)
  • trim 0 1表示纯噪声(没有人声)所在的时间段为0到1秒区间
  • noiseprof是要使用的SoX子命令名称,表示提取噪声特征,即profile
  • noise.profile是输出的profile文件名

 

然后用SoX处理你的录音文件,后面跟上profile

sox v_0.wav v_0_clean.wav noisered noise.profile 0.3

  • v_0.wav是输入文件
  • v_0_clean.wav是输出文件(无噪声)
  • noisered是要使用的另一个SoX子命令,表示对输入文件进行噪声去除
  • noise.profile是上一条命令生成的profile文件
  • 0.3是降噪等级(取值范围0-1,默认0.5)

 

最后给大家看下效果,上面是含噪声的波形,下面是去掉噪声的波形

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值