Views
No views yet


1from music2emo import Music2emo
2
3input_audio = "inference/input/test.mp3"
4
5music2emo = Music2emo()
6output_dic = music2emo.predict(input_audio)
7
8valence = output_dic["valence"]
9arousal = output_dic["arousal"]
10predicted_moods =output_dic["predicted_moods"]
11
12print("\n🎵 **Music Emotion Recognition Results** 🎵")
13print("-" * 50)
14print(f"🎭 **Predicted Mood Tags:** {', '.join(predicted_moods) if predicted_moods else 'None'}")
15print(f"💖 **Valence:** {valence:.2f} (Scale: 1-9)")
16print(f"⚡ **Arousal:** {arousal:.2f} (Scale: 1-9)")
17print("-" * 50)
181git clone https://github.com/AMAAI-Lab/Music2Emotion
2cd Music2Emotion
3pip install -r requirements.txttorch based on your CUDA versiondataset/
├── jamendo/
│ └── mp3/**/*.mp3 # MTG-Jamendo audio files (nested structure)
├── pmemo/
│ └── mp3/*.mp3 # PMEmo audio files
├── deam/
│ └── mp3/*.mp3 # DEAM audio files
└── emomusic/
└── mp3/*.mp3 # EmoMusic audio filesconfig/: Configuration filesdataset/: Dataset directoriesdataset_loader/: Dataset loading utilitiesutils/: Other utilitiesmodel/
linear.py: Fully connected (FC) layer with MERT featureslinear_attn_ck.py: FC layer with MERT and musical features (chord/key)linear_mt_attn_ck.py: Multitask FC layer with MERT and musical features (chord/key)preprocess/
feature_extractor.py: MERT feature extractionsaved_models/: Saved model weight filesdata_loader.py: Data loading scripttrain.py: Training scripttest.py: Testing scripttrainer.py: Training pipeline scriptinference.py: Inference scriptmusic2emo.py: Video2Music module that outputs emotion from input audiodemo.ipynb: Jupyter notebook for Quickstart Guide python train.py python test.py| Training datasets | MTG-Jamendo (J.) | DEAM (D.) | EmoMusic (E.) | PMEmo (P.) |
|---|---|---|---|---|
| PR-AUC / ROC-AUC | R² V / R² A | R² V / R² A | R² V / R² A | |
| Single dataset (X) | 0.1521 / 0.7806 | 0.5131 / 0.6025 | 0.5957 / 0.7489 | 0.5360 / 0.7772 |
| J + D | 0.1526 / 0.7806 | 0.5144 / 0.6046 | - | - |
| J + E | 0.1540 / 0.7809 | - | 0.6091 / 0.7525 | - |
| J + P | 0.1522 / 0.7806 | - | - | 0.5401 / 0.7780 |
| J + D + E + P | 0.1543 / 0.7810 | 0.5184 / 0.6228 | 0.6512 / 0.7616 | 0.5473 / 0.7940 |
| Model | PR-AUC ↑ | ROC-AUC ↑ |
|---|---|---|
| lileonardo | 0.1508 | 0.7747 |
| SELAB-HCMUS | 0.1435 | 0.7599 |
| Mirable | 0.1356 | 0.7687 |
| UIBK-DBIS | 0.1087 | 0.7046 |
| Hasumi et al. | 0.0730 | 0.7750 |
| Greer et al. | 0.1082 | 0.7354 |
| MERT-95M | 0.1340 | 0.7640 |
| MERT-330M | 0.1400 | 0.7650 |
| Proposed (Ours) | 0.1543 | 0.7810 |
1@misc{kang2025unifiedmusicemotionrecognition,
2 title={Towards Unified Music Emotion Recognition across Dimensional and Categorical Models},
3 author={Jaeyong Kang and Dorien Herremans},
4 year={2025},
5 eprint={2502.03979},
6 archivePrefix={arXiv},
7 primaryClass={cs.SD},
8 url={https://arxiv.org/abs/2502.03979},
9}