用袜子去除沉默

Rog*_*rat 5 sox

我大约需要20,000个.wav文件(所有语音线路),从开始到结束都要消除静音。

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

我还想在实际的声音/声音开始之前留下一点“静默”,以便对每个文件进行修剪,但原始静默的.X秒仍然保留。

我尝试了各种命令,但无法正确设置阈值。我已经看到很多关于此操作的互联网评论,因此我必须使用错误的命令。

我也想不出如何离开.X秒的沉默。

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

谢谢。

use*_*754 8

修剪开头和结尾的沉默

一种解决方案是(基于此 Digital Cardboard 博客文章)像这样调用 sox:

sox in.wav out.wav silence 1 0.1 0.1% reverse silence 1 0.1 0.1% reverse


(Here is a version with placehoders X and Y instead of specific values to
explain below what is happening exactly:
sox in.wav out.wav silence 1 X Y reverse silence 1 X Y reverse
)
Run Code Online (Sandbox Code Playgroud)

X是声音被 sox 解释为非静音的最短持续时间(以秒为单位)。例如,在 0.15 秒长的音频开始处可能会发出响亮的咔嗒声。如果我们设置0.2X,那么这种响亮而短暂的点击将被解释为静音并将被删除。如果X我们设置了for 0.1,那么点击将被 sox 解释为非静音部分的开始,这意味着点击之前的所有内容都将被删除,但点击本身不会被删除。
另请注意,如果持续时间是整数,则应使用尾随零,因此1.0应使用尾随零来1避免意外行为。

Y定义响度阈值。它下面的一切都会被解释为沉默,无论多长或多短。因此,开始时一些不太响亮的长隆隆声可能会低于阈值,因此被解释为静音,因此不会被删除。如果其持续时间足够长,则任何声音足以高于阈值的声音都将被解释为非静音的开始(请参阅X)。
请注意, digitalcardboard规定应使用最小值来0.1%代替0

1只是指定仅在开始时删除静音。为了在最后消除静音,我们使用相同的方法,但首先反转音频。为什么这种方法对于修剪末端是正确的应该在下面变得显而易见,我在下面进一步分析其他答案的解决方案的作用。

一开始就留下一定的沉默

简单的答案是:sox 不支持这一点。

但我们可以尝试通过修剪静音然后在开始时添加固定量的静音来解决此问题。这可以通过以下方式完成:

sox in.wav out.wav silence 1 0.1 0.1% reverse silence 1 0.1 0.1% reverse pad X 0
Run Code Online (Sandbox Code Playgroud)

X是我们要预先添加的静音的持续时间(以秒为单位)。

0在此位置意味着末尾不应添加填充。

当然,这与保留原始静音的一段持续时间(如果存在)不同,因为如果输入在开始时也没有任何静音,那么这也将允许结果文件在开始时没有任何静音。尽管如此,修剪+填充是我能想到的最好的办法。

其他答案

到目前为止,这里的所有答案都无法解决该问题。OP想要消除开头和结尾的沉默。对于感兴趣的人来说,以下是以前的解决方案所做的事情:

  • Kid_Learning_C:生成多个输出文件,其中每个文件包含输入的非静默部分之一。因此,假设输入文件由 Silence->Non-Silence-A->Silence->Non-Silence-B->Silence 组成。使用此答案中的参数,我们将得到包含 Non-Silence-A 的 output001.wav。output002.wav 包含 Non-Silence-B。由于某种原因,输出003.wav 非常短。
  • DSBLR:末端未修剪。
  • Anas Naguib:也消除了中间的沉默。因此,对于由 Silence->Non-Silence-A->Silence->Non-Silence-B->Silence 组成的输入文件,我们将得到 Non-Silence-A->Non-Silence-B,这意味着所有静音都被删除。不只是在开始和结束时。

哦,所有这些答案都没有提供解决方案来按照OP的要求在开始时保持一些沉默。


Kid*_*g_C 7

我发现这是使用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