用袜子剥夺沉默
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%
【讨论】:
以上是关于用袜子剥夺沉默的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ 2038 [2009国家集训队]小Z的袜子(hose)
BZOJ 2038: [2009国家集训队]小Z的袜子(hose) | 莫队
bzoj - 2038: [2009国家集训队]小Z的袜子(hose)