音乐的指纹:听歌识曲app是怎么识别音乐的?算法原理揭秘

学术   2024-11-11 10:01   北京  

有没有过这样的时刻:在商场、咖啡厅里听到一首歌很上头,急切想知道歌名?
或是听到一段熟悉的旋律,但就是想不起歌曲的名字?

这时候听歌识曲功能就发挥作用了,在环境中听几秒钟,歌手和歌名便精准地出现在了屏幕上。
提到听歌识曲,就不得不提到最为主流的软件之一——Shazam。它是识曲技术的先行者,自1999年创立以来,Shazam一直在不断完善技术,并在2018年被苹果以4亿美元收购,成为了iPhone自带的识曲工具。如今,Shazam凭借庞大的用户群和全球海量的音乐数据库,保持着识曲技术领域的领先地位。


数据显示,Dance Monkey 是被Shazam搜索次数最多的歌曲,达4100万次;被搜索最多的艺人是Drake,搜索次数达3.5亿次。

Shazam的识曲界面如下,无论是前奏、主歌还是副歌,几秒之内就能够给出准确的歌名和歌手信息。


其他主流的听歌软件如网易云音乐、Spotify等也逐渐有了听歌识曲功能。

那么,听歌识曲软件是怎么在如此短的时间内,从嘈杂的环境中准确识别出歌名的?
今天我们就来揭秘音乐识别的工作原理。


1. 声音采样:音频数字化


音乐识别的第一步就是“听”声音。
但机器是怎么“听”到歌的呢?我们首先回顾一下声音的本质:
声音本质上是一种振动,在空气或水等介质中传播。
被人耳接收后,人耳会把这种振动通过耳膜等组织传导为大脑能识别的信号。
机器听歌的原理也类似,它把声音的振动转化为电信号,再把电信号转变成计算机可处理的数字信号。
这个把连续的声音波形转化为离散数字信号过程就叫做采样。采样率决定了信号的捕捉效果。采样率越高,点越密集,原始声音被保留得越完整。下图从左到右展示了采样率由低到高的声音还原效果。

根据 Nyquist-Shannon 定理,为了捕捉到人类可听的频率(20Hz - 20,000 Hz),采样率需要是其两倍,因此常用 44,100 Hz 的采样率。

现在我们通过采样获得了声音信号,但这只是「听歌识曲」的第一步。我们还需要提取这些声音中的特征,转换为能被识别的模式。


2. 声音特征提取:从时域到频域


当听歌识曲软件听到一段声音时,最先捕捉到的是音频的时域信号。
时域信号是最直接的声音表现形式(也就是我们通常在录音软件中看到的波形图),表示声音振幅如何随时间而变化。

但是,时域信号主要呈现的是声音随时间的变化,很难直观反映出声音中包含的频率成分。因此,为了更有效地分析声音的特征,我们需要将其从时域转换到频域。

傅里叶变换(Fourier Transform)正是这样一种工具,可以把时域信号分解为不同频率成分,帮助我们清晰地看到声音的频率和振幅信息。

这个方法可以追溯到19 世纪初,法国数学家傅里叶(Jean-Baptiste Joseph Fourier)发现,任何复杂的时域信号都可以分解为一系列简单正弦波的叠加。这一分解过程就被称为傅里叶变换,叠加的这些正弦波则被称为傅里叶级数。

通过傅里叶变换,声音被进一步分解为一系列简单的正弦波,每个正弦波都有特定的频率、振幅和相位。



下图展示了傅里叶级数如何将一个 1 Hz 的方波在时域中分解为多个正弦波的频域组合,呈现出其各个频率成分和振幅。

            

在音乐分析中,通常使用的是离散傅里叶变换(DFT),因为音乐信号是离散采样的数字信号。DFT 能将这些离散数据转换为频域信息,更适合计算机处理。
然而,由于DFT的算法复杂度,计算量耗时非常大。
为了优化这一过程,快速傅立叶变换(FFT)作为 DFT 的一种改进算法应运而生。FFT是一种分而治之算法,以递归方式将 DFT 划分为许多较小的 DFT,大大加快了变换速度。正因为 FFT 的高效性,它也被广泛应用于数字信号处理、图像处理、音频分析等领域。

通过傅里叶变换,音频信号就从「时域」转换到了「频域」,以显示音频中每一个时间点包含的频率及其振幅。频谱图能够帮助我们进一步可视化这些信息。


3. 频域信息的可视化:频谱图


频谱图是一种特殊的频域图,它呈现了音频信号的时间、频率和强度三维信息。
频谱图就像是歌曲的「心电图」,记录了歌曲每一秒的「心跳」——也就是频率和振幅,很直观地向我们展示了信号中哪些频率在什么时候出现,它们的强弱关系如何。歌曲特征提取的本质就是在这心电图中找到最明显的跳动。

   ▲ 图 / researchgate

