听歌识曲技术大揭秘:小米手机如何实现音乐识别
听歌识曲技术大揭秘:小米手机如何实现音乐识别
在商场、咖啡厅里听到一首歌很上头,急切想知道歌名?小米手机的听歌识曲功能就能派上用场。只需几秒钟,就能从嘈杂的环境中准确识别出正在播放的歌曲。这项技术的背后,是先进的音频指纹技术和高效的特征提取算法。那么,小米手机是如何做到快速准确识别歌曲的呢?
声音采样:音频数字化
音乐识别的第一步就是“听”声音。机器听歌的原理是把声音的振动转化为电信号,再把电信号转变成计算机可处理的数字信号。这个把连续的声音波形转化为离散数字信号的过程就叫做采样。采样率决定了信号的捕捉效果。采样率越高,点越密集,原始声音被保留得越完整。下图从左到右展示了采样率由低到高的声音还原效果。
根据Nyquist-Shannon定理,为了捕捉到人类可听的频率(20Hz - 20,000 Hz),采样率需要是其两倍,因此常用44,100 Hz的采样率。
特征提取:从时域到频域
当听歌识曲软件听到一段声音时,最先捕捉到的是音频的时域信号。时域信号是最直接的声音表现形式(也就是我们通常在录音软件中看到的波形图),表示声音振幅如何随时间而变化。但是,时域信号主要呈现的是声音随时间的变化,很难直观反映出声音中包含的频率成分。因此,为了更有效地分析声音的特征,我们需要将其从时域转换到频域。
傅里叶变换(Fourier Transform)正是这样一种工具,可以把时域信号分解为不同频率成分,帮助我们清晰地看到声音的频率和振幅信息。这一方法可以追溯到19世纪初,法国数学家傅里叶(Jean-Baptiste Joseph Fourier)发现,任何复杂的时域信号都可以分解为一系列简单正弦波的叠加。这一分解过程就被称为傅里叶变换,叠加的这些正弦波则被称为傅里叶级数。
通过傅里叶变换,声音被进一步分解为一系列简单的正弦波,每个正弦波都有特定的频率、振幅和相位。下图展示了傅里叶级数如何将一个1 Hz的方波在时域中分解为多个正弦波的频域组合,呈现出其各个频率成分和振幅。
在音乐分析中,通常使用的是离散傅里叶变换(DFT),因为音乐信号是离散采样的数字信号。DFT能将这些离散数据转换为频域信息,更适合计算机处理。然而,由于DFT的算法复杂度,计算量耗时非常大。为了优化这一过程,快速傅立叶变换(FFT)作为DFT的一种改进算法应运而生。FFT是一种分而治之算法,以递归方式将DFT划分为许多较小的DFT,大大加快了变换速度。正因为FFT的高效性,它也被广泛应用于数字信号处理、图像处理、音频分析等领域。
通过傅里叶变换,音频信号就从「时域」转换到了「频域」,以显示音频中每一个时间点包含的频率及其振幅。频谱图能够帮助我们进一步可视化这些信息。
频域信息的可视化:频谱图
频谱图是一种特殊的频域图,它呈现了音频信号的时间、频率和强度三维信息。频谱图就像是歌曲的「心电图」,记录了歌曲每一秒的「心跳」——也就是频率和振幅,很直观地向我们展示了信号中哪些频率在什么时候出现,它们的强弱关系如何。歌曲特征提取的本质就是在这心电图中找到最明显的跳动。
上图就是一个典型的频谱图:X轴表示时间,Y轴表示频率,颜色深浅表示振幅的大小。我们已经看到,频谱图包含了音频中独特的频率信息,那么识曲软件是如何提取这些信息并进行比对的?
音频指纹:提取频率特征
识曲的关键就在于音频指纹。就像人的指纹是独一无二的,每首歌也有自己独特的指纹,音频指纹就是音频信号的数字DNA。提取指纹的过程大致如下:音频被拆分成若干小块,进而提取音频中的显著频率峰值,每个片段的峰值组合就形成了整首歌的音频指纹。
下图展示了一个语音文件在各区段被检测到的频谱图峰值示例。这些峰值点代表了音频中最显著的频率成分,也就是音频指纹的核心构成。
通常情况下,不同的频率范围会被分别处理,这样能够确保对低音、中音和高音的均衡分析,避免混淆或漏掉某些音乐元素。每首歌都会被转换为一个独特的音频指纹,所以就算是同一首歌的不同版本也会因为频率、振幅和时间上的差异而生成不同的指纹,以确保后续最精准的匹配。
在数据库中寻找匹配:哈希表与高效匹配
现在我们有了这首歌的「指纹」,接下来就是要在已有的歌曲数据库中找到与它匹配的指纹,来识别出具体的歌曲。听歌识曲技术将每段音频指纹转换成哈希值(一种编码),这样可以加速在数据库中查找匹配(因为比较哈希值比起去比较整段音频要快得多)。软件会将用户录音的指纹与数据库中的指纹哈希值比对,找到指纹匹配的歌曲。
下面的4幅图展示了从音频信号提取特征到生成哈希值的完整流程:
A. 展示了音频信号的频谱图,显示频率随时间的变化
B. 从中提取峰值,形成星座图(星座图就是把音频中最显著的频率点形成的图,就像把最闪的星星连成星座一样)
C. 把锚点与目标区域内其他点配对,记录频率和时间差来生成组合哈希
D. 生成哈希值,用于后续的音频匹配与识别
最后,识曲算法会考虑时间差,并比对音频片段和数据库中歌曲的时间偏移,确保这些指纹的时间序列匹配,这样可以确保录制歌曲中的任意片段也能准确识别。
小米手机的听歌识曲体验
小米手机用户可以通过多种途径使用听歌识曲功能。最直接的方式是打开小米音乐应用,确保手机已连接至互联网,点击主页面左上角的“听歌识曲”按钮,将手机靠近播放音乐的位置,等待几秒钟,页面将显示识别到的音乐结果,包括音乐名称和下载选项。
除了小米音乐,用户还可以下载专门的听歌识曲应用,如“听歌识曲”APP,这是一款专为歌曲和音乐爱好者设计的应用,可以帮助用户找到想听的歌曲。特色功能包括:听歌识曲、搜歌词找歌、搜歌手名找歌等,用户可以收藏保存已识别的歌曲,避免忘记。
实际应用场景
听歌识曲功能在日常生活中有着广泛的应用场景。无论是在商场、咖啡厅、公交车上,还是在朋友聚会中,只要听到喜欢的音乐,用户都可以随时使用该功能识别歌曲。这种便捷性极大地满足了用户对音乐的好奇心和收藏欲。
此外,听歌识曲功能还为音乐爱好者提供了发现新音乐的渠道。通过识别偶然听到的歌曲,用户可以发现许多平时不会主动搜索的音乐,丰富了自己的音乐库。
未来展望
音频指纹技术的应用远不止于此。除了识别歌曲,它还可以用于版权监控保护,检测音乐中的采样和相似度,甚至可以用于找出某些流派的起源和灵感来源。这种特征提取和匹配技术也为个性化音乐推荐提供了基础。推荐系统通过深度学习分析音乐的情感、风格判断歌曲的情绪(如欢快、悲伤、激动)、根据音乐的旋律、节奏、情感等特征来挖掘用户的喜好。
随着AI技术的不断进步,这种特征提取和匹配的算法正逐步向多模态识别发展,未来将会更精准地结合音频、视频等信息,提高数据的识别速度和准确性。