首页 正文

在音视频后处理阶段,涉及的空间音频处理技术是什么?

#技术实践

伴随元宇宙、AIGC 等技术的发展,在音视频社交场景加入沉浸式的音频效果也成为一种趋势,其中空间音频成为关键因素。在后处理阶段,对音频数据加上空间音频的效果,会给用户端带来沉浸式的极致音频体验。

 

空间音频本质上是仿真或者还原一个真实声源产生声音,传播以及最终被人耳接收的过程。利用空间音频的技术可以虚拟的产生声源,让听者能切身感受到声源的方位。它的呈现方式主要是两种,第一种是基于扬声器阵列,适合在比如电影院等的大型听音场地。第二种是用耳机重放,这也是比较普遍的一种重放方式也更加灵活。在大多数情况下,我们所指的空间音频是基于耳机重放的空间音频。

 

要体验沉浸感空间音频需要仿真以下几个元素。

 

 

1. 直达声

直达声是指在没有什么障碍物的情况下,声源不经过房间反射直接到达人耳的部分。当然声波不会直接达到我们的耳膜,它会经过身体躯干,头部的反射,衍射,以及外耳的多次反射到达耳道入口。 这个过程相当于一个声波被人体过滤了。我们把这么一个传递函数,也就声源到达耳朵的传递方程称为头部相关函数,Head-Related Transfer Function (HRTF), HRTF是一个和方向有关的函数,也就是每个方向的HRTF都不一样。当声源和人耳的距离很小的时候,也就是所谓的近场,HRTF的频谱不仅和方向有关也和距离有关。

如果要渲染在某个一个方位的声源,我们只需要调用这个方向的HRTF对单声道声源进行滤波。 用耳机播放,就能感受到这个声源的方位了。这也是基于耳机的空间音频的一个基本渲染操作。 在语聊元宇宙社交等场景下,通常情况下考虑的是远场的情况,这样一来不用考虑近场时HRTF频谱的改变。当然,如果要体验近场的效果,比如在耳边喃喃细语的场景,这就需要考虑用近场HRTF。HRTF还有另一个特点就是因人而异,因为每个人的头型,耳朵都不一样,个体间的HRTF差异性很大。一般情况下,非个性化的HRTF(比如用某个人工头测量得到的HRTF)会在渲染空间音频中被普遍使用。如果要体验更精确的虚拟声源方位感,需要获取个性化HRTF。 目前,从技术角度完全可以通过比如拍摄,扫描耳朵/人头的方法结合AI来快速获取个性化HRTF。

 

 

2. 声源指向特性

当我们没有考虑声源指向性问题的时候,它会被当作一个点声源,也就是这个声源无论是朝向你还是背对你,在某个频率上的能量大小都是一样的。显然这和大多数声源的指向性特征不同,比如乐器发声,人开口说话等。假设有一个人在说话,显然嘴巴正对的这个方向听到的声音清晰,如果听的人是在侧面或者背面,从嘴巴出来的声音将被部分遮蔽,会被人体进行一个类似滤波的操作。因此在渲染的时候需要仿真声源的朝向。

 

 

3. 声源距离

一个最直观的感受是声源的声压或者听到的音量会随距离变大而变小。一般情况下(远场情况下),声源的声压和距离呈一个简单反比的一个关系。如果距离翻倍的话,比如从1m到2m,声压就会下降6个dB。除了这个声压衰减,还有一个因素是空气吸收。因为在一般场景下,声音是在空气里传播,在传播的过程中它的能量会有一部分被空气吸收。空气衰减的强度和距离频率都有关系。距离越远的声音的能量被空气吸收得越多,并且这个空气吸收主要体现在高频处。空气衰减的仿真可以由和距离相关的滤波器去拟合。

 

 

4. 障碍物

当声源和听者中间被某些物体挡住了,那么声波的传输就会部分被这个障碍物阻挡。当然也要考虑障碍物的大小厚度等等。当我们只考虑直达声部分的时候,可以用几个简单的滤波器来实现不同障碍物对于声波的影响。如果考虑声音反射存在的情况下,那需要对每个反射波进行单独处理操作来仿真障碍物的影响。

 

 

5. 反射和混响

