anggars commited on
Commit
dfa8a76
·
1 Parent(s): e77ccba

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +72 -11
README.md CHANGED
@@ -1,19 +1,80 @@
1
-
2
  ---
3
- language: id
 
 
 
4
  tags:
5
- - math-rock
6
- - mbti
7
  - multimodal
8
  - audio-classification
9
  - text-classification
 
 
 
 
 
 
 
 
 
 
10
  ---
11
 
12
- # Neural Mathrock MBTI Classifier
13
- Model multimodal (XLM-RoBERTa + CNN) buat klasifikasi MBTI dari lirik dan audio lagu Math Rock.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
- ### Status Model (Weighted 30 Epochs):
16
- - **Macro F1:** 0.45
17
- - **INTJ:** 1.00
18
- - **INTP:** 0.28
19
- - **ISTP:** 0.53
 
 
1
  ---
2
+ language:
3
+ - en
4
+ - id
5
+ license: mit
6
  tags:
 
 
7
  - multimodal
8
  - audio-classification
9
  - text-classification
10
+ - math-rock
11
+ - midwest-emo
12
+ - emotion-recognition
13
+ - personality-profiling
14
+ - pytorch
15
+ metrics:
16
+ - f1
17
+ - precision
18
+ - recall
19
+ - accuracy
20
  ---
21
 
22
+ # Neural Mathrock: Multimodal Emotion and Personality Analysis
23
+
24
+ This repository hosts a multimodal deep learning framework specialized in the affective and psychological analysis of **Math Rock** and **Midwest Emo** music. By integrating lyrical semantics and acoustic patterns, the system provides a comprehensive profile of a track's emotional and personality-based characteristics.
25
+
26
+ ## Project Objectives
27
+
28
+ The research is structured to prioritize emotional resonance and genre-specific complexities:
29
+
30
+ 1. **Emotion Recognition:** Identifying affective states (e.g., Sadness, Tension, Joy) through the synergy of vocal delivery and lyrical themes.
31
+ 2. **Personality (MBTI) Profiling:** Correlating complex musical arrangements and introspective lyrics with personality archetypes (e.g., INFP, INTJ, INTP).
32
+ 3. **Acoustic Feature Extraction:** Analyzing technical attributes of Math Rock, including non-standard time signatures, syncopation, and clean guitar timbres.
33
+
34
+ ## Technical Architecture: Late Fusion Multimodal
35
+
36
+ The system utilizes a **Late Fusion** approach to process distinct data modalities:
37
+
38
+ ### 1. Lyrical Stream (NLP)
39
+ - **Encoder:** `xlm-roberta-base`
40
+ - **Logic:** Extracts high-level semantic embeddings from song lyrics. The encoder is frozen to maintain stable pre-trained representations given the specialized nature of the dataset.
41
+
42
+ ### 2. Acoustic Stream (DSP)
43
+ - **Model:** 1D-Convolutional Neural Network (CNN)
44
+ - **Input:** 20-channel Mel-frequency cepstral coefficients (MFCC).
45
+ - **Logic:** Captures the "twinkly" guitar textures and erratic drum patterns common in Midwest Emo and Math Rock.
46
+
47
+ ### 3. Fusion Layer
48
+ - **Method:** Feature concatenation (768-dim Text + 256-dim Audio).
49
+ - **Heads:** Multi-task fully connected layers for joint Emotion and Personality classification.
50
+
51
+ ## Performance Summary (Weighted Evaluation)
52
+
53
+ The model was optimized using **Weighted Cross-Entropy Loss** to mitigate significant class imbalances.
54
+
55
+ | Metric | Score |
56
+ | :--- | :--- |
57
+ | **Accuracy** | 0.81 |
58
+ | **Weighted Avg F1** | 0.76 |
59
+ | **Macro Avg F1** | 0.45 |
60
+
61
+ ### Class Highlights:
62
+ - **INTJ:** 1.00 F1-score (Highly distinctive acoustic-lyrical signatures).
63
+ - **INFP:** 0.89 F1-score (Robust detection of the genre's majority archetype).
64
+ - **ISTP:** 0.53 F1-score (Successful identification of niche instrumental patterns).
65
+
66
+ ## Dataset
67
+
68
+ Trained on the [anggars/neural-mathrock](https://huggingface.co/datasets/anggars/neural-mathrock) dataset, containing specialized annotations for emotion, MBTI, and musical features.
69
+
70
+ ## Academic Context
71
+
72
+ This project is an undergraduate thesis developed at **Sekolah Tinggi Teknologi Cipasung (STTC)**, Informatics Department, Class of 2022. It explores the intersection of Music Information Retrieval (MIR) and psychological profiling.
73
+
74
+ ## How to Use
75
 
76
+ ```python
77
+ import torch
78
+ # Example:
79
+ # model.load_state_dict(torch.load("pytorch_model.bin"))
80
+ # model.eval()