上图就是一个典型的频谱图:X 轴表示时间,Y 轴表示频率,颜色深浅表示振幅的大小。

我们已经看到,频谱图包含了音频中独特的频率信息,那么识曲软件是如何提取这些信息并进行比对的?

4. 音频指纹:提取频率特征

识曲的关键就在于音频指纹就像人的指纹是独一无二的,每首歌也有自己独特的指纹,音频指纹就是音频信号的数字DNA。
提取指纹的过程大致如下:音频被拆分成若干小块,进而提取音频中的显著频率峰值每个片段的峰值组合就形成了整首歌的音频指纹。
下图展示了一个语音文件在各区段被检测到的频谱图峰值示例。这些峰值点代表了音频中最显著的频率成分,也就是音频指纹的核心构成。

                                          ▲ 图 / researchgate

通常情况下,不同的频率范围会被分别处理,这样能够确保对低音、中音和高音的均衡分析,避免混淆或漏掉某些音乐元素。
每首歌都会被转换为一个独特的音频指纹,所以就算是同一首歌的不同版本也会因为频率、振幅和时间上的差异而生成不同的指纹,以确保后续最精准的匹配。
 
      
5. 在数据库中寻找匹配:哈希表与高效匹配


现在我们有了这首歌的「指纹」,接下来就是要在已有的歌曲数据库中找到与它匹配的指纹,来识别出具体的歌曲。

听歌识曲技术将每段音频指纹转换成哈希值(一种编码),这样可以加速在数据库中查找匹配(因为比较哈希值比起去比较整段音频要快得多)。软件会将用户录音的指纹与数据库中的指纹哈希值比对,找到指纹匹配的歌曲。

下面的4幅图展示了从音频信号提取特征到生成哈希值的完整流程:

  ▲ 图 / Wang,A.L.-C. (2003). An Industrial-Strength Audio Search Algorithm,Shazam

A. 展示了音频信号的频谱图,显示频率随时间的变化
B. 从中提取峰值,形成星座图(星座图就是把音频中最显著的频率点形成的图,就像把最闪的星星连成星座一样)
C. 把锚点与目标区域内其他点配对,记录频率和时间差来生成组合哈希
D. 生成哈希值,用于后续的音频匹配与识别

最后,识曲算法会考虑时间差,并比对音频片段和数据库中歌曲的时间偏移,确保这些指纹的时间序列匹配,这样可以确保录制歌曲中的任意片段也能准确识别。

让我们总结整个过程,理解Shazam 等识曲app是如何在几秒内完成识别的:

Step1: 采样获取录制音频样本(只需要其中的一个小片段)
Step2: 通过快速傅里叶变换,音频从时域被转换成频域信息
Step3: 频谱图提取关键峰值作为歌曲指纹
Step4: 数据库匹配:通过哈希值在数据库中找到指纹匹配的歌曲
Step5: 返回结果:匹配成功后,将歌曲名称和信息返回给用户。


6. 其他广泛应用 


如今,音乐识别的应用场景已经非常丰富,除用来识别歌曲,还可以用于版权监控保护,检测音乐中的采样和相似度,甚至可以用于找出某些流派的起源和灵感来源。

这种特征提取和匹配技术也为个性化音乐推荐提供了基础。推荐系统通过深度学习分析音乐的情感、风格判断歌曲的情绪(如欢快、悲伤、激动)、根据音乐的旋律、节奏、情感等特征来挖掘用户的喜好,不仅提高了推荐的准确性,而且能为用户发现更多与其品味相符的音乐。

这块技术也正在从纯音频识别拓展到多模态识别,就是音频、视频、歌词、封面图等多模态信息综合起来(比如说视频中的视觉元素与音频一起识别),提高识别的准确性。

              关注DataCafe

            获取更多科技解读,洞察新鲜数据趋势

                   



参考资料:

[1]Shazam Wang, A. (2003). An Industrial Strength Audio Search Algorithm.

[2]https://www.hollyland.com/blog/tips/what-is-sample-rate-in-audio

[3]https://www.ifm.com/de/en/shared/technologies/real-time-maintenance

[4]https://dewesoft.com/blog/guide-to-fft-analysis

[5]https://www.techaheadcorp.com/blog/decoding-shazam

[6]https://studyelectrical.com/2023/05/frequency-domain-analysis.html



本文转载自DataCafe微信公众号






//
《物理》50年精选文章


中子弹是怎么一回事?| 《物理》50年精选文章

