Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 wav 文件,我所需要的只是在播放非常强烈的声音时执行一个功能。
例如:如果正在播放强度级别 10(假设)的声音,所以我希望当声音强度级别从 10 增加时,应该触发一个事件来告诉我有一个非凡的声音。
我试图用谷歌搜索它,发现如果我们读取 wav 文件的字节并读取数据块(第 44 个字节之后),我们会得到用户数据(声音数据)。但是当我分析这些数据时,我感到很困惑,因为也有相同的数据没有声音。
我希望我的问题很清楚。所以请我需要你的建议/想法和参考。
您不需要 FFT - 您只需计算短期 RMS 功率,当它超过预定阈值时,您就会听到“响亮”的声音。
power_RMS = sqrt(sum(x^2) / N)
其中 x 是样本值,N 是您要计算 RMS 功率的样本数 - 我建议使用 10 ms 的周期,以 44.1 kHz 的采样率给出 N = 441 个样本。