歌曲描述数据集(Song Describer Dataset) 使用指南

歌曲描述数据集(Song Describer Dataset) 使用指南

song-describer-dataset The Song Describer dataset is an evaluation dataset made of ~1.1k captions for 706 permissively licensed music recordings. song-describer-dataset 项目地址: https://gitcode.com/gh_mirrors/so/song-describer-dataset

项目介绍

歌曲描述数据集(Song Describer Dataset, SDD) 是一个用于音乐与语言任务评估的数据集,含有大约1100条针对706首授权友好的音乐录音的描述性文本。这个项目旨在支持音乐标注、文本到音乐生成以及音乐与文本检索等任务的研究。数据集由Ilaria Manco等人发布,并在ML for Audio workshop @ NeurIPS 2023上被接受。每个音乐片段都配有一段描述其特色和情感的文字,如“带有复古未来感的鼓机节奏,混杂着气泡般的声音特效和一丝酸性贝斯线条”。

项目快速启动

环境准备

首先,确保拥有Python 3环境。推荐创建一个新的虚拟环境以保持项目独立:

python3 -m venv venv
source venv/bin/activate

接下来,克隆项目仓库并安装依赖:

git clone https://github.com/mulab-mir/song-describer-dataset.git
cd song-describer-dataset
pip install -r requirements.txt

数据下载

数据可从Zenodo获取,执行以下命令下载:

wget -P data https://zenodo.org/record/10072001/files/song_describer.csv
wget -P data https://zenodo.org/record/10072001/files/audio.zip
unzip data/audio.zip -d data/audio

示例用法

数据准备完成后,可以利用提供的代码进行基本分析或实验。例如,通过Jupyter Notebook dataset_stats.ipynb 来复现论文中的数据概览统计。

jupyter notebook dataset_stats.ipynb

应用案例和最佳实践

虽然具体的应用案例和最佳实践细节在当前仓库中没有直接提供,开发者可以利用此数据集训练模型进行音乐描述生成。比如,你可以采用PyTorch或TensorFlow框架,结合Transformer架构来训练一个从音频特征到文本描述的模型。记得将音频处理成适合神经网络的特征向量,然后训练模型最小化描述文本的生成损失。

示例伪代码

import torch
from torchaudio import transforms, load
from transformers import GPT2LMHeadModel, GPT2Tokenizer

# 假设已将音频转为特征序列audio_features
# 并且已有预处理的文本tokenizer
audio_features = ...  # 音频特征序列
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')

input_ids = tokenizer.encode("这段音乐是", return_tensors="pt")
for feature in audio_features:
    # 基于特征预测下一个单词
    outputs = model(input_ids)
    next_token_logits = outputs.logits[:, -1, :]
    
    # 应用温度采样或其他解码策略
    next_tokens = torch.multinomial(F.softmax(next_token_logits, dim=-1), num_samples=1)
    
    input_ids = torch.cat([input_ids, next_tokens], dim=1)

text_description = tokenizer.decode(input_ids[0])
print(text_description)

请注意,这只是一个简化的概念示例,实际应用需细致设计模型结构、训练流程及验证。

典型生态项目

目前,特定的典型生态项目直接关联较少,但Hugging Face社区(提及了HF demo)可能已经开始构建基于SDD的模型演示或类似的集成应用。对于那些希望探索音乐与语言交互的更广泛生态系统而言,Hugging Face Transformers库和相关的模型库提供了丰富的资源和起点。

在进一步研究和实现这些最佳实践时,务必关注与该数据集相关的最新论文、工作坊和在线论坛讨论,以捕捉最新的技术动态和改进方法。


以上就是《歌曲描述数据集(Song Describer Dataset) 使用指南》的主要内容,希望能帮助您顺利起步,探索音乐与自然语言处理的奇妙世界。

song-describer-dataset The Song Describer dataset is an evaluation dataset made of ~1.1k captions for 706 permissively licensed music recordings. song-describer-dataset 项目地址: https://gitcode.com/gh_mirrors/so/song-describer-dataset

Spotify歌曲流派数据集 背景描述数据集包含125种不同音乐流派的Spotify歌曲数据。 每首歌曲都有一些与之相关的音频特征,数据以 CSV 格式存储。 数据说明 字段 说明 track_id 歌曲的Spotify ID artists 演唱这首歌曲的艺术家名字。如果有多个艺术家,他们之间用;隔开 album_name 歌曲出现的专辑名称 track_name 歌曲名称 popularity 歌曲的流行度在0到100之间,100最流行 duration_ms 歌曲长度,单位毫秒 explicit 歌曲是否包含露骨歌词(true表示包含,false表示不包含或不确定) danceability 舞曲度,描述歌曲适合跳舞的程度,基于节奏、速度、强弱等音乐要素综合得出。0.0最不适合跳舞,1.0最适合跳舞。 energy 能量,从0.0到1.0表示音乐的强度和活力。高能量的音乐通常感觉快速、响亮、嘈杂。例如死亡金属高能量,巴赫前奏曲能量低。 key 歌曲所用音阶。整数对应标准音名记号,例如0=C,1=C♯/D♭,2=D等。如果检测不到音阶则为-1。 loudness 歌曲整体的响度,单位分贝(dB)。 mode 模式,表示歌曲使用长调(1)或短调(0)。 speechiness 语音度,检测歌曲中言语成分的存在。越专注语音(例如脱口秀、有声书、诗歌朗诵),值越接近1.0。大于0.66表示可能全都是言语。0.33到0.66之间既可能包含音乐也可能包含言语,例如说唱音乐。小于0.33多为音乐及其他非言语音轨。 acousticness 音乐是否为纯音乐的可信度,从0.0到1.0。1.0代表高可信度该音轨为纯音乐。 instrumentalness 预测音轨是否不包含人声。哼唱声被视为器乐。说唱或朗诵被明确视为人声。值越接近1.0,包含无人声内容的可能性越大。 liveness 检测音轨是否为现场录音。较高的liveness值表示较大可能性该音轨为现场演奏。高于0.8强烈表示为现场。 valence 从0.0到1.0描述音轨传达的音乐情感正面度。正面度高的音乐感觉更正面(如快乐、欢快、欣喜),负面度低的更负面(如悲伤、沮丧、愤怒)。 tempo 估计的歌曲总体节奏,单位每分钟节拍数(BPM)。音乐术语中,节奏直接来自平均拍长。 time_signature 估计的拍号时间符号。时间符号表示每小节中拍号,范围从3到7,对应3/4到7/4拍。 track_genre 歌曲所属的流派 问题描述 基于用户输入或偏好构建推荐系统 基于音频特征和可用类型的进行分类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟潜金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值