晶体缺陷研究的历史回顾 | 《物理》50年精选文章

相变和临界现象(Ⅰ) | 《物理》50年精选文章

相变和临界现象(Ⅱ) | 《物理》50年精选文章

相变和临界现象(Ⅲ) | 《物理》50年精选文章

凝聚态物理的回顾与展望 |《物理》50年精选文章

声学与海洋开发 |《物理》50年精选文章

模型在物理学发展中的作用 |《物理》50年精选文章

我对吴有训、叶企孙、萨本栋先生的点滴回忆 | 《物理》50年精选文章

国立西南联合大学物理系——抗日战争时期中国物理学界的一支奇葩(Ⅰ) | 《物理》50年精选文章

国立西南联合大学物理系——抗日战争时期中国物理学界的一支奇葩(Ⅱ) | 《物理》50年精选文章

原子核裂变的发现:历史与教训——纪念原子核裂变现象发现60周年 | 《物理》50年精选文章

回顾与展望——纪念量子论诞生100周年 | 《物理》50年精选文章

我的研究生涯——黄昆 | 《物理》50年精选文章

中国理论物理学家与生物学家结合的典范——回顾汤佩松和王竹溪先生对植物细胞水分关系研究的历史性贡献(上) |《物理》50年精选文章

中国理论物理学家与生物学家结合的典范——回顾汤佩松和王竹溪先生对植物细胞水分关系研究的历史性贡献(下) |《物理》50年精选文章

为了忘却的怀念——回忆晚年的叶企孙 | 《物理》50年精选文章

从分子生物学的历程看学科交叉——纪念金螺旋论文发表50周年 | 《物理》50年精选文章

美丽是可以表述的——描述花卉形态的数理方程 | 《物理》50年精选文章

爱因斯坦:邮票上的画传 | 《物理》50年精选文章

趣谈球类运动的物理 | 《物理》50年精选文章

转瞬九十载 |《物理》50年精选文章

一本培养了几代物理学家的经典著作 ——评《晶格动力学理论》 |《物理》50年精选文章

朗道百年 |《物理》50年精选文章

以天之语,解物之道 |《物理》50年精选文章

软物质物理——物理学的新学科 |《物理》50年精选文章

宇宙学这80年 |《物理》50年精选文章

熵非商——the Myth of Entropy |《物理》50年精选文章

物理学中的演生现象 |《物理》50年精选文章

普渡琐记——从2010年诺贝尔化学奖谈起 |《物理》50年精选文章

我的学习与研究经历 | 《物理》50年精选文章

天气预报——由经验到物理数学理论和超级计算 | 《物理》50年精选文章

纪念Bohr的《伟大的三部曲》发表100周年暨北京大学物理专业建系100周年 | 《物理》50年精选文章

同步辐射历史及现状 |《物理》50年精选文章

麦克斯韦方程和规范理论的观念起源 |《物理》50年精选文章

空间科学——探索与发现之源 | 《物理》50年精选文章

麦克斯韦方程组的建立及其作用 |《物理》50年精选文章

凝聚态材料中的拓扑相与拓扑相变——2016年诺贝尔物理学奖解读 |《物理》50年精选文章

我所熟悉的几位中国物理学大师 |《物理》50年精选文章

量子力学诠释问题 |《物理》50年精选文章

高温超导研究面临的挑战 |《物理》50年精选文章

非常规超导体及其物性 | 《物理》50年精选文章

真空不空 | 《物理》50年精选文章

通用量子计算机和容错量子计算——概念、现状和展望 | 《物理》50年精选文章

谈书说人之一:《理论物理学教程》是怎样写成的?| 《物理》50年精选文章

奋斗 机遇 物理 |《物理》50年精选文章

关于量子力学的基本原理 |《物理》50年精选文章

时空奇点和黑洞 ——2020年诺贝尔物理学奖解读 |《物理》50年精选文章

凝聚态物理学的新篇章——超越朗道范式的拓扑量子物态 | 《物理》50年精选文章

物理学思维的艺术 | 《物理》50年精选文章

对于麦克斯韦方程组,洛伦兹变换的低速极限是伽利略变换吗?| 《物理》50年精选文章

杨振宁先生的研究品味和风格及其对培育杰出人才的启示 | 《物理》50年精选文章

庞加莱的狭义相对论之一:洛伦兹群的发现  | 《物理》50年精选文章









中国物理学会期刊网
中国物理学会期刊网(www.cpsjournals.cn)是我国最权威的物理学综合信息网站,有物理期刊集群、精品报告视频、热点专题网页、海内外新闻、学术讲座,会议展览培训、人物访谈等栏目,是为物理学习和工作者提供一站式信息服务的公众平台。
 最新文章