啊?音乐也有“指纹”!听歌识曲功能是这样实现的
更新时间:2024-12-09 15:52 浏览量:5
大家可能都有过这样的经历
听到一段熟悉的旋律
但就是想不起它的歌名
这时候打开听歌识曲功能
几秒钟后
对应的歌曲就出现在了屏幕上
这个功能是怎么做到
在如此短的时间内准确识别出歌名的?
音频指纹是识别歌曲的关键
听歌识曲的关键就在于音频指纹(Audio Fingerprinting)。就像人的指纹是独一无二的,每首歌也有自己独特的指纹,音频指纹就是音频信号的数字DNA。它的生成过程大致可以分为以下几个步骤:
音频信号数字化
音乐识别的第一步就是“听”声音。但机器是怎么“听”到歌的呢?声音本质上是一种振动,被人耳接收后,人耳会把这种振动通过耳膜等组织传导为大脑能识别的信号。机器听歌的原理也类似,它把声音的振动转化为电信号,再把电信号转变成计算机可处理的数字信号。
现实世界中的声音是模拟信号,是连续的(好比是一条线),而计算机要处理的则是数字信号,是离散的(好比是多个点),所以,需要通过采样,把连续的声音波形转化为离散数字信号。采样率决定了信号的捕捉效果,采样率越高,点越密集,原始声音被保留得越完整。
特征提取转换后的数字化信号接下来会被送到音频处理模块,进行声音的特征提取,包括从时域转换到频域,特别是通过傅里叶变换(一种数学变换算法),将连续的音频信号分解为不同频率的分量。
时域信号是最直接的声音表现形式(也就是我们通常在录音软件中看到的波形图),而频域信号则能够反映出声音中包含的频率成分。在频域分析之后,得到的频谱图能够让音频的特征信息变得可视化。频谱图记录了歌曲每一秒的频率和振幅,很直观地向我们展示了信号中哪些频率在什么时候出现,它们的强弱关系如何。
音频指纹生成
基于频谱图的特征,就能够得到音频指纹,音频一般会被拆分成若干小块,提取音频中的显著频率峰值,每个片段的峰值组合就形成了整首歌的音频指纹。
通常情况下,不同的频率范围会被分别处理,这样能够确保对低音、中音和高音的均衡分析,避免混淆或漏掉某些音乐元素。
每首歌都会被转换为一个独特的音频指纹,所以,就算是同一首歌的不同版本也会因为频率、振幅和时间上的差异而生成不同的指纹,以确保后续最精准的匹配。
最后,当我们有了一首歌的“指纹”后,接下来要在已有的歌曲数据库中找到与它匹配的指纹,以识别出具体的歌曲。听歌识曲技术会将每段音频指纹转换成哈希值(一种编码),因为相较于比较整段音频,直接比较哈希值要快得多。软件会将用户录音的指纹与数据库中的指纹哈希值比对,找到相匹配的歌曲。
音频指纹的其他用处
音频指纹技术除了能用来听歌识曲,还可以应用在这些方面:
1.个性化音乐推荐
特征提取和匹配技术也为个性化音乐推荐提供了基础。推荐系统根据音乐的旋律、节奏、情感等特征来挖掘用户的喜好,不仅提高推荐的准确性,而且能为用户发现更多与其品味相符的音乐。
2.版权检测、保护
音频指纹技术还可以用于版权的检测和保护,例如检测媒体库内是否有内容相同的歌曲,检测用户上传的视频、音频是否有侵权,是否未经授权使用了某首歌曲。
3.音频播放监测
再比如当广告商需要监测电视或广播是否有按时、按次数地播放了广告,电台可以用此项技术来监测、统计。