Music Genre Classification
Classify music clips into genres and subgenres with mood and instrumentation tags.
Get This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/audio/music-genre-classification
potato start config.yamlConfiguration File
# Music Genre Classification Configuration
# Classify music clips into genres with mood and instrumentation tags
task_dir: "."
annotation_task_name: "Music Genre Classification"
data_files:
- "data/music_clips.json"
item_properties:
id_key: "id"
text_key: "title"
audio_key: "audio_url"
text_display_key: "title"
user_config:
allow_all_users: true
annotation_schemes:
- annotation_type: "radio"
name: "primary_genre"
description: "What is the primary genre of this music?"
labels:
- name: "Rock"
key_value: "1"
- name: "Pop"
key_value: "2"
- name: "Hip-Hop/Rap"
key_value: "3"
- name: "Electronic/Dance"
key_value: "4"
- name: "Jazz"
key_value: "5"
- name: "Classical"
key_value: "6"
- name: "R&B/Soul"
key_value: "7"
- name: "Country"
key_value: "8"
- name: "Folk/Acoustic"
key_value: "9"
- name: "Metal"
key_value: "0"
- annotation_type: "multiselect"
name: "subgenres"
description: "Select any applicable subgenres"
labels:
- name: "Indie"
- name: "Alternative"
- name: "Punk"
- name: "Blues"
- name: "Reggae"
- name: "Latin"
- name: "World Music"
- name: "Ambient"
- name: "Lo-fi"
- name: "Synthwave"
- annotation_type: "multiselect"
name: "mood"
description: "What mood does this music convey?"
labels:
- name: "Happy/Upbeat"
- name: "Sad/Melancholic"
- name: "Energetic"
- name: "Calm/Relaxing"
- name: "Aggressive"
- name: "Romantic"
- name: "Dark/Mysterious"
- name: "Nostalgic"
- annotation_type: "multiselect"
name: "instruments"
description: "What instruments are prominent?"
labels:
- name: "Vocals"
- name: "Electric Guitar"
- name: "Acoustic Guitar"
- name: "Piano/Keys"
- name: "Drums"
- name: "Bass"
- name: "Synthesizer"
- name: "Strings"
- name: "Brass"
- name: "Woodwinds"
- annotation_type: "radio"
name: "tempo"
description: "Approximate tempo"
labels:
- name: "Slow (< 80 BPM)"
- name: "Medium (80-120 BPM)"
- name: "Fast (> 120 BPM)"
audio_display:
show_waveform: true
playback_controls: true
allow_speed_control: false
output: "annotation_output/"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
Sample Data
[
{
"id": "music_001",
"audio_url": "https://example.com/audio/clip1.mp3",
"title": "Track A - 30 second preview",
"duration": 30
},
{
"id": "music_002",
"audio_url": "https://example.com/audio/clip2.mp3",
"title": "Track B - 30 second preview",
"duration": 30
}
]
// ... and 1 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/audio/music-genre-classification
potato start config.yamlDetails
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an Issue(opens in a new tab)Related Designs
Audio Transcription Review
Review and correct automatic speech recognition transcriptions with waveform visualization.
AudioHate - Audio Hate Speech Detection
Audio hate speech detection with explanations. Annotators classify audio clips for hate speech presence, identify target groups, and note acoustic indicators such as tone, emphasis, and prosody (An et al., SIGDIAL 2024).
HatEval - Multilingual Detection of Hate Speech Against Immigrants and Women
Detection and classification of hate speech targeting immigrants and women on Twitter, including fine-grained annotation of target range (individual vs. generic) and aggressiveness. Based on SemEval-2019 Task 5 (HatEval).