使用sox

时间:2017-04-14 16:18:25

标签: audio sox

我有一堆音频文件,需要根据静音并使用SOX拆分每个文件。但是,我意识到一些文件背景非常嘈杂,有些文件没有因此我不能使用一组参数迭代所有进行拆分的文件。我试图弄清楚如何通过嘈杂的背景将它们分开。以下是我从sox input1.flac -n statsox input2.flac -n stat

获得的内容
Samples read:          18207744
Length (seconds):    568.992000
Scaled by:         2147483647.0
Maximum amplitude:     0.999969
Minimum amplitude:    -1.000000
Midline amplitude:    -0.000015
Mean    norm:          0.031888
Mean    amplitude:    -0.000361
RMS     amplitude:     0.053763
Maximum delta:         0.858917
Minimum delta:         0.000000
Mean    delta:         0.018609
RMS     delta:         0.039249
Rough   frequency:         1859
Volume adjustment:        1.000

Samples read:         198976896
Length (seconds):   6218.028000
Scaled by:         2147483647.0
Maximum amplitude:     0.999969
Minimum amplitude:    -1.000000
Midline amplitude:    -0.000015
Mean    norm:          0.156168
Mean    amplitude:    -0.000010
RMS     amplitude:     0.211787
Maximum delta:         1.999969
Minimum delta:         0.000000
Mean    delta:         0.091605
RMS     delta:         0.123462
Rough   frequency:         1484
Volume adjustment:        1.000

前者不包含嘈杂的背景,后者则不包含。我怀疑我可以使用Sample Mean Max delta因为差距很大。 任何人都可以向我解释这些统计数据的含义,或者至少告诉我自己可以在哪里获得它(我试着在官方文档中查找,但他们没有解释)。非常感谢。

3 个答案:

答案 0 :(得分:3)

我无法解释这些统计数据的含义。我曾多次试图弄明白自己,但似乎没有记录在任何地方。就个人而言,我会使用reactivePoll()函数,其输出更容易理解。

作为区分或多或少嘈杂音频的措施,我尝试使用最高和最低声级之间的差异。最安静的部分永远不会比单独的背景噪声更安静,所以如果差别很小,音频要么嘈杂,要么一直响亮,就像compressed pop song一样。您可以获取最大和最小RMS值之间的差异,或峰值和最小RMS之间的差异。 RMS窗口长度应该保持相当短,如果音频有淡入或淡出部分,那些应该被修剪掉,尽管我没有在代码中包含它。

reactiveFileReader()

答案 1 :(得分:0)

可以在安装目录的sox.pdf中找到该文档。

例如,如果您安装Windows 32位版本的SoX 14.4.2,则可以在C:\Program Files (x86)\sox-14-4-2\sox.pdf上找到PDF,而stat的文档在第35-36页上。

我还找到了一个网页版本here

答案 2 :(得分:0)

我将使用“平均规范”值作为决策者。它对我有用,尤其是当您在行中弹出或点击时。但是,如果该行是干净的,则最好使用“最大振幅”(我注意到您的“最大振幅”是相同的,因此请不要在您的情况下使用它)。