音效渲染是音频或音乐播放器最为重要的后处理模块之一。LiveVideoStackCon 2022 北京站邀请到腾讯音乐银河音效开发负责人——闫震海,为大家介绍银河音效在QQ音乐播放器中的创新应用,包括空间环绕效果和音效制作工具等内容。
文/闫震海
编辑/LiveVideoStack
大家好!很高兴和大家一起分享交流关于QQ音乐银河音效的一些技术实践。
相信大家对音效处理都不陌生。它已经被广泛应用在各种音频信号、音乐信号的渲染场景中。本次分享重点是音乐重放场景,如何利用音效对最终听到的感觉进行补偿和修饰。
主要包括以下四方面:
1、音效在播放器中的应用:关于音效的简单介绍,以及在QQ音乐播放器中的落地应用;
2、空间环绕效果的设计:空间环绕效果一直是用户热捧的一种听音偏好。我将以空间环绕效果为例,分享设计思路;
3、音效制作工具的设计:除了官方设计好的有限数量的效果之外,我们还有一大批高阶用户。他们有很强烈的欲望来自己制作音效。因此,我们设计开放了一系列的音效制作工具供给用户使用;
4、银河音效的未来展望。
-01-
音效在播放器中的应用
“音效”在维基百科中有一个描述性的定义。我们可以从中拆分出两个关键词。一个是声音,也就是说,音效是一种声音。如下方左图,工作人员在为电影画面做拟音,在录音棚里模拟电影人物产生的各种声音。还有听书场景,当说到恐怖情节时,会配上恐怖音效烘托气氛。其实这类音效更准确的名称应该叫声音效果,强调的是声音属性。为了营造不同的听音环境,我们也会尝试把溪流声、海浪声、风声等音效片段混入到音乐中;另一个关键词是声音处理,也是银河音效更加关注的一个点。它是指利用均衡器、混响器、压缩器等音效处理手段,实现同一个音乐的不同重放效果。这类技术可以被统称为数字音效技术。
音效的源头可以追溯到模拟时代的音乐混音。在音乐的录制和混音阶段,音乐制作人追求的不仅仅是真实还原现场音乐,还十分在乎音乐所营造的情绪效果。就像拍照一样,人们会通过添加滤镜的方式,改变照片风格。音效处理也起着类似的作用。经典的音效处理手段主要是镶边、合唱、变调、相位器等。
以镶边为例,介绍一下音乐制作人在模拟时代是如何玩出音效花样的。镶边最早出现在披头士的音乐中。录音带在播放时都有一个圆盘叫flange。使用两台设备同时播放同一首歌。然后手动波动其中一个圆盘。这台设备的播放就会出现一种顺滑的延迟效果。再与另一台设备的原始信号叠加在一起,就形成了镶边音效。大家可以听一下处理前后的音频,感受两者区别。
处理前/处理后
在后续的发展中,音效也逐步由录音端向下游扩展,来到了播放端。比如在音乐播放器中,对解码后的PCM数据做处理。还有在音响或耳机等硬件终端设备上做音效处理。
QQ音乐集成的银河音效更加侧重于音乐重放场景。在这种场景中,音效的目的可分为两种。一种是为了补偿播放设备的缺陷。重放环境或者电声器件的先天不足,使得用户听到的声音信号并不是音乐人想要表达的效果。比如,扬声器的平坦度较差、立体声效果不明显、低频重放能力不足等等。
上方左图,(红线)不平整的扬声器频响会对音乐产生严重声染色。可以通过均衡处理获得(蓝线)更加平整的频响曲线,从而抑制声染色的问题。对于设备本身低频表现能力不足的情况,也可以利用心理声学中“消失的基频”这个物理现象,引入虚拟低音来增强人耳对低频的感知。
另一个目的则是更为常见的,即基于修饰目的的音效设计。不同用户的听感偏好不同。我们通过增加或增强某些成分,达到环绕感、重低音、人声等听感层面的效果增强。为了增强重放效果的差异性,常见的音效手段包括:扩展环绕、抬升低音、增强人声、制作人工混响等。
QQ音乐的很多官方音效也是基于这一目的设计的。此外还有一些增加音乐节奏感的增强效果设计,称为“超嗨DJ”。欢迎大家亲自体验处理前后的变化。
一个音频从文件到最终被用户听到会经过以下几个模块:首先是音乐文件通过网络下载到手机客户端。然后,QQ音乐播放器会对其进行解码得到PCM数据。最后再通过调用播放接口,将音频数据送到物理声卡进行播放。
QQ音乐音频处理模块的处理对象就是PCM数据,位置主要集中在播放器解码后。所以又叫做音频后处理。这里的后是相对文件存储来说的。具体的处理过程如左下图所示,PCM数据经过串行结构的信号处理模块,最终仍然输出PCM数据。中间的处理模块可根据业务需求,自由组合搭配,从而实现想要的效果。
目前在QQ音乐播放器中,已经落地的后处理技术主要有以下几种:
银河音效,以及由音效模块衍生出来的一些新特性,比如变速不变调、动态装饰播放页面的智能光效、听觉与视觉联动的音乐可视化。
还有一个比较有趣的声音事件检测模块。我们把它应用在了生日闪屏的吹蜡烛效果上。可以通过麦克风的声音录入,模拟蜡烛被吹灭的效果。
-02-
空间环绕效果的设计
2.1. 立体声环绕效果
大多数混音棚里出来的立体声,会遵循MS的假设。也就是说,由左右声道构成的立体声信号,可拆分成中置信号和环绕信号两部分。中置信号往往包含着人声、鼓等不做特殊摆位的成分,而环绕则包含着其他一些空间摆位的乐器。调整二者的比例关系,就可以得到不同的环绕效果。中置比重越大,感知到的声像是越窄的;相反的,环绕比重增大,感知到的声像是越宽的。其实这种中置和环绕的拆分,也算是一种比较粗糙的分离。还可以在此基础上,叠加不同的效果,从而实现一些扩展效果。
另外,还有一类比较棘手的音源,比如左右声道的信号完全一样。这种严格上已经不算是立体声信号。用耳机听,会发现声像几乎都集中在中间位置。那么套用MS假设的话,单通道信号就是中置信号。这时可以利用一些去相关的手段来制作环绕声信号,比如均衡、延迟、混响等。制作出来的环绕声信号,可以与原单通道信号叠加成为左声道信号,与原单通道信号相减成为右声道信号。经过上述处理后所形成的立体声信号,环绕效果会明显增强。
2.2. 多通道环绕效果
最理想的环绕效果是多通道的真实扬声器阵列的效果。在双声道立体声的基础上,增加正前方的中置信号,和左后方右后方的环绕信号,就可以构成5.1声道音乐。将环绕信号继续拆分成正左正右,左后、右后,便是我们常常提到的7.1声道音乐。这还只是水平方位的扬声器布局。在天花板上增加4个,可以营造声场的高度信息。基于这个思路,还可以不断增加空间中扬声器的数量。目前,世界上通道数最多的配置是日本NHK提出的22.2通道的扬声器阵列。大家较熟悉的杜比全景声主要则是在7.1.4的扬声器布局上设计实现的。
家庭影院固然效果最好,但现在更多的听音场景是耳机。那么在耳机场景,我们又该如何增强环绕效果呢?
2.3. 双耳环绕效果增强
这里需要引入HRTF头相关传递函数的概念。它描述的是空间中点声源到达双耳鼓膜处的响应系统。如左上图所示,同一声源,由于经过了不同的传输路径到达了左右耳,最后形成的声波也不同。人耳正是根据这些差异性判断声源方位。如果我们能找到声源在不同位置的HRTF函数,就可以模拟声源从不同方位传来的效果。理想情况下,戴上耳机听音乐,就像没有带耳机一样,可以将多通道扬声器阵列营造的环绕感塞到耳机里。
右下图是一种测量头相关传递函数的方法。事先制作一个环形扬声器的阵列。同时,在人耳的两侧分别贴上两个同步采集的麦克风。随着环形阵列的摆动,可以测得空间多个位置到达双耳的传递函数。除了这种专业的测量方法,还有在家里完成类似测量的案例。头部的不停摆动,来模拟声音从不同的角度到达双耳。经过以上过程,就可以得到几乎整个球面坐标点到达双耳的HRTF函数。
有了传递函数,将一段单通道信号经过双耳的传递函数处理后,就形成了立体声信号。这时用耳机试听,就可以感受到明显的方位感。利用这一原理,曲库里5.1通道的歌曲,也可以用耳机来试听。具体做法是,每个音箱作为一个独立的声源,有一个单独的布放角度。依次把几个音箱的信号,用双耳传递函数处理后,叠加输出,就形成了立体声信号。这便是设计5.1环绕音效的基本原理。
方位控制还可以有很多种应用,比如声音旋转。在不同的时刻把声音调制到不同的方位,可以让声音形成一种旋转的感觉。业内有专注睡眠的软件,利用这种旋转效果,来达到按摩头皮的作用。外网常看到用户制作的号称8D的声音效果,其实也是相似的原理。在QQ音乐中也有上万个旋转效果的歌单。为了节省用户对这类歌曲的制作成本,使得任意歌曲都能一键拥有类似效果,我们开发了3D音效。大家也可以在QQ音乐中直接试听体验。
上文介绍了HRTF函数的应用。大家可能会有疑问。HRTF函数是现场实测的。用这种针对某一个人的测量数据,给千千万的用户使用,效果会一致吗?答案是否定的。每位用户的耳型头型各不相同,听到的效果肯定也是千差万别的。针对这种差异性,我们能做点什么呢?是否可以实现一个真正的定制化的效果?
首先,差异点主要来自两个方面,一个是每个人应该拥有独一无二的HRTF函数。这影响着用户对声源方位角度的判断;另一个,每个人对声音频率的感知能力不同,我们称之为耳纹。最明显的一个说明案例是,随着年龄的增加,对高频的感知能力是下降的。有的人用耳过度,衰减会更厉害。方位感知和频率感知是从不同维度描绘了听音效果的差异性。针对HRTF函数的差异,可以将用户的头形、耳形等生理特征与已有的HRTF数据库做关系映射,从而节省了HRTF实地测量的繁琐过程。当然,这只是一种近似,是介于公模和私模之间的一个权衡效果。另外是耳纹的定制,针对用户听力水平上的差异,可以通过纯音测试获得用户对各个频段的敏感程度。
定制的过程比较简单。如图中所示,用户只需要通过正脸和侧脸的拍照,我们就可以计算出所需要的头型和耳形等关键参数。同样,听力测试也是通过用户的选择得到用户的听觉阈值曲线,从而实现个性化的定制。
除了耳机听音场景,我们还考虑了外放场景如何增加环绕感。扬声器的夹角决定了用户所能感知到的声场宽度。理论上说利用HRTF函数将声源调制到更大的角度,就可以让用户感知到更宽的声场。但实际尝试后效果并不理想。因为HRTF本身应用在耳机场景。当应用在扬声器场景时,会因为扬声器的互相串扰而大打折扣。要克服这一问题,需要在角度调制和扬声器重放之间,添加一个串扰消除的预处理。这样便可以实现在外放场景中,真正拓宽声场的效果。
根据这一原理我们设计了外放环绕音效。在手机场景,现在很多中高端手机已经配备了立体声扬声器来播放音乐。大家可以把手机横屏,体验一下。
另外,此音效还覆盖到了音箱和汽车等常见的扬声器播放场景。
声音从音箱发出后,会在空间里继续传播。上图中,黄色点声源发出的声音朝四面八方扩散开来。蓝色的听音位置收到了直达声后,又陆续收到了经过墙壁和者天花板作用的反射声。这些声音的共同作用就是混响。由于听音位置会感受到来自四面八方的声音,会体验到一种包围感。当然缺点也是很明显的。多个声源不同步的发声,会产生一种浑浊感。
不同的房间有不同的反射效果。将各个声音按照达到时间依次排列,同时考虑声音能量的衰减,便构成了可以描述这个房间特征的空间脉冲响应。若想模拟某个空间重放音乐的效果,只需要卷积对应的脉冲响应即可。比如模拟浴室,地铁,音乐厅等不同的场景。
简单试听一下经过地铁脉冲响应处理后的歌曲。
-03-
音效制作工具的设计
3.1. 开放基础组件
截止目前已经开放的组件有30多款。包括实现经典调音的三大件:均衡器、压缩器、混响器;听感模拟的脉冲卷积、叠加器等;及听感偏好调节的:低音增强、人声增强、环绕增强等效果。
由于这些组件符合线性时不变系统,用户可以像搭积木一样,设计自己喜欢的音效。每个效果拥有独立开关,方便用户决定是否保留该效果器。用户使用音效的场景集中在移动端。所以,我们为大家提供了二维码扫描、移动端即刻体验的功能。
为了让更多人可以使用用户自制音效,获得与官方音效同等的曝光量,用户也可以将制作好的音效通过PC端上传至后台审核系统。审核通过后可被认定音效达人。
3.2. 经典混音工具
经典混音工具多数包含了更高阶的设置参数,如混响器的空间大小、干湿比等可调,压缩器的启动释放时间等等。这些能力基本可以满足常见混音的所有设计需求。
其中,除了十段均衡以外,我们单独开发了更加专业性能更加强劲的参量均衡器,具备以下功能:
- 各个频段的精准控制;
- 动态显示输入输出信号的频谱图,直观明了地对比处理前后的效果;
- 同时均衡器的效果器种类丰富,多达9种可选。包括:bell、架子滤波器等全部开放;
- 包括所有效果器开放品质因子Q值和过渡带斜率slope等参数的设置权限。
可以说这是业内参数种类最全、自由度最高的参量均衡器。
3.3. 听感模拟工具
听感模拟主要是环境的模拟。一个是叠加器。把所要模拟的环境里面的特有的声音元素混入歌曲中,如海波听歌时会伴随着海浪的声音,下雨天会有雨声等。
另一个是利用脉冲卷积。使音乐与特定的房间声学环境相结合,从而营造一种特定空间的听音体验。如下图比较有名的脉冲混响插件。它集成了全球各大有名的音乐重放空间,包括教堂、剧院等等。
有了这样的脉冲卷积,用户可以设想自己坐在那个空间里听音乐的感觉。
3.4. 听感调节工具
关于听感调节,我们对底层工具做了稍微抽象化的提炼,如除了可以直接提升低频能量占比外,还可以增加虚拟低音处理。在流行音乐中,人声基本上都分布在中置信号的人声频段内,提升这部分信号的能力占比,同样可以达到突出人声的目的。
高保真和环绕增强,也是类似原理。
3.5. 曲风改编工具
此外,我们还在歌曲风格的自动改编方面做了尝试,如将歌曲改编成具有DJ风格的音乐。大致做法是,在后台利用机器学习的方法拾取歌曲的关键信息,包括鼓点和和弦等。同时,利用混音的知识,如制作DJ混音的常用规则,将预先制作的LOOP元素按照歌曲信息和混音规则的要求,形成节奏音轨。将节奏音轨叠加至原歌曲,便可以混合出具有DJ风格的歌曲。此外,混音规则和MIR信息还可驱动手机的闪光灯和振动马达,让用户在感知到多维度的听音体验。
除了DJ风格的改编外,还有更多remix效果的尝试,如一键秒变广场舞、电子、古风、摇滚等风格。
大家可以结合以下例子感受实际效果。
3.6. 达人音效社区
目前一共开放了30多款基础效果器供用户DIY音效。未来还会陆续开放更多。这套灵活自由的制作工具,激发了广大用户的创作欲望。用户可以二维码分享自己的音效作品,也可以上传至官方审核平台。官方审核通过后,可以获得音效达人的称号。基于此,我们顺势将用户汇集在了音效小组中讨论分享,并参与音效活动,从而形式了接近20万人的音效社区。
3.7. 官方制作音效
不仅是UGC音效,我们的官方音效也是按照音效组件组合的方式设计的。这种链式结构的音效工程明显提升了官方音效的制作和发布效率。同时,还可以做到后台的动态下发,及时更新相关效果。
3.8. 音效组件化
另外,我们提炼出了音效处理能力,实现了跨平台音效SDK的组件设。,在SDK中,我们抽离共用逻辑,统一管理音效资源的下载,和音效工程文件的构建。APP层只需要负责UI的交互,以及网络和文件操作接口的输入即可。这样的组件化设计,使银河音效可以在不同操作系统的应用平台快速接入。
除了QQ音乐客户端之外,全民K歌,JOOX、车载场景的爱趣听、酷我、波点音乐,都陆续接入了银河音效。也欢迎有类似业务需求的小伙伴与我们合作。
-04-
银河音效的未来展望
音乐播放的整个链路大致可分为3个步骤。
第一块是歌曲或者音源部分。比如从歌单的角度,为不同的歌曲配搭合适的音效。目前已经小有成效,大家可以关注QQ音乐的个性化歌单。我们赋予歌单制作搭配音效的能力。
第二块是音频解码阶段,也就是现在播放页的银河音效。为了满足用户的听音偏好,我们会开发更多样的官方音效。
第三块是播放设备端,不同的设备需要适配不同的效果。我们会和更多的硬件厂商合作。利用自己的制作工具,发布官方硬件适配效果。另外,我们也在和易车APP合作,联合发布最新车型的各种车载音响系统的测试信息,包括根据测试结果定制的车载音效。
最后,在空间音频方面我们一直在尝试各种可能性,如音乐空间的虚拟听音环境、线下展览的扬声器阵列、和线上直播场景的全景渲染,包括相关空间音频制作工具的落地。