雷锋网按:本文作者赵龙溪,以太高级投资经理,本科毕业于北京大学化学系,哥大高分子博士肄业。关注VR/AR、文化娱乐、企业服务等方向。
近日,Google公布了一个新的开源项目——Omnitone,该项目旨在实现普通耳机在VR环境中的3D全景音效,让用户获得更好的VR沉浸感。
▲ VR科技正逐渐影响我们的生活
CJ结束了,我们再来聊一聊VR。
VR其实可以理解成一个人类追求更自然的人机交互的过程。从一开始你只能通过编程语言和计算机Say Hi的286时代(想象下那个时代的机器人女友),到Win95第一代可视化的操作窗口,再到如今我们戴着头盔进入一个360度的虚拟空间。人与机器的交互变得越来越自然,Virtual World也越来越像我们的Reality,这就是虚拟现实(Virtual Reality)。
图像方面,我们带着头盔,上下左右扭头,就能看到不同的图像,这就是自然的人机交互;声音方面也一样,如果我们转身,背后的脚步声就会突然增大或减小,侧耳倾听,隔壁的吱呀声就能听得更清楚,那么,以假乱真的虚拟世界或许就离我们不远了。
所以今天,「让我们来聊聊VR里的声音」。
简单给大家介绍一下,首先3D声场有若干解决方案。你可能觉得,其实很简单嘛,做一个虚拟空间,该空间里任何一个音源,用三维坐标标定,然后将VR头盔里的坐标数据导入,再输出相应的声音,你就得到了一个完美的“自然”声场。
这想法没错,前提是:你的音源数足够少、运算速度足够快。已知的杜比影院方案State of the Art可以支持高达128个声源……不过手机、PC上的环境可没法跟电影院比。(而且用这种方案去逼近现实世界的声场是不可能的,你可以理解其原因是当逼近现实世界时,其声场数目会急剧上升,就像因为晶体里面的原子个数是10^23级别,要表征晶体结构,最好用波函数一样)现在最通用的两种方式分别为Quad Binaural和Ambisonic。
Quad Binaural就是将一个声场用0、90、180、270度四个方向去表征。
举例来说,如果是录制一个点的声场,我分别将该点在这四个方向(其实就是前后左右)的声音录进去,每个方向两个声道,最终八个声道。然后当我朝向任意一个非正好前后左右的方向时,比如45度,就用四个方向的声音做一个加权,得出新的方向的声音。
这个方法的问题在于,除了平面转头以外,你上下抬头或者低头时,声音是没有变化的。不过好处很简单,解码非常容易,比如我们很自然就会想到45度时候的声音就是一半的0度+一半的90(虽然实际情况会更复杂一些),而且相比现在常用的一阶的Ambisonic(FOA,First Order Ambisonic),其对水平方向的敏感度更高。
Ambisonic则是从球谐函数出发,(n+1)^2个声道来表征声场。
举例来说,Google发布的Omnitone是一阶的Ambisonic,于是有(1+1)^2=4个声道,如下图所示,w,x,y,z。w可以理解成背景声,x,y,z分别是来自直角坐标系三个方向的声音。
▲ 越高阶的ambisonic函数解码越复杂
目前国外最顶级的做到五阶Ambisonic函数,36个Components(因为高阶球谐函数很难再用物理方向去想,所以用Components代替方向),用32个话筒采集,再通过组合和矩阵变换来逼近这36个Components。Ambisonic的好处在于,有了z(垂直)这个方向,抬头或者低头在VR世界里声音是会有区别的,而且随着你提供的运算能力的提升,用更高阶的Ambisonic函数可以获得更好的效果。缺点则在于解码会更复杂一些。
举个简单的例子,如果你的上下前后左右六个方向分别对应歌手ABCDEF六个人,Quad Binaural的四个双声道里分别会灌入CDEF的声音,每一个又同时包含部分的A,B的声音,声场录制完毕后,如果你把头从正好向前,稍稍扭转三十度,那么你会从最初C占主导,到听到更多的D的声音,但是不论你如果抬头或者低头,A,B的声音都不会改变。
而一阶的Ambisonic则是在X混入C,E的声音,Y混入D,F的声音,Z混入A,B的声音,W则为背景音,随着你头的转动,会改变XYZ的权重。不过聪明的你一定也发现,一阶Ambisonic(FOA)因为将相反方向传来的声音(C,D)同时混入了X,所以当你转头的时候,在某些角度下的听者对方向的灵敏度是不如Quad Binaural的。
考虑到:(1)歌手在你胯下唱歌的情况比较少见,所以只有A的情况下,垂直方向FOA还是远优于Quad Binaural, (2)如果你关心国外已经制作出来的演唱会视频,会发现制作方为了提高声音的方位感,往往把音源放在正前或者正左右方向,这是FOA和QB都难以解决的问题。不过随着计算能力的提升,高阶Ambisonic(HOA)则可以克服这一问题,这也是Google为什么选择FOA的原因吧。
再说回Google,其在官方博客上公布了其网页VR音频系统Omnitone项目的技术细节。Omnitone项目是一个跨浏览器支持的开源空间音频渲染器,主要支持目前业界较为常用的FOA(First Order Ambisonic)格式,这也是YouTube App推荐的主要全景声格式。
▲ Omnitone音频处理过程图解
从上图可以看出,Google的Omnitone系统的Ambisonic解码器采用了业界主流的算法流程,根据传感器给出的方位信息, 采用一个旋转算子来实现声场旋转,进而用双声道输出。
鉴于Google Chrome浏览器在市场中的统治地位,我们可以很乐观的预测基于FOA的全景声会在网页端迎来比较高速的普及率,这对于VR内容创作者乃至于整个VR行业都是一个极大的利好。
当然,兴奋之余我们依然可以看到很多问题。
其中一个问题就是FOA声音文件从哪来。VR内容制作者用的比较多的如知名VR公司Jaunt使用的Tetra Mic(CoreSound 生产)价格不菲,仅仅麦克风本身就要1000美元,另外还要额外购买线和专用的录音设备。而其他品牌的声场话筒(如SoundField系列)则更加昂贵。这些录音设备携带起来非常不方便,并需要专业培训才能使用,制约了FOA音频的大规模普及。
▲ Tetra Mic
目前也有公司在尝试解决这一现状。时代拓灵推出了一款民用级便携式的声场录制机,原生支持FOA(4路WXYZ)音频格式。输出的音频可以直接被支持FOA的软件或设备播放。相信随着制作门槛的降低,基于FOA的内容会迎来一个爆发式的增长。
▲ 时代拓灵便携式声场录制机
除此之外,因为不论Quad Binaural还是Ambisonic,都只是一种思路,如何连接现实音源的文件与最终播放出的3D音效,如何用这种思路制作3D声场,我们仍需要一个VR音频的制作引擎和播放系统。(就好比Google发布了Hadoop的论文,大数据公司再用这种理论去指导他们开发自己的算法一样。)这一点,拓灵也走在了前列,其发布的声场引擎,不仅跨平台地支持多重Video、游戏引擎,更从底层上支持Quad Binaural和Ambisonic间的转换,可以说是连接VR内容制作者与3D声场的捷径。
本文由作者授权雷锋网发布,未经允许,禁止转载!