> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# AI驱动的音乐推荐
- URL: https://www.hubwiz.com/blog/ai-powered-music-recommendations/
- Published: 2024-11-13T02:54:23.000Z
- Updated: 2024-11-13T02:54:23.000Z
- Description: 直接用机器学习模型处理这些原始数据可能非常繁琐且效率低下，本文介绍如何使用Mel频谱构造音频的嵌入向量，然后基于嵌入向量实现音乐推荐。
- Author: admin
- Tags: APPLICATION, EMBEDDING, MEL-SPECTROGRAM, CNN, TRIPLET LOSS, T-SNE, PCA, GTZAN MUSIC GENRE DATASET, FMA DATASET, LIBRISPEECH ASR CORPUS, MUSIC RECOMMENDATION, #Import 2026-10-14 14:41

探索机器学习中的想法是我的冒险方式。最近，我对嵌入很感兴趣——这是一种将复杂数据变成更简单的东西的工具，你可以实际使用的东西。为了让事情变得有趣，我决定深入研究音频数据。下面介绍一下什么是嵌入以及如何使用它们。

## 1、什么是嵌入？

嵌入（embedding）是机器学习中强大的工具，可将复杂数据转换为更简单的数字表示。将嵌入想象成将一本书翻译成摘要。摘要捕捉了要点，但没有所有细节，使其更易于使用。同样，嵌入将复杂的数据提炼成其他系统和算法可以更好地理解和分析的格式。

嵌入用于各种领域，从自然语言处理到图像识别和大型数据集的聚类。但是，在本文中，我们将重点介绍它们在音频处理中的应用，尤其是音乐推荐。

## 2、为什么对音频使用嵌入？

音频数据本质上很复杂。一首歌曲可以包含数百万个数据点，捕捉每一个振动和细微差别。直接用机器学习模型处理这些原始数据可能非常繁琐且效率低下。这就是嵌入的作用所在——它们简化了数据，突出最重要的特征而忽略其余部分。

想象一下，通过阅读每本书的每一个字来组织一个庞大的图书馆。这将是耗时且不切实际的。相反，你可以使用摘要或关键字对它们进行分类。同样，嵌入允许我们用几个数字来表示歌曲，这些数字可以捕捉歌曲的本质，从而更容易组织和推荐音乐。

## 3、基于嵌入的歌曲推荐

音乐本质上是空气以我们的耳朵解释为声音的模式振动。当我们录制音乐时，我们每秒测量这些振动很多次——通常每秒 44,100 次。因此，要录制一首 5 分钟的歌曲，我们需要超过 1300 万次测量。这是海量的数据！

想象一下，你有一个包含 10,000 首歌曲的库，每首歌曲大约 5 分钟长。将所有这些原始数据输入机器学习模型是不切实际的。大多数算法都会难以处理音频片段的庞大音量和可变长度。

但我们真的需要每首歌曲的每一个微小细节吗？可能不需要。我们更感兴趣的是节奏、旋律、节奏和情绪等特征。你能分辨出这三种音频波形之间的区别吗？

