如何使用Sox检测音频文件中的声音?

时间:2015-10-13 14:02:21

标签: linux audio volume sox

我有几个小的音频文件,我需要找出哪些包含大声的声音。使用Sox的stat命令,我得到的最大和最小振幅总是在-1和+1之间。

例如,这个声音响亮:

$ sox out6.wav -n stat
Samples read:            220500
Length (seconds):      5.000000
Scaled by:         2147483647.0
Maximum amplitude:     0.999939
Minimum amplitude:    -1.000000
Midline amplitude:    -0.000031
Mean    norm:          0.079951
Mean    amplitude:    -0.002050
RMS     amplitude:     0.244085
Maximum delta:         0.386505
Minimum delta:         0.000000
Mean    delta:         0.007803
RMS     delta:         0.024331
Rough   frequency:          699
Volume adjustment:        1.000

比这个:

$ sox out5.wav -n stat
Samples read:            220500
Length (seconds):      5.000000
Scaled by:         2147483647.0
Maximum amplitude:     0.999939
Minimum amplitude:    -1.000000
Midline amplitude:    -0.000031
Mean    norm:          0.035560
Mean    amplitude:    -0.000054
RMS     amplitude:     0.121909
Maximum delta:         0.085022
Minimum delta:         0.000000
Mean    delta:         0.002599
RMS     delta:         0.006305
Rough   frequency:          363
Volume adjustment:        1.000

但它们都具有相同的最小和最大振幅。

我如何确定哪一个最响亮?

1 个答案:

答案 0 :(得分:1)

峰值幅度不是衡量整体响度的好方法。所有这些测量都是找到一段时间内发生的最大或最小样本。这个问题是一个全零和一个剪辑的剪辑将测量与剪辑相同的最大峰值幅度。 RMS(均方根)幅度是响度的更好衡量标准。它的计算方法是将所有样本的平方相加,然后取结果的sqrt。 https://en.wikipedia.org/wiki/Amplitude