如何调整 OpenAL 或 Core Audio 中的头部相关传输函数 (HRTF)?

发布于 2024-12-28 19:26:14 字数 338 浏览 1 评论 0原文

OpenAL 利用 HRTF 算法通过立体声耳机伪造环绕声。然而,HRTF 与用户头部和耳朵的形状之间存在重要的依赖关系

简化,这意味着:如果您的头/耳朵与他们实现的标准 HRTF 功能差异太大,则环绕声效果会逐渐减弱为无聊的立体声。

我还没有找到一种方法来调整影响 HRTF 算法的各种因素,例如头部直径、耳廓/外耳尺寸、耳距、鼻子长度以及影响 HRTF 的其他重要属性。

是否有任何已知的方法可以设置这些参数以获得最佳环绕声体验?

OpenAL makes use of HRTF algorithms to fake surround sound with stereo headphones. However, there is an important dependency between HRTF and the shape of the users head and ears.

Simplified, this means: If your head / ears differ too much from the standard HRTF function they have implemented, the surround sound effect fades towards boring stereo.

I haven't yet found a way to adjust the various factors contributing to the HRTF algorithm, such as head diameter, pinna / external ear size, ear-to-ear distance, nose length and other important properties influencing the HRTF.

Is there any known way of setting these parameters for best surround sound experience?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

魂归处 2025-01-04 19:26:14

我不相信你可以改变 OpenAL 中的 HRTF。您当然不能通过输入参数值(例如鼻子或耳廓大小)来做到这一点。找出 HRTF 的唯一方法是将一些非常微小、非常精确的麦克风放入您的耳朵中,进入消声室并在您头部周围的每个角度进行频率响应测量。显然,这是耗时、昂贵且不切实际的。如果能够通过测量你的头部来计算出你的 HRTF,那就太棒了,但不幸的是,声学并不是那么确定,而且正如你所指出的,你的耳朵对不准确性非常敏感。我认为 OpenAL HRTF 基于一些 KEMAR 假人头部测量(这些也许? )。

因此,我认为简短的答案是您无法更改 OpenAL 的 HRTF。由于 HRTF 是一个非常复杂的函数,您的耳朵对此非常敏感,因此没有准确的方法可以用参数值来近似它。

I don't believe you can alter the HRTF in OpenAL. You certainly couldn't do it by putting in parametric values such as nose or pinna size. The only way to find out your HRTF is to put some very tiny, very accurate microphones in your ears, go into an anechoic chamber and take frequency response measurements at every angle around your head. Obviously this is time consuming, expensive and impractical. It would be fantastic to be able to work out your HRTF from measuring your head, but unfortunately acoustics isn't that deterministic and your ear is very sensitive to inaccuracies as you pointed out. I think the OpenAL HRTF is based on some KEMAR dummy head measurements (these perhaps?).

So, I think the short answer is that you can't alter the HRTF for OpenAL. Because HRTF is such a complex function that your ear is so sensitive to, there's no accurate way to approximate it with parametric values.

桃扇骨 2025-01-04 19:26:14

您也许可以通过优化 HRTF 来制作“配置游戏”。我一直在寻找这个问题的答案:是否有任何虚拟环绕耳机或声卡允许您调整它们以适合您的个人 HRTF。

想法:改变不同的 HRTF 变量并播放声音。用户必须闭上眼睛并将鼠标移动到他认为声音来源的方向。你衡量一下他有多正确。
您可以使用薄板样条或统计曲线拟合之类的工具来绘制精度结果并对多维 HRTF 空间的不同区域进行采样以优化解决方案。这将是一种“蛮力”方法来找到不一定准确的解决方案,但只要用户有耐心优化他的个人 HRTF。

根据 OpenALSoft 源代码中的 自述文件,它使用32 样本卷积滤波器,您可以使用自定义 HRTF 样本创建。

You might be able to make a "configuration game" out of optimizing the HRTF. I've been looking for an answer to the question if any of the virtual surround headsets or soundcards allow you adjust them to fit your personal HRTF.

Idea: You vary the different HRTF variables and play a sound. The user has to close his eyes and move the mouse into the direction he thought the sound came from. You measure how right he was.
You could use something like a thin plate spline or statistical curve fitting to plot the accuracy results and sample different regions of the multidimensional HRTF space to optimize the solution. This would be a kind of "brute force" method to find a solution that is not necessary accurate, but as good as the user has patience to optimize his personal HRTF.

According to a readme in the OpenALSoft sourcecode it uses a 32-sample convolution filter and you can create using custom HRTF samples.

捶死心动 2025-01-04 19:26:14

现在看来这是可能的。我偶然发现此评论描述了如何使用hrtf_tables以获得您自己耳朵的近似值。谷歌也向我展示了名为 hrtf-paths 的结果,但我不确定那是什么。

It looks like it is now possible. I stumbled upon this comment which describes how to use hrtf_tables for approximations of your own ears. Google is showing me results for something called hrtf-paths as well but I'm not sure what that is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文