编者按: 千人有千耳,不同的人耳对于声音方位的适应已形成习惯,但在Meta RTC场景中如何让不同人也能畅想“身临其境”的感觉?3D在线互动场景空间音频的实时渲染又有哪些应用?LiveVideoStackCon 2022音视频技术大会上海站邀请到了声网音频策划负责人冯建元,为我们分享3D在线互动场景空间音频的实时渲染。
文/冯建元
整理/LiveVideoStack

大家下午好,我是来自声网的冯建元。
今天给大家主要分享一下声网在RTC 3D互动场景中是如何操作空间音频的渲染。让人在虚拟的场景里感受现实生活中一样声临其境的感觉。

我在声网的主要负责音频算法的开发,之前也做过语音的增强、音效,包括音频的编解码的工作,也发布过基于AI的声网Silver之类的编解码器等,也开过一些介绍音频的课程,包括《搞定音频技术》等等。

今天主要是围绕Meta RTC,探讨如何实现声临其境,需要哪些渲染的方法,以及不同的声音的渲染方法,是如何通过端云结合的形式去实现的,这会涉及算力成本、怎样部署更合理、低延迟等等。最后介绍空间音频在行业有些怎样的应用,是如何重塑我们在游戏以及社交行业的不同音频体验。


去年苹果发布了AirPods能够支持空间音频之后,空间音频迎来了一个小的高潮。主要的技术是基于杜比Atmos、DTS这些音频的制作,来实现沉浸式的多声道的播放。
例如通过苹果的AirPods听空间音频的音乐,通过使用者头部的转动,会发现声音可以根据手机和头部的位置实时移动。这些音源多数是需要预先制作的,在RTC的场景中每一个人就是内容的生产者,可以理解为使用者在虚拟的世界里去演一部电影,需要去听周围的任何一个音源的声音,会有空间的感知,相对的在远端进行互动的人也同样需要在这种环境里体验沉浸式的音频。
其实在Real time social或者gaming的场景里面,加入了位置信息,比如不同的朝向、距离等,就可以对声场中的人或者音源去进行渲染。这些大部分都是基于目标的渲染,就比如人们作为一个听音者,在下面听我说话,我在有些人的左边,也在有些人的右边,但声音会通过现场的扬声器播放,会有一个整体的声场。这些都可以通过针对这些无论是说话人还是扬声器的音源来进行渲染。

从具体的技术角度而言,如何去实现空间音频的渲染呢?首先我们把它分成直达声和混响。直达声就是发出的声波直接传到人的耳朵,人的两只耳朵是听音辨位的一个前提条件,因为两只耳朵会有双耳差的音源的线索,这样就能通过线索来进行声音的位置判断。
主要的方向感的线索,比如双耳的时间差。就像在人的右边说话,右耳是最先接收到声波信号的,左耳就会有跨越头部的延迟。通过延迟就能大致了解声音大概是在哪边。
第二个就是双耳的音量也会有所差异,因为声音在传播的时候会有所衰减,左右耳就会有不同的音量,这个比较显而易见。
第三个就在于每个人的耳朵耳廓是有朝向的,有些人的耳廓比较朝前,像招风耳,那他对前面声音的感知会比较明显。耳廓信息,它会对人感知到的声音,不同的频段的响度,都会有频谱的效应。所以每个人耳朵听到的音色都是不一样的,根据耳廓和声音传播的方向都会有所区别。
通过这三个不同的感知线索,就可以很清楚地分别空间中声音的位置了。为了去渲染音源,找到它所在的位置,同时会利用这三个线索。
例如简单的方法,左右耳去做一个panning,即做一个音量的区别,就能简单的实现2D空间的180度只能区分左右的panning算法。这种算法的优点就是只需要控制耳机左右耳的音量,几乎没有什么算力。同时缺点也很明显,它只控制了左右耳的音量,如果音源是在正中间,无论是上下还是前后,都是无法去通过音量来调整的,所以就只能实现180度的2D。如果再精确一点,那就会用到头部模型,例如 Spherical head——把头模拟成纺锤形状。能将左右耳、音级差进行模拟,获得180度的3D的渲染。但这依然很难模拟人耳完整的信息,前后的信息更多是靠耳朵的形状做音色上的区分。