在 Python 中生成空间白噪声音频

Posted

技术标签:

【中文标题】在 Python 中生成空间白噪声音频【英文标题】:Generating Spatial White Noise audio in Python 【发布时间】:2021-12-30 13:50:38 【问题描述】:

我正在针对刺激训练一个神经网络,该神经网络正在开发以模拟感觉神经科学任务,以将性能与人类结果进行比较。

该任务基于音频的空间定位。我需要在 python 中生成白噪声音频以呈现给神经网络,但还需要改变音频,就好像它呈现在不同的位置一样。我了解如何生成音频,但我不确定如何从不同的理论位置生成白噪声。

【问题讨论】:

像 OpenAL 这样的几个库提供了以 3D 呈现音频的能力,您可以在其中控制/或源音频的 3D 位置和/或听者的 3D 位置……不知道它是否还提供这对或 ~~ears~~ 提出了一个问题:声速是否足够慢,并且声学神经科学处理音频的速度是否足够快,不仅可以保证在 3D 空间中的定位,还可以保证音频波在空间中传播时的音频相位值...意思是生物学是否利用给定源音频的耳朵来消除相位差? 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:

您可以在右侧或左侧轨道上添加延迟,以考虑到达两个耳朵的时间。如果我没记错的话,根据角度的不同,它最多大约需要 25 或 30 毫秒。声源到两耳的传播距离差异可以用基本三角法计算,然后乘以空气中的声速得到延迟长度。 (IDK 什么 python 用于控制延迟或可以指定什么粒度延迟长度。)

我们对空间位置的大多数其他线索都很难量化。当然,我们最常使用音量。特别是对于较高音调的内容(波长小于头部宽度),头部本身可能会阻塞并导致一些音量差异,具体取决于角度。

但是很多都来自环境提示的混响,来自作为距离函数的音色滚降(混音中有很多高音的安静声音听起来真的就在您的耳朵旁边),来自移动头部从不同角度捕捉声音,并来自耳廓的过滤效果。因为每个人的耳朵形状都不一样,我不知道有没有一种通用的缩略图算法可以让声音被感知为来自给定角度的特定高度。我认为在某种程度上,我们都是通过用自己特定的耳朵体验声音,同时目视观察声源来学习的。

【讨论】:

以上是关于在 Python 中生成空间白噪声音频的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中生成噪声颜色

无法正确反转 AVAsset 音频。唯一的结果是白噪声

Matlab中randrandnrandirands的区别以及用randn生成白噪声的示例

Matlab中randrandnrandirands的区别以及用randn生成白噪声的示例

实时音频编解码之五 噪声整形

加性高斯白噪声及维纳滤波的基本原理与Python实现