作为国内首创的综合评分功能,音街的综合评分系统可对用户的音准、节奏、气息、颤音、滑音、情感等维度进行综合评价,这些多维度评分在增加演唱趣味性的同时,也可为作品分发提供可用的标签等等。本次LiveVideoStackCon 2021北京线下峰会我们邀请到了网易云音乐高级音频算法工程师高月洁老师,本次分享将围绕歌唱与嗓音分析,介绍相关的体系与算法实现。
文 | 高月洁
整理 | LiveVideoStack
我是高月洁,来自网易云音乐,是K歌综合评分系统的项目负责人,同时也负责包括音乐业务、直播业务与嗓音分析相关的内容。
我来自于云音乐的音视频实验室,实验室主要支持K歌、音乐、直播等业务,衍生出诸多业务驱动应用场景,音频方向重点建设的是音乐理解、音乐处理、音乐生产三个方面。音乐理解包括旋律提取、歌曲打标等来分析音乐内容特质;音乐处理方面包括智能音效、修音美化等通过音乐处理增强音乐消费感知;音乐生产包括智能编曲、旋律生成等,用于降低音乐的创作门槛。
提到传统的歌唱评价,大家印象中应该是左上图的一个功能,有标准音高线,用户演唱音准只要与音高线对到一起,就可以得到高分。与此同时还存在着仿佛是平行世界的一套评价体系,就是声乐老师或是乐评人的评价,歌唱的评价标准包含多个方面,需要气沉丹田、需要头腔共振、需要节奏把握准确等。当中的次元壁我们用算法来打破。
本次的演讲主要分为以下几个方面:歌唱评价概述(人类专家如何评价一段音乐、机器如何理解这些指标)、K歌综合评分(怎样将一个K歌作品打上多样的作品标签)、歌手能力图谱(如何评价歌手歌唱能力)、作品标签和歌手标签的应用实例、规划展望以及Q&A。
1. 歌唱评价概述
歌唱评价概述需要解决的是上文中提到的两个问题:人类专家怎样评价一段歌声;这些指标怎样让机器理解。我们在整理人类专家对于歌唱评价标准时发现整个体系包括所有研究都有明显分水岭,这个分水岭是麦克风的普及,在麦克风普及之前人类专家研究的所有歌唱都是关于美声唱法的。美声唱法有一个共振峰是在3000hz附近,这可以使歌手的声音在交响乐队中脱颖而出,有了这个共振峰就是一个好的歌声。当麦克风普及后,这一套标准完全翻天覆地。本次分享的是在麦克风普及后对歌声评价标准。
在最近的一篇广为引用文章中,把歌唱标准评价方法分为三类:机能、完成度、吐字。机能包括歌手演唱声音的温度、色彩、颤音、共鸣、力度范围、强度。完成度包括演唱时声音的灵活性、音域平稳性、音区自由度、呼吸控制、音准、长音质量。不同学派对这三类有不同的侧重点,有些会认为机能最重要,有些会认为完成度更重要,吐字一般认为在比较次要的位置。
针对未受训练的歌手,有论文研究了非常多指标,根据重要程度排名,第一是音高的准确性;第二是节奏的一致性,需要节奏稳定卡上点;第三是音色亮度,研究发现这与高频能量有关;第四是声音清晰度,与HNR有很强相关性;第五是颤音;第六是音域,即能够自由地唱歌的音高范围,而不会在声音质量或其他方面发生不适当的变化。
接下来要解决的问题是,机器是如何理解人声的。大家应该都了解源-滤波器模型。其中,可以把声带震动认为是震动源,它的震动会产生一系列谐波。共鸣腔是由声道,包括口腔的形状、牙齿、嘴唇的位置等组成,声道形状可以决定共鸣腔波峰系数。声带震动与共鸣腔进行卷积就可以确定声音状态。在歌唱时,声带相关的,比如真声假声混声,都影响着声带震动的部分;头腔共鸣、喉位影响共振腔形状,最终决定声音状态。声音状态随着时间变化,就形成了歌声。
演示的是三个人演唱同一段学猫叫的声音。三个人演唱音区音色有很大区别,可以在频谱上看出他们的不同。频谱中的信息更加细化可以将其分为三个类型。第一类是音高,上图可以看出音高线。音高体现旋律属性,也包括了音长、颤音、滑音等。第二类是音量属性,可以分析能量得出。第三类是音色属性,可以通过频谱的能量发布来进行描述。到这里解决了机器如何理解声音的问题。
上图是云音乐中对于歌声评分和歌手能力图谱的综合展示,下文也会围绕这一张图中的内容进行分享。刚刚已经介绍完K歌评价体系,接下来首先会介绍K歌综合评分,目的是得到多样的作品标签;歌手能力图谱,得到歌唱人标签;以及这些标签在业务中如何应用。
2. K歌综合评分
2.1 关于音街
K歌综合评分主要应用在云音乐下属的音街APP,2020年6月在IOS/Android上线,拥有海量曲库和云音乐互通。音街主要用户针对Z世代的年轻人,他们会有非常强烈声音社交需求。音街特色功能:主题歌房、一键remix、打分评价、声音社交。
在音街K歌后会产生上图左边综合评分的页面,会告诉演唱者他的演唱在多个维度下的打分,其中包括音准评分、节奏评分、气息评分。在未被打分部分会有标签,展示出情感、颤音、滑音的评价。分这两部分的原因是,歌唱对于个性化非常包容,怎么样的演唱是好的没有标准答案。比如说去年王菲我和我的祖国与原唱李谷一有非常大区别,但都非常好,这两个版本所表达出的情感不同,这里我们针对情感做标签化展示,不会用评分评判歌唱的好坏,用户也不用去特意刷高评分。
有人会提出为什么没有对音量的评分,这里说明的是不同录音设备、手机麦克风由于型号不同,录好的声音音量有非常大的差异,外置麦克风与人距离远近也会影响音量,从而无法判断是通过演唱还是距离的造成的音量变化。但我们可以通过音量的起伏和总体的变化程度来判断用户演唱时的感情投入度。这六个指标中,音准也就是唱的准不准与通用算法一样,接下来将重点介绍节奏评分算法、 以及其他四个维度综合评分项介绍。
2.2 节奏评分算法
节奏评分目前市场上的三种方法。
第一种基于音符长度数组,比如说标准音高线应该是短长短短,唱成长短长短,我们记录用户演唱的音符长度数组,对比标准音符长度数组,计算余弦值,得到节奏的评价。缺点是如果用户漏了或唱错音,这个算法就宕机。所以只适用于演唱水平中上的音频打分情况。
第二种基于音高轮廓的方法,它用用户音高轮廓和标准音高轮廓做DTW,一般来说会得到中间弯弯曲曲的线,这个曲线越接近回归直线,节奏越好,只需要度量曲线和回归直线的最小二乘差值,也就是度量曲线弯曲程度,来得出节奏评分。这个算法存在的问题是用户跑调但节奏准,也会得到很低分数。
第三种方法在此基础上进行了改善,使用MFCC音色特征,不用音高轮廓进行特征比对,用MFCC歌词轮廓进行比对。MFCC特征允许算法在用户跑调的情况下进行节奏评估,但相应的它的弊端是用户必须正确的演唱歌词,否则算法无法给出合适的给分。
我们经过尝试,找到了一种更优的解决方案。
使用了类似音游的方法,音游中随着音高线下落敲击节奏,来判定分数。类比到到歌唱中,下落的音符是标准音高线,在音高线中每个音符的起始位置附近,去找用户声音中的onset。
这个方法听起来非常make sense,但是会面临以下挑战:第一是用户干声的onset提的准不准;第二是节奏点的检测区间,卡点需要卡到多准,才能判定得分(尤其是快歌慢歌判别标准是否不同);第三是得分策略,有一些字没卡在点上影响不大(称为rubato),有一些卡点则非常重要,怎样让机器判定每个音符的权重支持演唱中的自由发挥。
2.3 基于端点检测+乐理权重
第一个问题如何让onset让机器准确提取有两种方法。第一种是基于谱能量的onset检测,比如说这段频谱展现的是用户在演唱《成都》中的一句歌词,可以看到在每个字起始处会有能量突变点,只要通过谱能量分析找到突变点位置,就可以找到比较精确onset点。它的问题是对转音无能为力,转音中找不到突变点的。这时就会结合第二种方法,基于音高的pyin_note检测找到音符的起始点,一定程度上解决转音问题。基于pyin也有一定不足,同音高多个字,容易检测不出。辅音也是无音高的。两种方法结合就可以得到基本准确的用户onset时间点。
第二个问题是得分区间如何设定,快歌与慢歌节奏区间标准不同,基于乐理知识,得分区间与音符长度相关,在同一音符起始点设计出三个区间:音符长度/4、音符长度/3、音符长度/2,窗口越小得分越高,分别设定A、B、C分数,后续参数可以根据实验确定。
第三个问题是如何让用户有一定自由发挥区间,先听一下这段演唱,第一句“让我感到为难的”五线谱抠出来是3 5 3 3 2 1 1。首先要寻找原唱中的气口。通过分析音高线,相邻两个音,若第二个音的起始时间距离第一个音的结束时间>100ms可以判断此处有气口。气口后第一个字是进唱点,设为最高权重A。连续同音符的第一个音符权重为B,连续同音符非首音,权重为0,其余音符权重为C。通过三级权重设置,经过试验对音符进行分类,辅助节奏打分。
在数据集上我们征集不同人群涵盖不同演唱风格、男/女声、不同语种、速度的22个人演唱的440首歌曲。由中央音乐学院毕业生进行人工打分,算法评分准确率达到80%以上。准确率的定义为人工打分为1-10,算法与人工相差不超过1分即为准确,举个例子人工打5分,算法打4-6分是可以接受的,准确率81%。根据2019年的一篇文章,作者寻找了5个各自歌唱领域权威音乐家,邀请他们对一些演唱来打分,这些音乐家彼此之间分数会有差异但基本相同,他们打分的相关度为82%。
2.4 K歌综合评分
介绍完节奏部分,也介绍一下气息评分。上文提到如何找到气口,接下来根据气口来检测用户演唱时有无在不合适时间断句,或演唱音符有无唱满,进行气息评分。
情感方面,我们使用多尺度的音量特征。听两段没有情感和有情感的演唱。两条音频在速度上存在一定差异,将速度时长缩放,就可以观看上方的波形图。可以看到第一条没有情感的波形为很均匀的状态,第二条能量有明显的强弱起伏,我们认为她是更投入地在演唱。通过多尺度音量特征与向量回归模型就可以对每一段音频进行情感评分。情感评分不参考原唱,只针对用户自身的演唱音频。
颤音方面,颤音可以理解为音高线有稳定频率的震动。对音高线做频率上的分析,这里使用FDM算法,它类似于FFT,只不过在低频段分辨率更高,如上图所示。FDM可以更加准确找到颤音震动的频率。
滑音方面,滑音是在音高线上的连续滑动,有一定音高差、时长限制。在基于这些限制后,使用HMM模型进行滑音端点检测,可以检测出一段音频中的滑音数量。
有个这么多维度,音街评分系统为业界首创,于2020年6月正式上线,所有新维度算法效果与学术界最优持平,全部算法都在客户端实时计算完成。相较与单一的音准评分,综合评分并不只是在展示维度上多了一些演唱反馈。
随着维度增加和准确性提高,评分算法对作品质量评价越来越精确,比如说基于节奏算法、气息算法可以对说唱进行评分。也可以用滑音修正音准评分,接下来是一段音频。演唱中第三个音头有音高上的滑音,但在标准音高线上一定是直直的音符,这种情况下用传统音高评分算法一定是会扣分的。而实际上滑音是在好的歌手/歌曲上、特定风格如爵士/古风戏腔才会有的特点。通过滑音检测修正音准评分可以使综合评分更加可靠地寻找更多优秀作品。后台同学可以根据各个维度得分技巧对需要的作品/歌手进行筛选。
3. 歌手能力图谱
介绍好作品评分表现后,介绍一下歌手能力图谱。
作品标签主要针对作品演唱完成度,歌手能力图谱更多关注于歌手演唱机能,也结合部分歌曲完成度的指标,进行综合评判。这里分为两部分:一个是对于音频内容,根据演唱音频分析歌手音域、音色、演唱技巧、声音质量、录制质量;同时根据作品播放数据,计算得到歌唱者演唱的语言、作品风格、作品留存数据。构建能力图谱后,可以量化每个歌手演唱能力,比如建立声音名片,支持音街的音频社交能力,做分发等也有很大用途。这些音频能力标签中,接下来将详细介绍关于音色的分析,其他维度也将被介绍。
3.1 音色分析
音色定义是谐波的能量发布+非谐波成分。非谐波成分包括唇齿音、摩擦音、气声,比如声母。严格来说,当我们的口腔形状发生变化,比如再发阿啵呲嘚的时候,我们音色也在实时产生变化。用来描述音色有经典特征,例如经常使用的基于频谱特征(SPR、谱质心)、声道特征(LPC、LPCC)、人耳特征(MFCC、PLP等),它们主要根据先验知识,对频谱降维。近几年有深度特征、深度学习方法得到音色特征。下面来详细介绍。
深度特征是近几年出现的一种音色的表征方法,几篇论文的总体思路非常一致。基于百万数据集训练歌手识别任务,把歌手每段音频通过表征学习,映射到向量,再通过计算embedding的相似度,得出歌手分类结果。那么对于歌手识别任务来讲,包括干声和带伴奏音频,同一个歌手的不同歌曲,彼此的距离越近越好,与不同歌手的歌曲的距离越远越好。
网络结构方面会把歌手数据进行标注,同一个歌手的不同音频标为positive,包括演唱会版本、录音棚版本、清唱版本等。不同歌手标为negative。把音频转换为不同的频谱,如CQT/mel谱输入网络,得出embedding向量,测算相似度就可以定义向量的距离。训练好的网络可将其单独视为音色特征提取器。
听一下根据深度网络训练歌曲提取器计算歌手相似度效果如何。选取黄金时代,大家耳熟能详的一些歌手,看一下声音相似度,数字越接近于1,音色越接近。到了张宇,和前面的音色有些差异了。基于深度的音色特征可以比较好表示歌手相似度能力。
深度特征不可以替代经典特征,它们在使用中各有特点。在设备包容性方面,从专业麦克风换成手机麦克风后,经典特征基于频谱描述,简单降维,鲁棒性弱;深度特征考虑很多声音输入,鲁棒性强。同理在降噪算法应用后,深度特征会保证比较强的鲁棒性。商业音源会对歌声进行混响和均衡的处理,在混响方面是时域上的操作,对音色基本上没有影响。在均衡方面,因为调整了EQ,两种特征都会有很大问题。
两种特征有各自使用场景。拿音色相似度的应用来对比。经典特征典型应用场景是智能混音,不同人的音色有不同的调音参数,相似音色的人调音参数也相近。我们访谈了调音师,同一个人用不同的设备录音,调音参数的差异,会比不同人用同一个设备录出来的声音差异大。当设备产生差异,调音参数会有很大变化,这里对设备鲁棒性比较弱的经典特征正好适用于场景。
深度特征典型应用场景是真唱识别,指在直播或K歌场景中,用户播放原唱,自己不发声的情况。可以通过对比用户演唱的声音和原唱相似度,判断是否在假唱。在进行真唱识别时会遇到一个典型场景:功放原唱音频,原唱的声音通过麦克风返录进来,这种情形也是假唱。返录进来的声音,频段上较大损失。依旧要用深度特征辨别是同一个人演唱。
这里除了介绍各种音色的不同用法之外,也介绍一下其他的算法。
3.2 其他维度
音域包含最适音域,在前几年点唱《洋葱》“如果你一层一层一层一层的,剥开我的心”,一定有一层是破音的,可能前几层,声音就不太能听,那可能不是用户最适合的音域。这里与音乐学院合作收集很多音符级别的演唱,分为三类:音域不合适,破音;音域不合适,发声质量一般;音域合适,发声质量好。使用的特征包括音高特征(音高的标准差,抖动率),能量特征(幅度数组的均值、标准差,扰动度),音色特征(经典音色特征均值、标准差,深度特征),再进行特征类别筛选。大家可以猜猜最终筛选出的特征中,哪个特征是相对不重要的?排序后发现音色和音量特征在最适音域检测中相对比较重要,音高没有进入重要度Top10,其原因可能在于“音域合适,发声质量好”与“音域不合适,发声质量一般”两类中,歌手均可保持较稳定的音准,但能量与音色相差较大。
演唱技巧包括了前面介绍的实时监测的颤音、滑音部分,同时加入转音和呼吸声检测,这都关系到演唱技巧的得分。
声音质量包括为演唱质量(不依赖音高线的演唱评分)和音色质量(开口跪),试图通过算法筛选,基于谱特征和音高统计图的CRNN网络进行输出变成简单分类问题。
录制质量包括杂音/噪音检查和信噪比,以上方式对演唱录制质量进行打分。
4. 应用实例
在介绍了这么多作品标签和歌唱人标签后,介绍一下其在实际中的运用。
高精度+多维度歌唱标签,相比单一维度,为我们打开了新世界的大门。根据业务不同的场景,能获取的物料不同,对实时性的要求不同,定制不同的算法方案,在录制、分发、社交、制作、曲库整理中有很多应用。
4.1 录制
录制方面,歌手用户在演唱歌曲后,给出完整演唱反馈,或是演唱后进行片段编辑,看到每句话的得分,可以选择得分比较差的部分重新唱。智能混音根据用户音色智能选择参数。
4.2 分发
分发方面,在海量录制K歌作品后,后台需要对作品进行分发管理,主要包括对正向作品挖掘,将好的作品推荐上首页,负向作品打压,使之不上首页。还有演唱推荐,有了作品标签和歌唱者标签后,可以进行匹配,什么样的人适合唱什么样的歌,相当于给用户一个贴心声乐老师,服务于伴奏分发,将伴奏发到适合其演唱的用户。
分发还有真唱识别功能,判断在直播或K歌场景中,有没有用户播放原唱,自己不发声的情况。另外还有主播标签:比如说我喜欢御姐音,再给我推荐一个御姐音大概率我也是喜欢的。这里注意的是,嗓音分析已经从歌唱场景推进至主播场景,包含讲话等内容。实际上算法同时也适用于歌声之外很多内容,这也是我们将来拓展的方向。
4.3 社交
社交方面主要服务于声音名片,用户可以录制声音名片,其中会给用户反馈三个信息:声音成分(xx%成分A,xx%成分B)、音色类别标签、歌手音色相似度。这是服务用户间社交的功能。另外还有合唱匹配,与喜欢的音域的partner进行合唱。经过数据验证后,也可以推理出与哪种声音合唱比较好听,根据嗓音标签匹配合唱者。
4.4 制作
制作方面,工作室在写歌时希望某首歌由谁的声音来演唱,例如想的是梁静茹的声音,但梁静茹很贵。那么可以在歌手库中根据描述,使用歌唱标签进行筛选。以此服务于制作过程中的人歌匹配。潜力歌手挖掘方面,音街中有专业音乐人还有玩票用户,一些非常有潜力歌手可以通过评分被挖掘。
4.5 曲库
还有曲库建设,曲库年部分歌曲久失修很久没被整理,有首歌显示是张伟唱的,但分不清是哪个张伟,通过嗓音分析可以找到对应演唱者。在翻唱同歌曲,可以有翻唱算法将一首歌所有翻唱版本找出,接下来在为了判断它们直接是同一首歌还是经过了改编的时候,可以用歌唱人标签明显区别划分。
5. 规划与展望
目前所有算法都依据演唱的音频,但实际上演唱在所有声音作品中算比较小的一类,还有主播的语聊、声优配音或播客。如何将歌唱领域分析成果推广到声音业务中是下一步重点。对于歌手标签,会推广成人声类标签;分析由干声为主,推广到混合背景音乐、噪声的声音,推广算法的应用场景。根据2021大社交趋势观察报告,Z世代声音社交需求占整个社交趋势Top3,我们整个人声分析算法、作品标签、歌唱评价等在未来声音社交趋势还有很多应用空间。
本次的分享就到这里,可以扫图中的二维码体验音街,体验上文提到的部分算法。
标签:音高,嗓音,音色,歌中,歌手,演唱,评分,算法,歌唱 From: https://blog.51cto.com/u_13530535/6471016