用袜子剥夺沉默

Posted

技术标签:

【中文标题】用袜子剥夺沉默【英文标题】:Stripping silence with sox 【发布时间】:2016-12-21 23:39:33 【问题描述】:

我有大约 20,000 个 .wav 文件(所有语音线路),我需要从开头和结尾去除静音。

“沉默”不是纯粹的沉默,所以我需要设置一个阈值。

我还想在实际声音/声音开始之前留下一点“沉默”,这样每个文件都会被修剪,但原始沉默的 .X 秒仍然存在。

我尝试了各种命令,但无法正确设置阈值。我看到很多互联网cmets都在这样做,所以我一定是使用错误的命令。

我也不知道怎么才能保持 .X 秒的沉默。

我认为 sox 可以做到这一点,或者至少大部分可以做到?

【问题讨论】:

【参考方案1】:

我发现这个对使用 SoX Silence 非常有用的指南。虽然官方 SoX Silence 手册页非常混乱且难以理解,但本指南通过示例提供了详尽的解释: https://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/comment-page-2/

你可以试试:

sox input.wav output.wav silence 1 X 0.1% 1 X 0.1% : newfile : restart

X 是一个数字,例如 0.75

【讨论】:

你知道如何在 python 中做吗?有没有图书馆可以做同样的事情? @DeepanRaj - 使用 Python 分叉 sox?我怀疑你会找到一个支持 sox 的所有音频格式和功能的 Python 库......除非它只是一个包装 sox 的库...... 我找到了可以为我工作的 pydub 库。谢谢 你是对的,手册页在这里没有帮助,文章很棒!谢谢【参考方案2】:

修剪音频的静音开头

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

来源:https://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/

【讨论】:

【参考方案3】:

你可以对 Sox 使用这个命令

sox inputfile.wav tmpoutput.wav silence 1 0.75 0.1% -1 0.75 0.1%

【讨论】:

以上是关于用袜子剥夺沉默的主要内容,如果未能解决你的问题,请参考以下文章

bzoj2038小z的袜子

BZOJ 2038 [2009国家集训队]小Z的袜子(hose)

BZOJ 2038: [2009国家集训队]小Z的袜子(hose) | 莫队

bzoj - 2038: [2009国家集训队]小Z的袜子(hose)

bzoj2038: [2009国家集训队]小Z的袜子(hose)

袜子生产工厂,想做袜子礼盒该怎么做?