找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 42|回复: 0

谷歌的下一代音乐识别

[复制链接]

545

主题

0

回帖

1677

积分

金牌会员

积分
1677
发表于 2024-12-10 16:37:16 | 显示全部楼层 |阅读模式
2017 年,我们在 Pixel 2 上推出了“闻曲知音” ,利用深度神经网络为移动设备带来低功耗、始终在线的音乐识别功能。在开发“闻曲知音”的过程中,我们的目标是打造一款小巧高效的音乐识别器,它只需要数据库中的每个曲目都有一个非常小的指纹,从而可以完全在设备上运行音乐识别,而无需互联网连接。事实证明,“闻曲知音”不仅可作为设备内置音乐识别器,而且其准确性和效率大大超过了我们当时的服务器端系统“声音搜索”,后者是在深度神经网络广泛使用之前构建的。自然而然,我们想知道能否将支持“闻曲知音”的相同技术引入到服务器端“声音搜索”,目标是让 Google 的音乐识别功能成为全球最佳。
最近,我们推出了新版“声音搜索”,该版本采用了“正在播放”所用的一些相同技术。您可以通过任何 Android 手机上的 Google 搜索应用或 Google 助理使用它。只需开始语音查询,如果您附近正在播放音乐,就会弹出“这是什么歌? ”建议供您点击。否则,您可以直接问“嘿 Google,这是什么歌? ”使用最新版本的声音搜索,您将获得比以往更快、更准确的结果!
正在播放与声音搜索
“闻曲知音”将音乐识别技术小型化,使其足够小巧高效,可以在移动设备上连续运行,而不会对电池造成明显影响。为此,我们开发了一个全新的系统,使用卷积神经网络将几秒钟的音频转换为独特的“指纹”。然后,我们会将此指纹与设备内置的数据库进行比较,该数据库包含数万首歌曲,并定期更新以添加新发布的曲目并删除不再流行的曲目。相比之下,服务器端的声音搜索系统则大不相同,它必须匹配的歌曲数量是“闻曲知音”的 1000 倍左右。在音乐库规模大得多的情况下,让声音搜索更快、更准确,这带来了一些独特的挑战。但在深入讨论之前,我们先来了解一下“闻曲知音”的工作原理。
Now Play 的核心匹配流程
“正在播放”通过将一段八秒音频的音乐特征投射到由七个两秒片段以 1 秒为间隔组成的低维嵌入空间序列中来生成音乐“指纹”,得到如下分割:
然后,“正在播放”会在设备上的歌曲数据库中搜索类似的嵌入序列,该数据库是使用相同的神经网络处理流行音乐生成的。数据库搜索使用两阶段算法来识别匹配的歌曲,其中第一阶段使用快速但不准确的算法,搜索整个歌曲数据库以找到几个可能的候选歌曲,第二阶段对每个候选歌曲进行详细分析,以确定哪首歌曲(如果有的话)是正确的。
匹配,第 1 阶段:寻找最佳候选对象:对于每个嵌入,Now Playing 都会在设备上的歌曲数据库中执行最近邻搜索,以查找相似的嵌入。数据库使用空间分区和矢量量化的混合来高效搜索数百万个嵌入向量。由于音频缓冲区有噪声,因此此搜索是近似的,并且并非每个嵌入都会在数据库中找到与正确歌曲相近的匹配项。但是,在整个剪辑中,找到与正确歌曲相近的多个嵌入的机会非常高,因此搜索范围缩小到获得多次匹配的一小组歌曲。
匹配,第 2 阶段:最终匹配:由于上面使用的数据库搜索是近似的,Now Playing 可能无法找到与我们的查询中的某些嵌入相近的歌曲嵌入。因此,为了计算准确的相似度得分,Now Playing 会检索数据库中每首歌曲的所有可能与填补“空白”相关的嵌入。然后,给定来自音频缓冲区的嵌入序列和来自设备数据库中歌曲的另一个嵌入序列,Now Playing 会成对估计它们的相似度,并将估计值相加以获得最终匹配得分。
使用一系列嵌入而不是单个嵌入对于“正在播放”的准确性至关重要。指纹识别神经网络不够准确,无法仅从单个嵌入中识别歌曲——每个嵌入都会产生大量误报结果。但是,结合多个嵌入的结果可以轻松消除误报,因为正确的歌曲将与每个嵌入匹配,而误报匹配只会接近输入音频中的一个或两个嵌入。
扩大“声音搜索”服务器的“正在播放”功能
到目前为止,我们已经详细介绍了“闻曲知音”如何将歌曲与设备上的数据库进行匹配。从拥有数万首歌曲的“闻曲知音”转变为拥有数千万首歌曲的“声音搜索”的最大挑战是,有上千倍的歌曲可能会产生误报。为了在不进行任何其他更改的情况下弥补这一缺陷,我们必须提高识别阈值,这意味着需要更多音频才能获得确认的匹配。但是,新“声音搜索”服务器的目标是能够比“闻曲知音”更快地进行匹配,而不是更慢,因此我们不希望人们等待 10 多秒才能得到结果。
由于“声音搜索”是服务器端系统,因此它不会像“正在播放”那样受到处理和存储限制。因此,我们对指纹识别方式进行了两项重大更改,这两项更改都以牺牲服务器资源为代价提高了准确性:
我们将所用神经网络的大小增加了四倍,并将每个嵌入从 96 维增加到 128 维,这减少了神经网络将高维输入音频打包到低维嵌入中所需的工作量。这对于提高第二阶段的质量至关重要,因为这在很大程度上取决于原始神经网络输出的准确性。
我们将嵌入的密度增加了一倍——事实证明,每 0.5 秒而不是每 1 秒对音频进行指纹识别不会降低单个嵌入的质量,而且通过使可用于匹配的嵌入数量增加一倍,给我们带来了巨大的提升。
我们还决定根据歌曲流行度来加权我们的索引 - 实际上,对于流行歌曲,我们降低匹配阈值,而对于冷门歌曲,我们提高匹配阈值。总的来说,这意味着我们可以几乎无限期地将更多(冷门)歌曲添加到我们的数据库中,而不会减慢我们的识别速度。
结论
在推出“闻曲知音”时,我们最初打算使用机器学习来创建强大且足够紧凑的音频指纹,以便完全在手机上运行。事实证明,我们确实创建了一个非常好的全方位音频指纹识别系统,并且在那里开发的理念可以很好地应用于服务器端“声音搜索”系统,尽管“声音搜索”面临的挑战完全不同。
不过,我们仍然认为还有改进的空间——当音乐非常安静或在非常嘈杂的环境中时,我们并不总是能够匹配,而且我们相信我们可以让系统变得更快。我们将继续努力应对这些挑战,目标是提供下一代音乐识别。我们希望您下次想要知道正在播放什么歌曲时尝试一下!您可以在主屏幕上放置一个快捷方式,如下所示:
致谢
我们要感谢 Micha Riser、Mihajlo Velimirovic、Marvin Ritter、Ruiqi Guo、Sanjiv Kumar、Stephen Wu、Diego Melendo Casado、Katia Naliuka、Jason Sanders、Beat Gfeller、Julian Odell、Christian Frank、Dominik Roblek、Matt Sharifi 和 Blaise Aguera y Arcas。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|绿色天空实验室

GMT+8, 2024-12-28 02:23 , Processed in 0.078519 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表