打破游戏沉浸感的实时3D音效技术原理与实践(上)
没有3D效果
带3D效果。
要认识到听和说的位置,首先要知道我们为什么能感知声音的位置。
我们能够感知声音的方向,主要是因为同一声源到达左右耳时的音量、延迟等信息是不一样的。具体来说,我们通过双耳信号之间的时间差、声级差、音色差来判断水平和横向定位;耳廓就像一个梳状滤波器,帮助判断复音中的纵向定位;根据声级、频谱状况和个人经验判断深度位置。
那么,如何模拟两耳间声音传播的差异,从而模拟声音的位置呢?
这里,需要头部相关数据传递函数HRTF(Head-related transfer function)来完成这项工作。可以认为是声音信号从声源传播到耳朵的综合滤波过程,包括空气滤波、周围环境的混响以及人体(躯干、头部、耳廓等)的散射和反射。).
目前业界已经有比较成熟的开源HRTF库。工程师是这样做的:准备一个内置麦克风的人头模型,在一定的空间位置播放原声源,将麦克风录下的声音与原声源进行对比,得到一个HRTF。由于人耳对声源空间方位的敏感度有限,不需要测量所有空间位置对应的HRTF,所以现有的HRTF库通常在空间球面上选取约1000个采样点进行测量。
要真正完成实时语音3D虚拟化功能,不仅仅是简单调用HRTF函数,还需要将游戏世界映射到真实环境中,进行高频操作。其实现的过程大致如下:假设游戏中有n个玩家连接小麦。由于游戏的实时性要求很高,为了保证游戏的流畅度,每个玩家终端在20 ms的单位时间内接受至少(N-1)个包含语音信息和相对地理位置的数据包,根据语音信息和相对地理位置信息选择合适的HRTF算法,游戏地图中的声源传播路径是否被遮挡等信息, 融合玩家在游戏中所处的环境声音(如流水的声音、空房间的回声),最终在玩家的设备终端上渲染出逼真的实时3D音效。
整个计算过程非常密集,一些低端设备承受不了。如何让玩家的终端设备消耗最少的资源,保证游戏的流畅度,一直是业界努力的方向。另外,有些HRTF库在音源信号中的某些频率上衰减严重,尤其是对于频率成分丰富的乐器。这不仅影响了音源定位的准确性,也导致最终输出的环境音中乐器的声音比较沉闷。
为此,基于腾讯天籁音频解决方案,腾讯云游戏多媒体引擎GME推出了实时语音的3D虚拟化功能。通过优化终端渲染算法,计算效率提升近50%,单源空间实时渲染复杂度约0.5ms,让大多数低端设备轻松完成实时3D声音渲染。此外,为了解决渲染过程中信号分量衰减的问题,GME通过自主研发的音频信号均衡补偿方法改善3D渲染效果,使乐器等游戏中的环境声音更加通透。不仅如此,作为一站式语音解决方案,GME还提供了噪声抑制、回声消除、增益控制、信源编码、语音均衡等功能。,一次接入可以满足多种需求。
目前,GME已经支持多平台接入,如windows、android、iOS、macOS、xbox、PS4、Switch和VR设备。特别值得一提的是,腾讯云GME是国内首个支持VR设备上实时语音3D虚拟化的云服务解决方案。
以前游戏行业重视抢流量,抢用户,质量是次要的。但随着游戏存量市场的到来,成熟玩家很难被质量差的游戏所吸引。在音效等细节上注入匠心,制作精良的游戏作品才能有长久的生命力。要做好这一点,别人只需要把投票权交给玩家就可以了。