小程序页面之间进行传值的操作办法
1276
2022-09-05
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~