beginneraudio
Music Genre Classification
Classify music clips into genres and subgenres with mood and instrumentation tags.
Configuration Fileconfig.yaml
# 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 Datasample-data.json
[
{
"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
View on GitHub
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.yaml
Details
Annotation Types
radiomultiselect
Domain
musicentertainment
Use Cases
genre-classificationmusic-tagging
Tags
audiomusicgenreclassificationtagging
Found an issue or want to improve this design?
Open an IssueRelated Designs
Audio Transcription Review
Review and correct automatic speech recognition transcriptions with waveform visualization.
likertmultiselect
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 (Guo et al., SIGDIAL 2024).
radiomultiselect
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 categorization of hate type. Based on SemEval-2019 Task 5 (HatEval).
radiomultiselect