上述所有因素只是围绕着直达声做了音效的渲染。也就是声源没有和房间进行过交互。我们在生活中只有少数的场景只可以听到直达声(但也不是百分之一百的无反射存在),比如在消声室,广阔的雪地,等。在平常生活中,反射和混响无处不在。假设听者和声源在一个房间里,并且声源产生了一个脉冲,随着时序,我们首先听到的是一个直达声部分。然后随着时间的推移,会听到一些稀疏的反射,就是和墙壁,屋顶,地板,或者障碍物碰撞后的反射。我们把这些稀疏的,不密集的反射称为早期反射,其中每一个反射,比如从某个墙面过来的声音都可以当作一个被延迟和能量削弱的"直达声"。也就是每一个反射都可以进行上述1-4的操作。每一个稀疏的反射,都可以做和直达声一模一样的处理,它也有距离,方位,等等信息。随着时间的推移这些反射越来越密集,能量随指数下降,在某一个时刻反射的方位感是听不出来了,相当于一个扩散场。我们把这些反射称为后期混响。这两块一般情况下会单独处理,其中早期反射比较麻烦。因为每个反射都得考虑它的方向,朝向,距离 等等。当墙面不光滑的时候,会发生散射情况。 此外早期反射是要动态生成的,因为当声源和听者位置发生变化时候,反射的状态包括方向朝向距离都会发生变化。后期混响虽然重要,但是它对于在房间位置的依赖性不高,并且一般被认为是扩散场,需要考虑的因素比早期反射要少。

 

 

6. 耳机频谱均衡

最终音频是要靠耳机播放出来的。因此,除了音频的渲染部分,还需要考虑播放单元。

耳机发声单元到耳朵有一个声学传递函数,它也会对音频再次进行一个滤波。因此我们需要对这个耳机传递方程进行抵消或者优化,然这个均衡是有一个预期目标的,最直接的就是把这个耳机均衡拉平,也就是对耳机传递方程求逆来做均衡。在此基础上,还可以设计一些新的目标使得空间音频的听感更加好。要做这些之前的前提是可以得到这个耳机传递函数。但是这个比较困难了,因为它不仅因人而异而且随着佩戴姿势不同也会不同。一般情况下会使用人工头重复测量取均值来作为耳机传递方程。耳机方面除了耳机的传递方程之外,还有比如耳机声学阻抗也是一个重要的因素。

 

 

除了上述的元素,还有一些"特殊有趣"的音效,例如多普勒效应,可以根据场景来选择是否需要仿真。当声源和听者的相对速度发声变化时候,听者听到的音调会发生变化。比如一辆鸣着笛的车从一位听者的左前边开到了右前边(移动声源),当靠近听者的时候音调是相对高的,远离人的时候音调会变低。也就是音调有一个从高到低的变化。多普勒效应的仿真可以通过计算瞬时速度来移动相对应频率,或者用时变延迟线。它主要的应用场合是针对某些游戏场景,比如赛车等。如果是语聊或者普通社交的场景,不需要考虑这个因素。

 

在实时通信场景下,空间音频的渲染操作需要低算力和低延迟,同时数据库的体积不能太大。我们需要考虑音效和计算复杂度,在尽可能不减少听感的情况下来减少算力。比如空气衰减的滤波器阶数的选择,是否需要高阶来精确仿真空气吸收,等等。再比如HRTF是要线上插值还是线下离线插值。线上插值的好处是包体积小,但是实时插值的算力增加需要考虑。线下插值的优势是线上不用再插值,但是相对应的包体积就会变大。声网提供的空间音频结合了物理和感知模型,在不影响听感的情况下用最小的算力去仿真各个模块。除此之外,对于空间音频的核心内容, HRTF,声网针对人耳不敏感的方位做了方向性增强的处理,使得它空间音频方位感得到增强。

 

空间音频在游戏,音乐,影视制作,会议,语聊,唱歌,在线教学,元宇宙等场景有重要应用。它可以为用户提供更加沉浸式和逼真的体验,增强音频的表现力和感染力。空间音频在各个应用中还有不少需要探索的地方,比如AR场景如何快速获取真实房间的反射和混响来进行渲染,如何快速准确得获得个性化参数,包括个性化HRTF以及个性化耳机传递方程。