我有一堆音频文件,需要根据静音并使用SOX拆分每个文件。但是,我意识到一些文件背景非常嘈杂,有些文件没有因此我不能使用一组参数迭代所有进行拆分的文件。我试图弄清楚如何通过嘈杂的背景将它们分开。以下是我从sox input1.flac -n stat
和sox 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
因为差距很大。
任何人都可以向我解释这些统计数据的含义,或者至少告诉我自己可以在哪里获得它(我试着在官方文档中查找,但他们没有解释)。非常感谢。
答案 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)
我将使用“平均规范”值作为决策者。它对我有用,尤其是当您在行中弹出或点击时。但是,如果该行是干净的,则最好使用“最大振幅”(我注意到您的“最大振幅”是相同的,因此请不要在您的情况下使用它)。