音乐丰富我们的生活;音乐传达人类的情感;音乐表达人类的艺术。人类文明的进程中离不开音乐这个载体,音乐也离不开人类的真情创作。在听到好听却没听过的歌曲时,如何快速准确得到该歌曲的歌名成为当务之急。LiveVideoStackCon 2022 北京站邀请到了腾讯音乐的孔令城老师,为我们介绍QQ音乐在听歌识曲方面的成熟方案。
文/孔令城
编辑/LiveVideoStack
下午好,我是来自腾讯音乐的孔令城 ,很荣幸能够借助LiveVideoStack平台、代表天琴实验室,与在座的各位专家、大佬分享我们天琴实验室在多媒体、AI 领域所做的工作。
我会通过以下四个方面来介绍我们天琴实验室在听歌识曲方面所做的工作。
-01-
经典听歌识曲系统
当特别想听某一首歌的时候我们会采取什么措施?熟悉的歌曲可以直接在音乐APP上搜索歌名。如果忘记歌名,搜索歌词也是可以的。如果在外面偶然听到一首歌,完全不知道歌名以及歌词,手速快的可以瞬间拿出手机使用听歌识曲,如果慢一点记住了旋律也可以用哼唱识别。歌名搜索、歌词搜索是基于文本搜索,而哼唱识别和听歌识曲是基于音频内容检索。基于音频内容检索,需要对音频内容进行分析。
怎么衡量一款听歌识曲效果的好坏?什么样的听歌识曲才是好的系统?QQ音乐的听歌识曲到底效果怎样呢?来看看用户的反馈。
用户的期望可以总结为曲库全、识别准、速度快、灵敏度高以及旋律识别的模糊性。
经典听歌识曲系统,主要技术是音频指纹技术。图片横轴可以看作精准性,纵轴看作时间颗粒度。音频指纹技术就是要在很短的时间内确定一首歌在音频层面是否一致。音频指纹非常适合听歌识曲。可以在一个很小的片段内精确地匹配到对应的歌曲。
最基本的音频指纹提取流程如图所示。一段音频先进行预处理,然后进行分帧信号转变,随后提取特征,例如最经典的peak特征。随后将其Hash化再通过Hash表查询。
以上图为例:(a)是Document的频谱图与peak点,(b)是Query的频谱图与peak点,(c)中仅保留(a)中的peak点,(d)中仅保留(b)中的peak点,(e)是使用(d)中Query的peak点逐帧滑动匹配(c)中Document的peak点,滑动到10s的位置刚好重叠的点数最多并且超过某个阈值,那么我们认为Query的音频片段来自于Document的第10s。峰值点特征的优点很明显,对于普通的平稳噪声、突发的短时噪声、以及失真等都有较强的鲁棒性,同时极具辨识性,另外特征稀疏数据量少,便于后续检索。然而,对于庞大的曲库,采用目前(e)图表示的匹配策略是行不通的,因为Query要暴力与每一首歌曲进行滑动匹配。
可不可以基于peak点直接建立hash表呢?实际上,每个peak点是有时间和频率两个维度构成的;但是因为同样的音频片段,在Query和Document上时间的绝对值是不一致的;如上页例子,Query的时间为0s的peak,在Document中是10s,因此时间维度不能直接使用。而单独使用频率信息也不足以表达点的特征。
前人想到了一个非常巧妙的方法——不存时间的绝对值,只存时间的相对值。这样就可以得到Hash值。该值可以作为Key储存。有了Hash表检索效率就会加大加快。检索库并行扩展也得以实现。
当歌曲入库时就对歌曲进行热度分级,非常热门的歌曲会立刻加入到服务当中。相对冷门的歌曲依然会加入服务当中,但优先级不会那么高。背靠TME海量曲库,QQ音乐可以做到最快一秒识别,新歌入库识别零延迟。
以 3 6 9 12 15秒,不同时长为片段进行测试。音频维度,其精确率均为100%。音频维度是指Query和命中的歌曲,音频是一模一样的。但是现实中存在盗歌的现象,虽然音频维度一样,但是版本维度不同。
即便是更短的片段时长,QQ音乐识别的精准率仍然保持在100%,尽管在更短的情况召回率降低,但在一定程度上也能提升用户体验。
使用经典听歌识曲系统,无结果中的样本中,翻唱歌曲占60%甚至更多。可以看到对一些检索库中不存在的翻奏例子或者翻唱的例子,经典听歌识曲系统无法识别。
从19年开始翻唱、改编歌曲呈爆发性增长。其中的原因我们也不言而喻。因此我们迫切需要进行技术更新。
-02-
下一代听歌识曲系统
想要解决上述的问题,就需要下一代听歌识曲系统。
什么是翻唱?以画作为例,同样是蒙娜丽莎,不同艺术家可以创作出不同的版本。版本不同,但看起来都会令人想到是蒙娜丽莎。
图片可以直观感受,歌曲维度也有相应的定义。只要主旋律不改变,其他音乐要素(比如音色、速度,节奏等)任一改变就可以视为翻唱。
对于翻唱识别,业内同行已经有了很多较为成熟的方案,即全曲翻唱识别。但之前提到过,QQ音乐听歌识曲场景的识别是短片段,同行的解决办法不太适用于这样的场景。所以QQ音乐创新的提出了片段翻唱识别。
QQ音乐采用度量学习提取Embedding。为了应对短片段的识别,输入进行了切片。HPCP特征也是传统翻唱识别中的经典特征。有了Embedding之后,就可以按上述提到的音频指纹检索系统进行检索。
输入Query之后,提取出其Embedding序列进行检索。检索结果中的SongID和Offset信息进行时间差值,针对每一个歌曲构建一个直方图。在同一个时间差之内,直方图出现峰值则认为匹配成功。
翻唱识别检索系统精确率高,Embedding序列之间可以交叉验证。召回率也高,Query抗干扰高。但缺点也很明显,序列的严格对齐,变速后无法满足时序要求,所以不支持变速;单个Query和Doc都要提取数百Embedding,索引检索开销大。
目前QQ音乐增加了歌声ASR检索模块。在直播场景或者LIVE环境下,人耳可以将歌词听的很准,可以直接搜索歌词。这个时候使用歌声ASR检索更为方便。随着深度神经网络的发展,ASR发展也十分迅速。天琴实验室训练了一个针对歌声的语音识别系统,使用数万小时的歌声数据进行训练,实时率在0.3以内,字错误率15%左右。与业内通用ASR相比在歌词识别方面提升近40%。
将ASR嵌入到Embedding检索,结果融合后精确率将近90%,是一个不错的成绩。
当听歌识曲没有结果时,该系统就会启用。
图中的是一些听歌识曲的入口,有Android桌面控件、鸿蒙hap、长按快捷方式和跨应用识别等。相信很多大家已经非常熟悉了。
-03-
听歌识曲技术应用举例
除了线上的场景可以使用到听歌识曲,还有哪些场景也可以使用到该技术呢?
在庞大曲库管理中,该技术也得以大展身手。曲库大有大的好处,也有大的难处。《孤勇者》非常非常火,有很多歌手想蹭热度,例如长音频、串烧、DJ版等。《孤勇者》类似的歌曲在曲库中多达上千首。
对于最不能容忍的盗歌,QQ音乐做了三大类六小类的分类。一级盗歌分为直接盗用、截取盗用;二级盗歌分为拼接盗用、改编盗用和节目素材;三级盗歌则为词曲盗用。无论哪一种,都不利于音乐行业的正向长久发展。
QQ音乐首先会经过音频指纹技术进行曲库范围内的聚类,根据歌曲信息做盗歌的自动化打标。根据打标结果,对可以歌手进行重点挖掘,进行盗版歌手打击。并且打击结果及时反馈给业务端,针对作弊多的歌手,再次进行打击。这样的惩罚措施实施下来,盗歌曝光量下降了近80%。
翻唱和盗歌存在些许区别。我们对翻唱进行了五档同歌组体系划分,意在更好的在平台分发。不同档之间有着严格的从属关系。最严格的为绝对同歌组,具有相同的音轨。其次为严格同歌组,具有相同的录音。之后为同演唱同歌组,有相同的表演者。再往后为同词曲同歌组,其作品相同。最后为同曲同歌组,只有作曲相同。
目前QQ音乐对其所有曲库都进行了这样的分组。使用的技术也是之前上文提到的那些。输出不同同歌组以更好的服务不同业务。
该技术不仅仅可以应用在音乐行业,在直播中对于真假唱辨别也十分高效。
还有很多其他的应用,这里不一一介绍。
-04-
听歌识曲技术展望
QQ音乐希望未来的听歌识曲可以有更多的个性化。用户维度,不同人喜好不同,有人喜欢原唱,有人喜欢翻唱;歌曲维度,同一个人对不同歌曲的版本有偏爱;场景维度,同一个人在不同场景下可能也有不同的选择。
我们也希望能和行业内的同行共享我们的技术,做大规模。QQ音乐进行了开源数据集发布,大家可以加入我们,一起将识别技术做大做强,在多媒体领域同频共振。谢谢大家。
参考文献:
[1] M. Muller, “Music synchronization,” in ¨ Fundamentals of Music Processing: Audio, Analysis, Algorithms, Applications, pp.355–385. Springer, Berlin, Heidelberg, 2015.
LiveVideoStackCon 2023上海讲师招募中
LiveVideoStackCon是每个人的舞台,如果你在团队、公司中独当一面,在某一领域或技术拥有多年实践,并热衷于技术交流,欢迎申请成为LiveVideoStackCon的讲师。请提交演讲内容至邮箱:speaker@livevideostack.com。
,