Jamendo-QA: A Large-Scale Music Question Answering Dataset
Paper β’ 2509.15662 β’ Published β’ 1
Need help to make the dataset viewer work? Make sure to review how to configure the dataset viewer, and open a discussion for direct support.
Jamendo-QA is a large-scale dataset designed for music-related question answering (Music-QA) research.
It is built upon the Jamendo Music collection and supports research in music knowledge QA, audio-text multimodal learning, and music information retrieval (MIR).
| Item | Description |
|---|---|
| Name | Jamendo-QA |
| Domain | Music, Question Answering, MIR |
| Languages | English |
| Tasks | Question Answering, RAG, Multimodal Music Understanding |
| Audio Files | 7,335 unique music tracks |
| Format | Parquet (with embedded audio bytes) + JSON |
| License | Research-only |
| File | Size | Description |
|---|---|---|
jamendo_qa_dataset.parquet |
39 GB | Complete dataset with audio bytes embedded |
metadata.json |
9.6 MB | Track metadata (artist, genre, duration, lyrics, etc.) |
qa_v1.json |
15 MB | QA pairs version 1 (basic metadata-based QA) |
qa_v2.json |
29 MB | QA pairs version 2 (detailed music analysis with captions) |
jamendo_qa_dataset.parquet)
| Feature | Type | Description |
|---|---|---|
file_name |
string | Unique identifier for the audio file |
audio_path |
string | Relative path to the audio file |
audio_bytes |
binary | Raw audio data in WAV format (16kHz) |
duration |
float | Length of the audio in seconds |
artist |
string | Artist name |
genre |
string | Music genre |
speed |
string | Tempo category (slow/medium/fast/high) |
gender |
string | Vocal gender (male/female/instrumental) |
language |
string | Language of lyrics |
lyric |
string | Lyric content |
conversation |
string | JSON-formatted QA conversation pairs |
metadata.json)
| Feature | Type | Description |
|---|---|---|
file_name |
string | Audio file name |
audio_path |
string | Relative path (audio/xxx.wav) |
duration |
int | Duration in seconds |
artist_name |
string | Artist name |
genre |
string | Music genre |
speed |
string | Tempo category |
gender |
string | Vocal gender |
language |
string | Language code |
lyric |
string | Full lyrics text |
qa_v2.json)
| Feature | Type | Description |
|---|---|---|
audio_name |
string | Audio identifier |
audio_path |
string | Relative path to audio |
prompt |
string | Captioning prompt used |
caption |
string | Detailed music analysis/description |
qa_pairs |
array | List of question-answer pairs |
from datasets import load_dataset
# Load the full dataset
dataset = load_dataset("m-a-a-p/Jamendo-QA")
# Access the first example
example = dataset['train'][0]
print(f"File: {example['file_name']}")
print(f"Artist: {example['artist']}")
print(f"Genre: {example['genre']}")
print(f"Duration: {example['duration']} seconds")
# Parse QA conversation
import json
conversation = json.loads(example['conversation'])
for turn in conversation:
print(f"{turn['from']}: {turn['value']}")
import json
with open('data/metadata.json', 'r') as f:
metadata = json.load(f)
print(f"Total tracks: {len(metadata)}")
for track in metadata[:3]:
print(f" - {track['file_name']}: {track['genre']} by {track['artist_name']}")
import json
with open('data/qa_v2.json', 'r') as f:
qa_data = json.load(f)
# Example: Get caption and QA pairs for first track
track = qa_data[0]
print(f"Track: {track['audio_name']}")
print(f"Caption: {track['caption'][:200]}...")
print(f"QA Pairs: {len(track['qa_pairs'])}")
for qa in track['qa_pairs'][:3]:
print(f" Q: {qa['question']}")
print(f" A: {qa['answer']}")
| Statistic | Value |
|---|---|
| Total Tracks | 7,335 |
| Total Duration | ~400 hours |
| Unique Genres | 35+ |
| Unique Artists | 7,000+ |
| QA Pairs (v1) | 29,340 (4 per track) |
| QA Pairs (v2) | 58,680 (8 per track) |
| Total QA Pairs | 88,020 |
If you use Jamendo-QA in your research, please cite:
@misc{koh2025jamendoqalargescalemusicquestion,
title={Jamendo-QA: A Large-Scale Music Question Answering Dataset},
author={Junyoung Koh and Soo Yong Kim and Yongwon Choi and Gyu Hyeong Choi},
year={2025},
eprint={2509.15662},
archivePrefix={arXiv},
primaryClass={cs.MM},
url={https://arxiv.org/abs/2509.15662},
}
Jamendo-QA is available for research purposes only.
Please check the Hugging Face dataset page for download instructions and usage guidelines.
This dataset is built upon the Jamendo Music collection.
We thank the Jamendo community for making their music available for research purposes.