【Oculus】虚拟现实音频处理VR Audio - Part 2【翻译】

3、3D音频的空间化

前文讨论了人类如何在三维空间中定位声音,如今,咱们反过来问,“咱们能不能应用这些信息来让人们认为一个声音来自于空间中的某个具体位置?”it

答案是YES,否者的话,这篇文章就会很是短了。VR音频很重要的一部分就是空间化:可以让一个声音听起来来自于三维空间中的某个位置。空间化给用户提供了在一个真实3D环境中的感受,能够加深immersion。io

和定位同样,空间化有两个重要部分:方向和距离。基础

3.1 使用HRTF的方向空间化

咱们知道不一样方向的声音,在身体和耳朵里的传播是不一样的。这些不一样的影响构成了HRTF的基础,让咱们来定位声音。音频

3.1.1 获得HRTFs

最准确的方法是把话筒放在人的耳朵里,而后放在一个无回声的环境里,而后在房间里从各个重要的方向播放声音,并记录下话筒里的声音,经过比较原始声音和话筒的声音就能够计算出HRTF。(Oculus的音频工程师在一次演讲中提到,这种方法不是很实际,对于被测者是个torture)软件

两只耳朵都必须这样作,而且须要从足够多的离散的方向来创建模型。可是这些模型只是针对一我的的,在现实世界中,咱们没法获得每一个人的模型,所以生成一个通用的模型通常也够用了。List

大多数基于HRTF的空间化方法,都采用一些现有的公开数据集,例以下面的4个。model

  • IRCAM Listen Database反射

  • MIT KEMAR方法

  • CIPIC HRTF Databaseim

  • ARI(Acoustics Research Institute) HRTF Database

大多数HRTF的数据集中不包含各个方向的HRTF,例如头下区域。有些HRTF数据集只进行了稀疏采样,只有5-15个自由度。

大多数方法,或者采用最近的HRTF,或者进行插值。在这个领域有许多研究,可是对于基于桌面的VR应用,一般状况下都可以找到足够的数据集。

3.1.2 应用HRTFs

给定一个HRTF数据集,若是咱们知道了声源的方向,咱们就能够选择一个HRTF而后把它应用到该声源。这常经过一个时域的卷积或者一个FFT/IFFT对实现。

若是你不知道这些事什么东西,也不用着急,这些细节只有当你本身实现HRTF时才用获得。本文讨论的是应用的细节,例如怎么存储一个HRTF,当处理音频时如何调用。咱们关注的是高层的逻辑,“将音频进行进行过滤让它听起来来自于一个特定的方向”。

因为HRTFs会考虑到听众的头部位置,所以在进行空间化时,须要带耳机。若是没有耳机,就须要应用两个HRTF方程组:模拟的一个,和真实经过身体获得的。

3.1.3 头部追踪

听众本能的会经过头部的运动来分辨空间中的声音,若是一个听众的脑壳向一侧转了45度,那咱们就必须在他们的听觉环境中体现出来,不然音响就会出错。

VR头部设备(例如Rift)能够追踪听者的头部方向(或者位置),根据这些信息,咱们就能够投射声音信息到听者的空间中。这些的前提是听者戴了耳机,不然难度系数对于大多数VR应用是没法接受的。

3.2 距离模型

HRTFs帮助咱们定位声音的方向,可是不能对距离进行建模。人们经过一些因素来估计声音的距离,这些能够经过在软件中调整参数和精度来进行模拟。

  • 声音大小:最重要的因素,很容易经过听者和声源的距离进行建模。

  • 起始时间延迟(Initial Time Delay):很难建模,须要根据空间进行计算反射,可是依然有几个数据集尝试对此进行建模,从简单的 shoebox models到完整的空间几何建模。

  • 声音和混音(Reverberation)的比例:经过对反射和回声进行建模能够获得,有一些现有模型,但计算复杂度很高。

  • 运动视差:根据声源的速度能够直接计算获得。

  • 高频衰变:经过低通滤波器能够很容易的建模,实际应用中,该因素并非很重要。

相关文章
相关标签/搜索