【问题标题】:How to adjust the Head-related transfer function (HRTF) in OpenAL or Core Audio?如何在 OpenAL 或 Core Audio 中调整 Head-related transfer function (HRTF)?
【发布时间】:2012-02-17 06:23:22
【问题描述】:

OpenAL 利用 HRTF 算法来模拟立体声耳机的环绕声。但是,有一个important dependency between HRTF and the shape of the users head and ears

简而言之,这意味着:如果您的头部/耳朵与其已实现的标准 HRTF 功能相差太大,则环绕声效果会逐渐减弱为无聊的立体声。

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

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

【问题讨论】:

    标签: iphone ios audio core-audio openal


    【解决方案1】:

    现在看来可以了。我偶然发现了this comment,它描述了如何使用 hrtf_tables 来近似你自己的耳朵。 Google 也在向我展示名为 hrtf-paths 的结果,但我不确定那是什么。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 那么这是否意味着只有一部分用户在使用耳机时能够从 OpenAL 中听到真正的环绕声?
        • 好吧,除非你真的是一个 KEMAR 塑料假人头,否则使用它的 HRTF 的空间成像不会是完美的。然而,使用稍微不准确的 HRTF 是对根本不使用 HRTF 的巨大改进。不要忘记还涉及很多其他因素——耳机的频率响应有多平坦(不是很好,甚至不是很好),音频源材料的性质等。所以实际上没有人会听到“真实”的声音使用耳机环绕 OpenAL,但这不一定是重点 - 将其视为环绕“效果”而不是精确的空间定位工具。
        猜你喜欢
        • 2014-12-21
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        相关资源
        最近更新 更多