SoX中的Silence的用法

网友投稿 1276 2022-09-05

SoX中的Silence的用法

SoX中的Silence的用法

最近用了SoX库的Silence,发现官方的教程读得我是云里雾里,所以特地写一个教程学习一下。

我生成了一个60ms白噪声的音频文件,随后把其中几个部分做成静音,生成的音频如下:

例子1.切除音频中开始的静音

sox in.wav out1.wav silence 1 0.1 1%

above-period 参数放在silence参数之后,如果你想使用这个过滤器,首先要设置1。这个例子大致翻译为:调整静音(任何小于1%音量的声音),直到我们遇到持续时间超过0.1秒的声音。上面命令的输出是:

我们发现该命令已经把最开始的静音剪掉了。

例子2. 忽略噪声爆发

sox in.wav out2.wav silence 1 0.3 1%

通过把duration的参数设置为0.3,我们告诉SoX在音频的最开始的时候忽略噪声爆发。

例子3. 未检测到声音时停止录制

sox in.wav out3.wav silence 1 0.3 1% 1 0.3 1%

现在介绍below-period 的各个参数,跟above-period参数一样,设置为1表示使用该过滤器,上面的命令可以翻译为:

直到我们检测至少0.3秒的噪声,我们才裁剪静音。

这个操作返回了前4秒的噪音。

例子4. 裁剪所有的静音

sox in.wav out4.wav silence 1 0.1 1% -1 0.1 1%

通过把below-period参数设置为-1,我们可以通过允许过滤器在检测到指定持续时间的噪声后,重新启动来修剪剪辑中间的静音实例。

但是在这个例子中,不可能检测到过去的静音。

例子5. 忽略短暂的静音

sox in.wav out5.wav silence 1 0.1 1% -1 0.5 1%

和例子2相同,我们可以告诉SoX来忽略小片段的静音(在这个例子里为0.5)。

例子5. 基于静音来分割音频

sox in.wav out.wav silence 1 0.5 1% 1 5.0 1% : newfile : restart

使用SoX’s newfile pseudo-effect 允许我们基于静音的片段来切割一个音频。在这个例子中,当前检测到超过5秒的静音以后,SoX会切割,切割的结果会得到out001.wav,out002,.....

其中包括在移动到下一个效果链之前开始写入新输出文件的newfile和将移动回第一个效果链的restart,

必须将Pseudo-effects指定为链中的第一个效果和链中的唯一效果(它们必须在指定之前和之后具有:)

参考文献

[1]. The SoX of Silence. ​​silence with sox. ​​- Linux man page. ​​https://linux.die-/man/1/rec​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:memcached与redis实现的对比(Redis相比memcached有哪些优势?)
下一篇:mac 安装webrtcvad出现了gcc的问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~