![](https://www.hubwiz.com/blog/content/images/2024/11/image-980.png)

剧透：它们都是同一首歌

我也不能，只是看着它们。这表明原始波形可能不是我们任务的最佳表示。

## 4、使用梅尔频谱图预处理音频

为了使数据更易于管理，可以将音频波形转换为梅尔频谱图 (Mel-spectrogram) 。梅尔频谱图以频率和响度随时间的变化来表示音频，这更接近人类对声音的感知。

![](https://www.hubwiz.com/blog/content/images/2024/11/image-981.png)

通过像这样转换音频，我们可以降低复杂性并专注于与分析更相关的特征。

## 5、构建嵌入模型

接下来，我们需要一个模型来处理这些梅尔频谱图。一种常见的选择是卷积神经网络 (CNN)。CNN 非常擅长识别数据中的模式。然而，标准 CNN 假设模式无论位置如何都是相同的，就像在图片中的任何位置识别苹果一样。

在音频中，位置非常重要。频谱图顶部的声音可能代表人声，而底部的声音可能是低音。为了解决这个问题，我们在频谱图中添加了位置编码。这些编码有助于模型了解它在数据中的位置。

![](https://www.hubwiz.com/blog/content/images/2024/11/image-982.png)

左：原始频谱图，中间+右：静态位置编码

有不同类型的位置编码，例如可学习或静态编码。你可能需要进行实验以查看哪种编码最适合你的特定情况。

## 6、使用Triplet损失训练嵌入

训练嵌入需要教会模型哪些样本相似，哪些不相似。一种有效的方法是使用Triplet损失。

工作原理如下：

- 锚点：随机样本。
- 正样本：与锚点相似的样本（例如，来自同一首歌曲的另一个片段）。
- 负样本：不同的样本（例如，来自不同艺术家的片段）。

目标是最小化锚点和正样本之间的距离，同时最大化锚点和负样本之间的距离。

![](https://www.hubwiz.com/blog/content/images/2024/11/image-983.png)

Triplet损失使锚点和正样本更接近，同时将负样本推开

我们可以通过从歌曲中截取片段来创建自己的训练数据。来自同一首歌曲的片段被认为是相似的，而来自不同歌曲的片段则不相似。

## 7、可视化嵌入

训练后，我们可以使用嵌入将整个歌曲库映射到低维空间中。使用 t-SNE 或 PCA 等技术，我们可以根据 o 可视化歌曲之间的相互关系n 学习到的特征。

![](https://www.hubwiz.com/blog/content/images/2024/11/image-984.png)

将嵌入应用于音频库时，你可以探索隐式结构，例如相似的歌曲

这种可视化可以揭示相似歌曲、流派或情绪的集群，这对推荐系统很有价值。

有了大约 100 小时的数据，你可以在几个小时内训练这样的嵌入。 嵌入将复杂的音频数据简化为更易于使用的格式。 这种方法不仅可以应用于音乐，还可以应用于任何难以直接处理的复杂数据，例如文本或图像。

## 8、从哪里获取音频数据

在深入构建音乐推荐的嵌入之前，你需要一个可靠的数据集。 从任何来源提取歌曲都很诱人，但大多数音乐数据受到版权限制。 为了避免法律问题并保持可访问性，最好坚持使用专门为研究设计的开放数据集。以下是音频研究中常用的一些流行的、公开可用的数据集：

- GTZAN 音乐流派数据集：这是一个用于流派分类的经典数据集，包含 10 个流派的 1,000 条音轨。虽然它的大小有限，但它非常适合尝试基于流派的音频嵌入。你可以从 [Hugging Face ](https://huggingface.co/datasets/Lehrig/GTZAN-Collection?ref=hubwiz.com)下载它。
- FMA（免费音乐档案）数据集：该数据集包含大量音轨，从小子集到 343 GB 的完整集。它按流派组织良好，适合涉及相似性或推荐的任务。你可以通过 [FMA 的 GitHub 存储库](https://github.com/mdeff/fma?ref=hubwiz.com)访问它。
- LibriSpeech ASR 语料库：虽然主要用于语音识别，但该数据集包含数千小时的英语有声读物录音。如果你想使用口语嵌入或分析音频中的语言，这是一个极好的资源。你可以在 [OpenSLR](https://openslr.org/?ref=hubwiz.com) 上找到它。

## 9、嵌入的其他应用

虽然本文重点介绍音频嵌入，但重要的是要认识到嵌入广泛应用于各个领域：

- 自然语言处理 (NLP)：单词和句子被转换成捕捉其含义的向量，从而实现翻译和情感分析等任务。
- 图像识别：图像被转换成有助于识别物体、面部等的数字表示。
- 推荐系统：除了音乐之外，嵌入还可以根据用户偏好帮助推荐产品、电影和其他内容。

嵌入用途广泛，可以根据不同类型的数据和应用程序进行定制。

## 10、结束语

嵌入是处理机器学习中复杂数据的强大工具。通过将原始音频转换为有意义的数字表示，我们可以构建有效的推荐系统等。虽然本文重点介绍音频嵌入，但同样的原则也适用于其他各种领域，使嵌入成为机器学习工具包中必不可少的技术。

你应该从中学到什么？每当处理过于复杂或高维的数据时，请考虑嵌入是否能帮到您。考虑创建原始数据的更简单表示，并在其上执行任务。

---

原文链接：[AI for Audio Recommendations](https://medium.com/@franz.bender/ai-for-audio-recommendations-e38555c59d17?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处