c# - 如何比较两个捕获的声音,看看哪一个声音更大?

标签 c# algorithm audio windows-phone-7

给定从麦克风捕获的两个字节数据数组,我如何确定哪一个有更多的噪声尖峰?我假设有一种算法可以应用于数据,但我不知道从哪里开始。

说实话,我需要能够确定婴儿何时哭泣以及房间内的环境噪音。

如果有帮助,我正在使用 Microsoft.Xna.Framework.Audio.Microphone 类来捕获声音。

最佳答案

您可以通过应用公式将每个样本(标准化为 1.0 到 -1.0 范围)转换为分贝等级

dB = 20 * log-base-10(样本值)

说实话,只要您不介意偶尔的误报,并且您的麦克风设置正确,您应该可以毫无问题地区分婴儿哭声和环境背景噪音,而无需经历麻烦进行 FFT。

我建议您查看噪声门的源代码,它几乎可以满足您的需求,并且具有可配置的攻击时间和阈值。

关于c# - 如何比较两个捕获的声音,看看哪一个声音更大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060676/

相关文章:

c# - 特定于文化的 DateTime 字符串在平台之间不一致

algorithm - 给定数组的每个子集的最大和最小元素的按位或之和

algorithm - 使用有限的堆栈操作进行排序

java - 如何将字母数字电话号码转换为数字

javascript - 多个音频,当前正在使用 javascript 播放时自动停止其他音频

c# - 在 mongodb 中,获取第一个和最后一个文档的最有效方法是什么

c# - 在 C# 中将包含命令行参数的字符串拆分为 string[]

iphone BPM 速度按钮

c# - 如何在 C# 中使用 & 运算符?代码的翻译是否正确?

audio - 通过UDP在wifi网络中流音频