Audio 三维空间中声源位置的计算

Audio 三维空间中声源位置的计算,audio,vector,3d,position,listener,Audio,Vector,3d,Position,Listener,我有一个3d向量表示听众的位置,还有一个3d向量表示声源。我也有一个3d向量来表示监听器的方向。我试图找到NED(北,东,下)的位置源相对于听者,所以我可以发挥正确的扬声器的声音。。。我做了很多研究,但似乎找不到必要的方程式。。。 有什么想法吗 谢谢 我认为你找不到你想要的东西。三维声场中声源的空间位置是一个非常复杂的问题,取决于许多因素(听众位置、扬声器位置、源材料)。最接近您所描述的可能是,但这需要监听设置也是双声道的,这不是很常见。如果你使用的是杜比数字,我认为他们不会给出公式,你需要授权

我有一个3d向量表示听众的位置,还有一个3d向量表示声源。我也有一个3d向量来表示监听器的方向。我试图找到NED(北,东,下)的位置源相对于听者,所以我可以发挥正确的扬声器的声音。。。我做了很多研究,但似乎找不到必要的方程式。。。 有什么想法吗


谢谢

我认为你找不到你想要的东西。三维声场中声源的空间位置是一个非常复杂的问题,取决于许多因素(听众位置、扬声器位置、源材料)。最接近您所描述的可能是,但这需要监听设置也是双声道的,这不是很常见。如果你使用的是杜比数字,我认为他们不会给出公式,你需要授权算法,或者将源材料与拥有授权和内置算法的设备混合。然而,像杜比这样的系统并不是真正为在3D声场中精确定位声源而设计的——它们实际上只是一种空间效果,让听者感受到3D声场。

Ambisonics B格式编解码器的功能正是您所描述的。然而,尽管该编解码器的规范是开放的,但由于其不幸不受欢迎,发现它是相当具有挑战性的

好消息是,我已经写了一个名为“Ambisonix”的BSD开源项目,详细说明了实现高达3阶Ambisonic编码和解码所需的所有方程式。我还添加了一些功能,如距离编码和多普勒效应,这些功能不是原始规范的一部分


查看:

您需要从声音向量中减去侦听器向量,然后可以通过侦听器方向向量进行旋转。现在,您可以简单地检查新向量在轴上是正的还是负的。例如,向量[0,10,-2]可以读作[0,+,-],它的意思是[central,up,back]。要使用N-S W-E U-D方向,只需在减法后不旋转矢量即可