Как настроить передаточную функцию, связанную с головкой (HRTF) в OpenAL или Core Audio?

OpenAL использует алгоритмы HRTF для подделки объемного звука со стереонаушниками. Тем не менее, есть важная зависимость между HRTF и формой головы и ушей пользователей.

упрощенный, это означает: если ваша голова / уши слишком сильно отличаются от стандартной функции HRTF, которую они реализовали, эффект объемного звука исчезает в сторону скучного стерео.

Я еще не нашел способ, чтобы настроить различные факторы к алгоритму HRTF, как диаметр головки, размер pinna / external уха, расстояние ухо-к-уха, длина носа и другие важные свойства влияя на HRTF.

есть ли какой-либо известный способ установки этих параметров для лучшего объемного звучания?

3 ответов


Я не верю, что вы можете изменить HRTF в OpenAL. Вы, конечно, не могли бы сделать это, введя параметрические значения, такие как размер носа или Пинны. Единственный способ узнать, что такое ЗГТФ, - это вставить в уши крошечные, очень точные микрофоны, войти в безэховую камеру и измерить частотную характеристику под каждым углом вокруг головы. Очевидно, что это отнимает много времени, дорого и непрактично. Было бы фантастично иметь возможность разработать свой HRTF от измерения вашей головы, но к сожалению, акустика не настолько детерминирована, и Ваше ухо очень чувствительно к неточностям, как вы указали. Я думаю, что OpenAL HRTF основан на некоторых измерениях головы манекена Кемара (эти возможно?).

Итак, я думаю, что короткий ответ заключается в том, что вы не можете изменить HRTF для OpenAL. Поскольку HRTF-такая сложная функция, к которой ваше ухо настолько чувствительно, нет точного способа аппроксимировать ее параметрическими значениями.


возможно, вы сможете сделать "игру конфигурации" из оптимизации HRTF. Я искал ответ на вопрос, позволяют ли какие-либо виртуальные гарнитуры объемного звучания или звуковые карты настроить их в соответствии с вашим личным HRTF.

идея: вы меняете различные переменные HRTF и воспроизводите звук. Пользователь должен закрыть глаза и переместить мышь в направлении, в котором он думал, что звук пришел. Ты измеряешь, насколько он был прав. Вы могли бы использовать что-то вроде тонкий сплайн пластины или статистическая подгонка кривой для построения результатов точности и выборки различных областей многомерного пространства HRTF для оптимизации решения. Это был бы своего рода метод" грубой силы", чтобы найти решение, которое не является необходимым точным, но так же хорошо, как пользователь имеет терпение оптимизировать свой личный HRTF.

по словам readme в openalsoft sourcecode он использует фильтр свертки 32-sample, и вы можете создать с помощью пользовательских образцов HRTF.


похоже, теперь это возможно. Я наткнулся на комментарий который описывает, как использовать hrtf_tables для аппроксимации ваших собственных ушей. Google также показывает мне результаты для чего-то, что называется hrtf-путями, но я не уверен, что это такое.