遇见数据集

johae201/spotify_audio_features

收藏
Hugging Face2026-05-06 更新2026-05-31 收录
官方服务:

资源简介:

该数据集包含一个全面的Spotify曲目集合,结合了丰富的音频特征分析和曲目元数据。它被格式化为高性能的**Parquet**数据集(使用ZStandard压缩),优化了大规模表格分析、机器学习和推荐系统研究。

--- 许可证:其他 许可证名称:Spotify开发者条款 许可证链接:https://developer.spotify.com/terms 任务类别: - 表格回归 - 表格分类 - 特征提取 标签: - 音乐 - 艺术 友好名称:Spotify音频特征 规模类别: - 100M<n<1B --- # Spotify曲目与音频特征数据集 ## 概述 本数据集收录了全面的Spotify曲目集合,整合了丰富的音频特征分析与曲目元数据。其采用高性能**Parquet**格式(ZStandard压缩),针对大规模表格分析、机器学习与推荐系统研究进行了优化。 ## 数据来源 本数据集的原始数据最初由**Anna's Archive**收集并托管。 * **原始博客文章:** [Anna's Archive:备份Spotify](https://annas-archive.org/blog/backing-up-spotify.html) * **种子文件:** [spotify_2024 (Anna's Archive)](https://annas-archive.org/torrents/spotify) 本仓库作为原始转储的清理、合并与技术优化版本,旨在为希望开展数据分析的研究人员提供便利,无需处理原始的100GB以上SQLite文件。 ## 技术构建 原始发布版本包含多个独立的SQLite 3数据库。本数据集通过**DuckDB**对两张超大型表进行内存外合并构建而成: 1. `track_metadata.sqlite3`(表:`tracks`) 2. `audio_features.sqlite3`(表:`track_audio_features`) ### 处理细节 * **合并键:** 两张表通过Spotify曲目ID进行关联(元数据中的`id`与音频特征中的`track_id`)。 * **类型安全:** 原始SQLite文件存在弱类型问题(例如整数列中存储浮点数)。合并过程中,所有列均被显式转换为严格类型(计数/枚举类型使用`BIGINT`,连续指标使用`DOUBLE`),以确保模式一致性。 * **格式:** 数据存储为**Apache Parquet**格式。 * **压缩:** 采用ZStandard(`ZSTD`)压缩,在保证快速读取速度的同时最大限度减少磁盘占用。 ## 数据集结构 ### 音频特征 > 官方API文档:<https://developer.spotify.com/documentation/web-api/reference/get-audio-features> * **`track_id`**:曲目对应的Spotify ID(Base62编码)。 * **`null_response`**:若API针对整个请求返回空值则为true。 * **`duration_ms`**:曲目时长,单位为毫秒。 * **`time_signature`**:估算的拍号。拍号(节拍)是一种记谱惯例,用于指定每小节的节拍数。拍号取值范围为3至7,分别对应“3/4拍”至“7/4拍”。 * **`tempo`**:曲目整体估算节拍速度,单位为每分钟节拍数(BPM)。在音乐术语中,节拍速度指乐曲的快慢,直接由平均节拍时长推导而来。 * **`key`**:曲目所在的调。整数通过标准音高类(<https://en.wikipedia.org/wiki/Pitch_class>)记法映射至音高。例如,0代表C,1代表C♯/D♭,2代表D,依此类推。若未检测到调,则取值为-1。 * **`mode`**:调式标识曲目所属的调性(大调或小调),即旋律内容所源自的音阶类型。大调以1表示,小调以0表示。 * **`danceability`**:舞蹈适应性基于节奏稳定性、节拍强度与整体规律性等多项音乐元素综合评估曲目是否适合跳舞。取值范围为0.0至1.0,0.0代表最不适宜跳舞,1.0代表最适宜跳舞。 * **`energy`**:能量是取值范围为0.0至1.0的指标,代表对强度与活跃度的感知度量。通常高能量曲目节奏快、音量大且嘈杂,例如死亡金属具有高能量值,而巴赫前奏曲则得分较低。影响该属性的感知特征包括动态范围、感知响度、音色、起奏速率与整体熵。 * **`loudness`**:曲目整体响度,单位为分贝(dB)。响度值为全曲平均响度,可用于比较不同曲目的相对响度。响度是声音的属性,是物理强度(振幅)的主要心理关联指标。典型取值范围为-60至0 dB。 * **`speechiness`**:语音性检测曲目是否包含口语内容。录音越接近纯口语(例如脱口秀、有声书、诗歌),该属性值越接近1.0。值高于0.66的曲目大概率完全由口语组成;值介于0.33与0.66之间的曲目可能同时包含音乐与口语,包括分段或分层的情况,例如说唱音乐;值低于0.33的曲目大概率为音乐及其他非口语内容。 * **`acousticness`**:置信度指标,取值范围为0.0至1.0,代表曲目为原声的置信度。1.0代表极高置信度确认曲目为原声。 * **`instrumentalness`**:预测曲目是否不含人声。“Ooh”与“aah”类声音在此语境中被视为器乐声。说唱或口语曲目显然属于“人声”范畴。instrumentalness值越接近1.0,曲目不含人声的可能性越高。值高于0.5可视为器乐曲目,但值越接近1.0,置信度越高。 * **`liveness`**:检测录音中是否存在观众。更高的liveness值代表曲目为现场演奏的概率更高。值高于0.8则强烈表明曲目为现场录制。 * **`valence`**:取值范围为0.0至1.0的指标,描述曲目传达的音乐积极程度。高valence值的曲目听起来更积极(例如快乐、愉悦、兴奋),而低valence值的曲目则听起来更消极(例如悲伤、沮丧、愤怒)。 ### 曲目元数据 > 官方API文档:<https://developer.spotify.com/documentation/web-api/reference/get-track> * **`id`**:曲目对应的Spotify ID(Base62编码)。 * **`name`**:曲目标题。 * **`popularity`**:曲目流行度。取值范围为0至100,100代表最流行。曲目流行度由算法计算,主要基于曲目总播放量与播放时间。通常而言,近期播放量高的歌曲比过往播放量高的歌曲拥有更高的流行度。重复曲目(例如同一张单曲与专辑中的同一曲目)会被独立评分。艺术家与专辑流行度由曲目流行度通过数学方式推导得出。**注意**:*流行度值可能滞后于实际流行度数日,不会实时更新。* ## 潜在应用场景 本数据集适用于大规模数据科学项目,包括: 1. **表格回归:** 基于音频特征预测歌曲的**流行度**(例如“更快的歌曲是否更受欢迎?”)。 2. **表格分类:** 基于声学特征预测歌曲的**调**、**调式**或**拍号**。 3. **推荐系统:** 使用基于内容的过滤寻找歌曲的“最近邻”。通过将`valence`、`energy`与`danceability`等特征作为向量,可以计算余弦相似度以推荐“听感相似”的曲目。 4. **音乐分析:** 分析随时间变化的音乐制作趋势(例如“音乐是否变得更响亮或更悲伤?”)。 ## 法律声明与免责条款 **许可证:未指定/专有(仅可用于研究)** 本数据集为衍生作品,仅用于教育与研究目的。尽管编译、清理与格式转换工作体现了[**“辛勤劳动原则”**](https://en.wikipedia.org/wiki/Sweat_of_the_brow),旨在使这些文件更易于访问,但底层数据点、ID系统与声学指标均为**Spotify AB**的知识产权。 我们不对内容主张任何所有权。本数据集按“现状”提供,旨在为研究人员节省合并原始归档的计算成本。用户需遵守Spotify的使用条款以处理相关数据。

提供机构:
johae201
二维码
社区交流群
二维码
科研交流群
商业服务