给定从麦克风捕获的两个字节数据数组,我如何确定哪一个有更多的噪声尖峰?我假设有一种算法可以应用于数据,但我不知道从哪里开始。
说实话,我需要能够确定婴儿何时哭泣以及房间内的环境噪音。
如果有帮助,我正在使用 Microsoft.Xna.Framework.Audio.Microphone 类来捕获声音。
最佳答案
您可以通过应用公式将每个样本(标准化为 1.0 到 -1.0 范围)转换为分贝等级
dB = 20 * log-base-10(样本值)
说实话,只要您不介意偶尔的误报,并且您的麦克风设置正确,您应该可以毫无问题地区分婴儿哭声和环境背景噪音,而无需经历麻烦进行 FFT。
我建议您查看噪声门的源代码,它几乎可以满足您的需求,并且具有可配置的攻击时间和阈值。
关于c# - 如何比较两个捕获的声音,看看哪一个声音更大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060676/