给定从麦克风捕获的两个字节的数据阵列,我如何确定哪个具有更多的噪声尖峰?我假设有一种算法可以应用于数据,但是我不知道从哪里开始。
深入研究它,我需要能够确定婴儿何时哭泣以及室内的环境噪声。
如果有帮助,我正在使用Microsoft.Xna.Framework.Audio.Microphone类捕获声音。
您可以通过应用公式将每个样本(归一化为1.0到-1.0的范围)转换为分贝等级
dB = 20 * log-base-10(样本值)
老实说,只要您不介意偶尔的误报,并且您的麦克风设置为“正常”,那么您就可以毫不费力地分辨出婴儿哭声与环境背景噪声之间的区别,而无需经历FFT。
我建议您看一下噪声门的源代码,该噪声门具有可配置的攻击时间和阈值,几乎可以满足您的需求。