C#自适应声音消除

6
在我的工作中,整个工程部门刚刚被调整到了一个新的座位安排中,这使得声音传播比我们想象的要多一些。我想尝试以一种酷炫的工程方式来解决这个问题。是否可以使用以下方法创建自适应声音消除:
  1. 麦克风输入
  2. 频率计算
  3. 扬声器播放
如果可以的话,我需要查看哪些库?我假设需要使用FFT(快速傅里叶变换)麦克风输入和频率播放。有人能指向具有这些功能的好库吗?(如果这是可能的话)

让每个人都配一副耳机可能会更容易。 :) - Shmiddty
是的,我们在开玩笑地谈论着提交一堆购买降噪耳机的申请单,但这永远不会被批准 through。 :-) - kenetik
1
虽然不是很广为人知,但随机白噪声在解决人类分心问题方面几乎可以与噪音消除相媲美。 - RBarryYoung
这是一个DSP应用程序,以获得所需的亚毫秒响应。它们不是用C#编程的,因为无法承受GC的开销。 - Hans Passant
1
只是为了回应@RBarryYoung的话 - 白噪声会混淆所有其他声音,因为它填补了频率,使得其他声音“在噪音中迷失”,无法被大脑识别为有意义的声音。而且这很容易尝试 - 只需在网上找到一个来源并通过扬声器播放即可。 - Bobson
1个回答

8
这将有两个主要原因,使得这种做法难以实现或不可行/不可能:
  1. 速度:声音抵消必须非常快地捕获、计算并生成抵消效果,可能不能超过1毫秒的延迟。使用托管代码将会很困难。

  2. 相位定位:任何声音/噪音的正确抵消相位完全取决于麦克风、扬声器和你的耳朵之间的精确距离关系。前两者保持不变,但你的耳朵往往会随着头部动作而移动,而你的代码无法知道这一点。(这也是降噪耳机效果出色而其他设备效果不佳的一个重要原因)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接