2015-10-13 106 views
0

我有几个小音频文件,我需要找出哪些包含响亮的声音。 Sox的stat命令获得最大和最小振幅,总是在-1和+1左右。如何使用Sox检测音频文件中的低音?

例如,该声音响亮:

$ 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 

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

如何确定哪一个最响?

+0

我肯定会去RMS幅度 – jojek

回答

1

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