1

我有一个 wav 文件,我所需要的只是在播放非常强烈的声音时执行一个功能。

例如:如果正在播放强度级别 10(假设)的声音,所以我希望当声音强度级别从 10 增加时,应该触发一个事件来告诉我有一个非凡的声音。

我试图用谷歌搜索它,发现如果我们读取 wav 文件的字节并读取数据块(第 44 个字节之后),我们会得到用户数据(声音数据)。但是当我分析这些数据时,我感到很困惑,因为也有相同的数据没有声音。

我希望我的问题很清楚。所以请我需要你的建议/想法和参考。

4

1 回答 1

3

您不需要 FFT - 您只需计算短期 RMS 功率,当它超过预定阈值时,您就会听到“响亮”的声音。

power_RMS = sqrt(sum(x^2) / N)

其中 x 是样本值,N 是您要计算 RMS 功率的样本数 - 我建议使用 10 ms 的周期,以 44.1 kHz 的采样率给出 N = 441 个样本。

于 2012-05-05T11:09:40.533 回答