-
+ |
|
@@ -359,14 +359,14 @@ genre_rosamerica
Size: 400 tracks, 50 per genre
Classes: classical, dance, hip-hop, jazz, pop, rhythm'n'blues, rock, speech
Guaus, E. (2009). Audio content processing for automatic music genre classification: descriptors, databases, and classifiers (Doctoral dissertation, Universitat Pompeu Fabra, Barcelona).
- Accuracy: 87.557604%
+ Accuracy: 87.56%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
+ |
|
@@ -497,183 +497,183 @@ genre_tzanetakis
Size: 1000 track excerpts, 100 per genre
Tzanetakis, G., & Cook, P. (2002). Musical genre classification of audio signals. IEEE transactions on Speech and Audio Processing, 10(5), 293-302.
Sturm, B. L. (2012). An analysis of the GTZAN music genre dataset. In 2nd International ACM Workshop on Music Information Retrieval with User-centered and Multimodal Strategies (pp. 7-12).
- Accuracy: 75.528701%
+ Accuracy: 75.53%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- blu |
- cla |
- cou |
- dis |
- hip |
- jaz |
- met |
- pop |
- reg |
- roc |
- |
- Proportion |
-
-
- blu |
- 78.00 78 blu (out of 100) classified as blu |
- 1.00 1 blu (out of 100) classified as cla |
- 8.00 8 blu (out of 100) classified as cou |
- 3.00 3 blu (out of 100) classified as dis |
- 1.00 1 blu (out of 100) classified as hip |
- 1.00 1 blu (out of 100) classified as jaz |
- 3.00 3 blu (out of 100) classified as met |
- 0.00 0 blu (out of 100) classified as pop |
- 2.00 2 blu (out of 100) classified as reg |
- 3.00 3 blu (out of 100) classified as roc |
- blu |
- 10.07 % |
-
-
- cla |
- 2.15 2 cla (out of 93) classified as blu |
- 92.47 86 cla (out of 93) classified as cla |
- 1.08 1 cla (out of 93) classified as cou |
- 2.15 2 cla (out of 93) classified as dis |
- 0.00 0 cla (out of 93) classified as hip |
- 0.00 0 cla (out of 93) classified as jaz |
- 0.00 0 cla (out of 93) classified as met |
- 1.08 1 cla (out of 93) classified as pop |
- 0.00 0 cla (out of 93) classified as reg |
- 1.08 1 cla (out of 93) classified as roc |
- cla |
- 9.37 % |
-
-
- cou |
- 1.00 1 cou (out of 100) classified as blu |
- 1.00 1 cou (out of 100) classified as cla |
- 78.00 78 cou (out of 100) classified as cou |
- 7.00 7 cou (out of 100) classified as dis |
- 0.00 0 cou (out of 100) classified as hip |
- 2.00 2 cou (out of 100) classified as jaz |
- 0.00 0 cou (out of 100) classified as met |
- 4.00 4 cou (out of 100) classified as pop |
- 3.00 3 cou (out of 100) classified as reg |
- 4.00 4 cou (out of 100) classified as roc |
- cou |
- 10.07 % |
-
-
- dis |
- 0.00 0 dis (out of 100) classified as blu |
- 1.00 1 dis (out of 100) classified as cla |
- 5.00 5 dis (out of 100) classified as cou |
- 71.00 71 dis (out of 100) classified as dis |
- 3.00 3 dis (out of 100) classified as hip |
- 1.00 1 dis (out of 100) classified as jaz |
- 2.00 2 dis (out of 100) classified as met |
- 7.00 7 dis (out of 100) classified as pop |
- 5.00 5 dis (out of 100) classified as reg |
- 5.00 5 dis (out of 100) classified as roc |
- dis |
- 10.07 % |
-
-
- hip |
- 2.00 2 hip (out of 100) classified as blu |
- 1.00 1 hip (out of 100) classified as cla |
- 0.00 0 hip (out of 100) classified as cou |
- 6.00 6 hip (out of 100) classified as dis |
- 73.00 73 hip (out of 100) classified as hip |
- 0.00 0 hip (out of 100) classified as jaz |
- 3.00 3 hip (out of 100) classified as met |
- 3.00 3 hip (out of 100) classified as pop |
- 11.00 11 hip (out of 100) classified as reg |
- 1.00 1 hip (out of 100) classified as roc |
- hip |
- 10.07 % |
-
-
- jaz |
- 7.00 7 jaz (out of 100) classified as blu |
- 4.00 4 jaz (out of 100) classified as cla |
- 4.00 4 jaz (out of 100) classified as cou |
- 3.00 3 jaz (out of 100) classified as dis |
- 1.00 1 jaz (out of 100) classified as hip |
- 79.00 79 jaz (out of 100) classified as jaz |
- 0.00 0 jaz (out of 100) classified as met |
- 1.00 1 jaz (out of 100) classified as pop |
- 1.00 1 jaz (out of 100) classified as reg |
- 0.00 0 jaz (out of 100) classified as roc |
- jaz |
- 10.07 % |
-
-
- met |
- 2.00 2 met (out of 100) classified as blu |
- 0.00 0 met (out of 100) classified as cla |
- 0.00 0 met (out of 100) classified as cou |
- 1.00 1 met (out of 100) classified as dis |
- 3.00 3 met (out of 100) classified as hip |
- 2.00 2 met (out of 100) classified as jaz |
- 86.00 86 met (out of 100) classified as met |
- 1.00 1 met (out of 100) classified as pop |
- 0.00 0 met (out of 100) classified as reg |
- 5.00 5 met (out of 100) classified as roc |
- met |
- 10.07 % |
-
-
- pop |
- 0.00 0 pop (out of 100) classified as blu |
- 1.00 1 pop (out of 100) classified as cla |
- 6.00 6 pop (out of 100) classified as cou |
- 6.00 6 pop (out of 100) classified as dis |
- 5.00 5 pop (out of 100) classified as hip |
- 0.00 0 pop (out of 100) classified as jaz |
- 0.00 0 pop (out of 100) classified as met |
- 75.00 75 pop (out of 100) classified as pop |
- 4.00 4 pop (out of 100) classified as reg |
- 3.00 3 pop (out of 100) classified as roc | <
- th>pop
- 10.07 % |
-
-
- reg |
- 3.00 3 reg (out of 100) classified as blu |
- 2.00 2 reg (out of 100) classified as cla |
- 4.00 4 reg (out of 100) classified as cou |
- 4.00 4 reg (out of 100) classified as dis |
- 11.00 11 reg (out of 100) classified as hip |
- 2.00 2 reg (out of 100) classified as jaz |
- 0.00 0 reg (out of 100) classified as met |
- 5.00 5 reg (out of 100) classified as pop |
- 64.00 64 reg (out of 100) classified as reg |
- 5.00 5 reg (out of 100) classified as roc |
- reg |
- 10.07 % |
-
-
- roc |
- 7.00 7 roc (out of 100) classified as blu |
- 2.00 2 roc (out of 100) classified as cla |
- 6.00 6 roc (out of 100) classified as cou |
- 10.00 10 roc (out of 100) classified as dis |
- 3.00 3 roc (out of 100) classified as hip |
- 2.00 2 roc (out of 100) classified as jaz |
- 4.00 4 roc (out of 100) classified as met |
- 2.00 2 roc (out of 100) classified as pop |
- 4.00 4 roc (out of 100) classified as reg |
- 60.00 60 roc (out of 100) classified as roc |
- roc |
- 10.07 % |
-
-
- |
- Actual (%) |
+
+
+
+ |
+ blu |
+ cla |
+ cou |
+ dis |
+ hip |
+ jaz |
+ met |
+ pop |
+ reg |
+ roc |
+ |
+ Proportion |
+
+
+ blu |
+ 78.00 78 blu (out of 100) classified as blu |
+ 1.00 1 blu (out of 100) classified as cla |
+ 8.00 8 blu (out of 100) classified as cou |
+ 3.00 3 blu (out of 100) classified as dis |
+ 1.00 1 blu (out of 100) classified as hip |
+ 1.00 1 blu (out of 100) classified as jaz |
+ 3.00 3 blu (out of 100) classified as met |
+ 0.00 0 blu (out of 100) classified as pop |
+ 2.00 2 blu (out of 100) classified as reg |
+ 3.00 3 blu (out of 100) classified as roc |
+ blu |
+ 10.07 % |
+
+
+ cla |
+ 2.15 2 cla (out of 93) classified as blu |
+ 92.47 86 cla (out of 93) classified as cla |
+ 1.08 1 cla (out of 93) classified as cou |
+ 2.15 2 cla (out of 93) classified as dis |
+ 0.00 0 cla (out of 93) classified as hip |
+ 0.00 0 cla (out of 93) classified as jaz |
+ 0.00 0 cla (out of 93) classified as met |
+ 1.08 1 cla (out of 93) classified as pop |
+ 0.00 0 cla (out of 93) classified as reg |
+ 1.08 1 cla (out of 93) classified as roc |
+ cla |
+ 9.37 % |
+
+
+ cou |
+ 1.00 1 cou (out of 100) classified as blu |
+ 1.00 1 cou (out of 100) classified as cla |
+ 78.00 78 cou (out of 100) classified as cou |
+ 7.00 7 cou (out of 100) classified as dis |
+ 0.00 0 cou (out of 100) classified as hip |
+ 2.00 2 cou (out of 100) classified as jaz |
+ 0.00 0 cou (out of 100) classified as met |
+ 4.00 4 cou (out of 100) classified as pop |
+ 3.00 3 cou (out of 100) classified as reg |
+ 4.00 4 cou (out of 100) classified as roc |
+ cou |
+ 10.07 % |
+
+
+ dis |
+ 0.00 0 dis (out of 100) classified as blu |
+ 1.00 1 dis (out of 100) classified as cla |
+ 5.00 5 dis (out of 100) classified as cou |
+ 71.00 71 dis (out of 100) classified as dis |
+ 3.00 3 dis (out of 100) classified as hip |
+ 1.00 1 dis (out of 100) classified as jaz |
+ 2.00 2 dis (out of 100) classified as met |
+ 7.00 7 dis (out of 100) classified as pop |
+ 5.00 5 dis (out of 100) classified as reg |
+ 5.00 5 dis (out of 100) classified as roc |
+ dis |
+ 10.07 % |
+
+
+ hip |
+ 2.00 2 hip (out of 100) classified as blu |
+ 1.00 1 hip (out of 100) classified as cla |
+ 0.00 0 hip (out of 100) classified as cou |
+ 6.00 6 hip (out of 100) classified as dis |
+ 73.00 73 hip (out of 100) classified as hip |
+ 0.00 0 hip (out of 100) classified as jaz |
+ 3.00 3 hip (out of 100) classified as met |
+ 3.00 3 hip (out of 100) classified as pop |
+ 11.00 11 hip (out of 100) classified as reg |
+ 1.00 1 hip (out of 100) classified as roc |
+ hip |
+ 10.07 % |
+
+
+ jaz |
+ 7.00 7 jaz (out of 100) classified as blu |
+ 4.00 4 jaz (out of 100) classified as cla |
+ 4.00 4 jaz (out of 100) classified as cou |
+ 3.00 3 jaz (out of 100) classified as dis |
+ 1.00 1 jaz (out of 100) classified as hip |
+ 79.00 79 jaz (out of 100) classified as jaz |
+ 0.00 0 jaz (out of 100) classified as met |
+ 1.00 1 jaz (out of 100) classified as pop |
+ 1.00 1 jaz (out of 100) classified as reg |
+ 0.00 0 jaz (out of 100) classified as roc |
+ jaz |
+ 10.07 % |
+
+
+ met |
+ 2.00 2 met (out of 100) classified as blu |
+ 0.00 0 met (out of 100) classified as cla |
+ 0.00 0 met (out of 100) classified as cou |
+ 1.00 1 met (out of 100) classified as dis |
+ 3.00 3 met (out of 100) classified as hip |
+ 2.00 2 met (out of 100) classified as jaz |
+ 86.00 86 met (out of 100) classified as met |
+ 1.00 1 met (out of 100) classified as pop |
+ 0.00 0 met (out of 100) classified as reg |
+ 5.00 5 met (out of 100) classified as roc |
+ met |
+ 10.07 % |
+
+
+ pop |
+ 0.00 0 pop (out of 100) classified as blu |
+ 1.00 1 pop (out of 100) classified as cla |
+ 6.00 6 pop (out of 100) classified as cou |
+ 6.00 6 pop (out of 100) classified as dis |
+ 5.00 5 pop (out of 100) classified as hip |
+ 0.00 0 pop (out of 100) classified as jaz |
+ 0.00 0 pop (out of 100) classified as met |
+ 75.00 75 pop (out of 100) classified as pop |
+ 4.00 4 pop (out of 100) classified as reg |
+ 3.00 3 pop (out of 100) classified as roc |
+ pop |
+ 10.07 % |
+
+
+ reg |
+ 3.00 3 reg (out of 100) classified as blu |
+ 2.00 2 reg (out of 100) classified as cla |
+ 4.00 4 reg (out of 100) classified as cou |
+ 4.00 4 reg (out of 100) classified as dis |
+ 11.00 11 reg (out of 100) classified as hip |
+ 2.00 2 reg (out of 100) classified as jaz |
+ 0.00 0 reg (out of 100) classified as met |
+ 5.00 5 reg (out of 100) classified as pop |
+ 64.00 64 reg (out of 100) classified as reg |
+ 5.00 5 reg (out of 100) classified as roc |
+ reg |
+ 10.07 % |
+
+
+ roc |
+ 7.00 7 roc (out of 100) classified as blu |
+ 2.00 2 roc (out of 100) classified as cla |
+ 6.00 6 roc (out of 100) classified as cou |
+ 10.00 10 roc (out of 100) classified as dis |
+ 3.00 3 roc (out of 100) classified as hip |
+ 2.00 2 roc (out of 100) classified as jaz |
+ 4.00 4 roc (out of 100) classified as met |
+ 2.00 2 roc (out of 100) classified as pop |
+ 4.00 4 roc (out of 100) classified as reg |
+ 60.00 60 roc (out of 100) classified as roc |
+ roc |
+ 10.07 % |
+
+
+ |
+ Actual (%) |
@@ -683,177 +683,177 @@ ismir04_rhythm
Use: classification of ballroom music by dance styles
Size: 683 track excerpts, 60-110 per class
Cano, P., Gómez, E., Gouyon, F., Herrera, P., Koppenberger, M., Ong, B., ... & Wack, N. (2006). ISMIR 2004 audio description contest. Music Technology Group, Universitat Pompeu Fabra, Tech. Rep.
- Accuracy: 73.209169%
+ Accuracy: 73.21%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- ChaChaCha |
- Jive |
- Quickstep |
- Rumba-American |
- Rumba-International |
- Rumba-Misc |
- Samba |
- Tango |
- VienneseWaltz |
- Waltz |
- |
- Proportion |
-
-
- ChaChaCha |
- 83.78 93 ChaChaCha (out of 111) classified as ChaChaCha |
- 5.41 6 ChaChaCha (out of 111) classified as Jive |
- 1.80 2 ChaChaCha (out of 111) classified as Quickstep |
- 0.00 0 ChaChaCha (out of 111) classified as Rumba-American |
- 3.60 4 ChaChaCha (out of 111) classified as Rumba-International |
- 0.00 0 ChaChaCha (out of 111) classified as Rumba-Misc |
- 3.60 4 ChaChaCha (out of 111) classified as Samba |
- 1.80 2 ChaChaCha (out of 111) classified as Tango |
- 0.00 0 ChaChaCha (out of 111) classified as VienneseWaltz |
- 0.00 0 ChaChaCha (out of 111) classified as Waltz |
- ChaChaCha |
- 15.90 % |
-
-
- Jive |
- 15.00 9 Jive (out of 60) classified as ChaChaCha |
- 68.33 41 Jive (out of 60) classified as Jive |
- 3.33 2 Jive (out of 60) classified as Quickstep |
- 0.00 0 Jive (out of 60) classified as Rumba-American |
- 3.33 2 Jive (out of 60) classified as Rumba-International |
- 1.67 1 Jive (out of 60) classified as Rumba-Misc |
- 5.00 3 Jive (out of 60) classified as Samba |
- 0.00 0 Jive (out of 60) classified as Tango |
- 3.33 2 Jive (out of 60) classified as VienneseWaltz |
- 0.00 0 Jive (out of 60) classified as Waltz |
- Jive |
- 8.60 % |
-
-
- Quickstep |
- 6.10 5 Quickstep (out of 82) classified as ChaChaCha |
- 3.66 3 Quickstep (out of 82) classified as Jive |
- 74.39 61 Quickstep (out of 82) classified as Quickstep |
- 1.22 1 Quickstep (out of 82) classified as Rumba-American |
- 2.44 2 Quickstep (out of 82) classified as Rumba-International |
- 0.00 0 Quickstep (out of 82) classified as Rumba-Misc |
- 10.98 9 Quickstep (out of 82) classified as Samba |
- 0.00 0 Quickstep (out of 82) classified as Tango |
- 0.00 0 Quickstep (out of 82) classified as VienneseWaltz |
- 1.22 1 Quickstep (out of 82) classified as Waltz |
- Quickstep |
- 11.75 % |
-
-
- Rumba-American |
- 0.00 0 Rumba-American (out of 7) classified as ChaChaCha |
- 0.00 0 Rumba-American (out of 7) classified as Jive |
- 14.29 1 Rumba-American (out of 7) classified as Quickstep |
- 28.57 2 Rumba-American (out of 7) classified as Rumba-American |
- 42.86 3 Rumba-American (out of 7) classified as Rumba-International |
- 0.00 0 Rumba-American (out of 7) classified as Rumba-Misc |
- 0.00 0 Rumba-American (out of 7) classified as Samba |
- 14.29 1 Rumba-American (out of 7) classified as Tango |
- 0.00 0 Rumba-American (out of 7) classified as VienneseWaltz |
- 0.00 0 Rumba-American (out of 7) classified as Waltz |
- Rumba-American | 1.00 % | Rumba-International |
- 1.96 1 Rumba-International (out of 51) classified as ChaChaCha |
- 0.00 0 Rumba-International (out of 51) classified as Jive |
- 3.92 2 Rumba-International (out of 51) classified as Quickstep |
- 1.96 1 Rumba-International (out of 51) classified as Rumba-American |
- 74.51 38 Rumba-International (out of 51) classified as Rumba-International |
- 0.00 0 Rumba-International (out of 51) classified as Rumba-Misc |
- 1.96 1 Rumba-International (out of 51) classified as Samba |
- 1.96 1 Rumba-International (out of 51) classified as Tango |
- 7.84 4 Rumba-International (out of 51) classified as VienneseWaltz |
- 5.88 3 Rumba-International (out of 51) classified as Waltz |
- Rumba-International |
- 7.31 % |
-
-
- Rumba-Misc |
- 5.00 2 Rumba-Misc (out of 40) classified as ChaChaCha |
- 7.50 3 Rumba-Misc (out of 40) classified as Jive |
- 7.50 3 Rumba-Misc (out of 40) classified as Quickstep |
- 0.00 0 Rumba-Misc (out of 40) classified as Rumba-American |
- 2.50 1 Rumba-Misc (out of 40) classified as Rumba-International |
- 52.50 21 Rumba-Misc (out of 40) classified as Rumba-Misc |
- 5.00 2 Rumba-Misc (out of 40) classified as Samba |
- 5.00 2 Rumba-Misc (out of 40) classified as Tango |
- 2.50 1 Rumba-Misc (out of 40) classified as VienneseWaltz |
- 12.50 5 Rumba-Misc (out of 40) classified as Waltz |
- Rumba-Misc |
- 5.73 % |
-
-
- Samba |
- 6.98 6 Samba (out of 86) classified as ChaChaCha |
- 6.98 6 Samba (out of 86) classified as Jive |
- 13.95 12 Samba (out of 86) classified as Quickstep |
- 0.00 0 Samba (out of 86) classified as Rumba-American |
- 2.33 2 Samba (out of 86) classified as Rumba-International |
- 1.16 1 Samba (out of 86) classified as Rumba-Misc |
- 66.28 57 Samba (out of 86) classified as Samba |
- 2.33 2 Samba (out of 86) classified as Tango |
- 0.00 0 Samba (out of 86) classified as VienneseWaltz |
- 0.00 0 Samba (out of 86) classified as Waltz |
- Samba |
- 12.32 % |
-
-
- Tango |
- 4.65 4 Tango (out of 86) classified as ChaChaCha |
- 0.00 0 Tango (out of 86) classified as Jive |
- 0.00 0 Tango (out of 86) classified as Quickstep |
- 2.33 2 Tango (out of 86) classified as Rumba-American |
- 0.00 0 Tango (out of 86) classified as Rumba-International |
- 5.81 5 Tango (out of 86) classified as Rumba-Misc |
- 0.00 0 Tango (out of 86) classified as Samba |
- 83.72 72 Tango (out of 86) classified as Tango |
- 1.16 1 Tango (out of 86) classified as VienneseWaltz |
- 2.33 2 Tango (out of 86) classified as Waltz |
- Tango |
- 12.32 % |
-
-
- VienneseWaltz |
- 0.00 0 VienneseWaltz (out of 65) classified as ChaChaCha |
- 1.54 1 VienneseWaltz (out of 65) classified as Jive |
- 1.54 1 VienneseWaltz (out of 65) classified as Quickstep |
- 0.00 0 VienneseWaltz (out of 65) classified as Rumba-American |
- 4.62 3 VienneseWaltz (out of 65) classified as Rumba-International |
- 3.08 2 VienneseWaltz (out of 65) classified as Rumba-Misc |
- 0.00 0 VienneseWaltz (out of 65) classified as Samba |
- 0.00 0 VienneseWaltz (out of 65) classified as Tango |
- 67.69 44 VienneseWaltz (out of 65) classified as VienneseWaltz |
- 21.54 14 VienneseWaltz (out of 65) classified as Waltz |
- VienneseWaltz |
- 9.31 % |
-
-
- Waltz |
- 0.00 0 Waltz (out of 110) classified as ChaChaCha |
- 0.00 0 Waltz (out of 110) classified as Jive |
- 0.91 1 Waltz (out of 110) classified as Quickstep |
- 0.00 0 Waltz (out of 110) classified as Rumba-American |
- 4.55 5 Waltz (out of 110) classified as Rumba-International |
- 6.36 7 Waltz (out of 110) classified as Rumba-Misc |
- 0.00 0 Waltz (out of 110) classified as Samba |
- 2.73 3 Waltz (out of 110) classified as Tango |
- 10.91 12 Waltz (out of 110) classified as VienneseWaltz |
- 74.55 82 Waltz (out of 110) classified as Waltz |
- Waltz |
- 15.76 % |
-
-
+ |
+
+
+ |
+ ChaChaCha |
+ Jive |
+ Quickstep |
+ Rumba-American |
+ Rumba-International |
+ Rumba-Misc |
+ Samba |
+ Tango |
+ VienneseWaltz |
+ Waltz |
+ |
+ Proportion |
+
+
+ ChaChaCha |
+ 83.78 93 ChaChaCha (out of 111) classified as ChaChaCha |
+ 5.41 6 ChaChaCha (out of 111) classified as Jive |
+ 1.80 2 ChaChaCha (out of 111) classified as Quickstep |
+ 0.00 0 ChaChaCha (out of 111) classified as Rumba-American |
+ 3.60 4 ChaChaCha (out of 111) classified as Rumba-International |
+ 0.00 0 ChaChaCha (out of 111) classified as Rumba-Misc |
+ 3.60 4 ChaChaCha (out of 111) classified as Samba |
+ 1.80 2 ChaChaCha (out of 111) classified as Tango |
+ 0.00 0 ChaChaCha (out of 111) classified as VienneseWaltz |
+ 0.00 0 ChaChaCha (out of 111) classified as Waltz |
+ ChaChaCha |
+ 15.90 % |
+
+
+ Jive |
+ 15.00 9 Jive (out of 60) classified as ChaChaCha |
+ 68.33 41 Jive (out of 60) classified as Jive |
+ 3.33 2 Jive (out of 60) classified as Quickstep |
+ 0.00 0 Jive (out of 60) classified as Rumba-American |
+ 3.33 2 Jive (out of 60) classified as Rumba-International |
+ 1.67 1 Jive (out of 60) classified as Rumba-Misc |
+ 5.00 3 Jive (out of 60) classified as Samba |
+ 0.00 0 Jive (out of 60) classified as Tango |
+ 3.33 2 Jive (out of 60) classified as VienneseWaltz |
+ 0.00 0 Jive (out of 60) classified as Waltz |
+ Jive |
+ 8.60 % |
+
+
+ Quickstep |
+ 6.10 5 Quickstep (out of 82) classified as ChaChaCha |
+ 3.66 3 Quickstep (out of 82) classified as Jive |
+ 74.39 61 Quickstep (out of 82) classified as Quickstep |
+ 1.22 1 Quickstep (out of 82) classified as Rumba-American |
+ 2.44 2 Quickstep (out of 82) classified as Rumba-International |
+ 0.00 0 Quickstep (out of 82) classified as Rumba-Misc |
+ 10.98 9 Quickstep (out of 82) classified as Samba |
+ 0.00 0 Quickstep (out of 82) classified as Tango |
+ 0.00 0 Quickstep (out of 82) classified as VienneseWaltz |
+ 1.22 1 Quickstep (out of 82) classified as Waltz |
+ Quickstep |
+ 11.75 % |
+
+
+ Rumba-American |
+ 0.00 0 Rumba-American (out of 7) classified as ChaChaCha |
+ 0.00 0 Rumba-American (out of 7) classified as Jive |
+ 14.29 1 Rumba-American (out of 7) classified as Quickstep |
+ 28.57 2 Rumba-American (out of 7) classified as Rumba-American |
+ 42.86 3 Rumba-American (out of 7) classified as Rumba-International |
+ 0.00 0 Rumba-American (out of 7) classified as Rumba-Misc |
+ 0.00 0 Rumba-American (out of 7) classified as Samba |
+ 14.29 1 Rumba-American (out of 7) classified as Tango |
+ 0.00 0 Rumba-American (out of 7) classified as VienneseWaltz |
+ 0.00 0 Rumba-American (out of 7) classified as Waltz |
+ Rumba-American | 1.00 % | Rumba-International |
+ 1.96 1 Rumba-International (out of 51) classified as ChaChaCha |
+ 0.00 0 Rumba-International (out of 51) classified as Jive |
+ 3.92 2 Rumba-International (out of 51) classified as Quickstep |
+ 1.96 1 Rumba-International (out of 51) classified as Rumba-American |
+ 74.51 38 Rumba-International (out of 51) classified as Rumba-International |
+ 0.00 0 Rumba-International (out of 51) classified as Rumba-Misc |
+ 1.96 1 Rumba-International (out of 51) classified as Samba |
+ 1.96 1 Rumba-International (out of 51) classified as Tango |
+ 7.84 4 Rumba-International (out of 51) classified as VienneseWaltz |
+ 5.88 3 Rumba-International (out of 51) classified as Waltz |
+ Rumba-International |
+ 7.31 % |
+
+
+ Rumba-Misc |
+ 5.00 2 Rumba-Misc (out of 40) classified as ChaChaCha |
+ 7.50 3 Rumba-Misc (out of 40) classified as Jive |
+ 7.50 3 Rumba-Misc (out of 40) classified as Quickstep |
+ 0.00 0 Rumba-Misc (out of 40) classified as Rumba-American |
+ 2.50 1 Rumba-Misc (out of 40) classified as Rumba-International |
+ 52.50 21 Rumba-Misc (out of 40) classified as Rumba-Misc |
+ 5.00 2 Rumba-Misc (out of 40) classified as Samba |
+ 5.00 2 Rumba-Misc (out of 40) classified as Tango |
+ 2.50 1 Rumba-Misc (out of 40) classified as VienneseWaltz |
+ 12.50 5 Rumba-Misc (out of 40) classified as Waltz |
+ Rumba-Misc |
+ 5.73 % |
+
+
+ Samba |
+ 6.98 6 Samba (out of 86) classified as ChaChaCha |
+ 6.98 6 Samba (out of 86) classified as Jive |
+ 13.95 12 Samba (out of 86) classified as Quickstep |
+ 0.00 0 Samba (out of 86) classified as Rumba-American |
+ 2.33 2 Samba (out of 86) classified as Rumba-International |
+ 1.16 1 Samba (out of 86) classified as Rumba-Misc |
+ 66.28 57 Samba (out of 86) classified as Samba |
+ 2.33 2 Samba (out of 86) classified as Tango |
+ 0.00 0 Samba (out of 86) classified as VienneseWaltz |
+ 0.00 0 Samba (out of 86) classified as Waltz |
+ Samba |
+ 12.32 % |
+
+
+ Tango |
+ 4.65 4 Tango (out of 86) classified as ChaChaCha |
+ 0.00 0 Tango (out of 86) classified as Jive |
+ 0.00 0 Tango (out of 86) classified as Quickstep |
+ 2.33 2 Tango (out of 86) classified as Rumba-American |
+ 0.00 0 Tango (out of 86) classified as Rumba-International |
+ 5.81 5 Tango (out of 86) classified as Rumba-Misc |
+ 0.00 0 Tango (out of 86) classified as Samba |
+ 83.72 72 Tango (out of 86) classified as Tango |
+ 1.16 1 Tango (out of 86) classified as VienneseWaltz |
+ 2.33 2 Tango (out of 86) classified as Waltz |
+ Tango |
+ 12.32 % |
+
+
+ VienneseWaltz |
+ 0.00 0 VienneseWaltz (out of 65) classified as ChaChaCha |
+ 1.54 1 VienneseWaltz (out of 65) classified as Jive |
+ 1.54 1 VienneseWaltz (out of 65) classified as Quickstep |
+ 0.00 0 VienneseWaltz (out of 65) classified as Rumba-American |
+ 4.62 3 VienneseWaltz (out of 65) classified as Rumba-International |
+ 3.08 2 VienneseWaltz (out of 65) classified as Rumba-Misc |
+ 0.00 0 VienneseWaltz (out of 65) classified as Samba |
+ 0.00 0 VienneseWaltz (out of 65) classified as Tango |
+ 67.69 44 VienneseWaltz (out of 65) classified as VienneseWaltz |
+ 21.54 14 VienneseWaltz (out of 65) classified as Waltz |
+ VienneseWaltz |
+ 9.31 % |
+
+
+ Waltz |
+ 0.00 0 Waltz (out of 110) classified as ChaChaCha |
+ 0.00 0 Waltz (out of 110) classified as Jive |
+ 0.91 1 Waltz (out of 110) classified as Quickstep |
+ 0.00 0 Waltz (out of 110) classified as Rumba-American |
+ 4.55 5 Waltz (out of 110) classified as Rumba-International |
+ 6.36 7 Waltz (out of 110) classified as Rumba-Misc |
+ 0.00 0 Waltz (out of 110) classified as Samba |
+ 2.73 3 Waltz (out of 110) classified as Tango |
+ 10.91 12 Waltz (out of 110) classified as VienneseWaltz |
+ 74.55 82 Waltz (out of 110) classified as Waltz |
+ Waltz |
+ 15.76 % |
+
+
|
Actual (%) |
@@ -865,38 +865,38 @@ mood_acoustic
Use: classification of music by type of sound (acoustic/non-acoustic)
Size: 321 full tracks + excerpts, 193/128 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 92.982456%
+ Accuracy: 92.98%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- acoustic |
- not_acoustic |
- |
- Proportion |
-
-
- acoustic |
- 95.04 115 acoustic (out of 121) classified as acoustic |
- 4.96 6 acoustic (out of 121) classified as not_acoustic |
- acoustic |
- 53.07 % |
-
-
- not_acoustic |
- 9.35 10 not_acoustic (out of 107) classified as acoustic |
- 90.65 97 not_acoustic (out of 107) classified as not_acoustic |
- not_acoustic | 46.93 % |
-
-
- |
- Actual (%) |
+
+
+
+ |
+ acoustic |
+ not_acoustic |
+ |
+ Proportion |
+
+
+ acoustic |
+ 95.04 115 acoustic (out of 121) classified as acoustic |
+ 4.96 6 acoustic (out of 121) classified as not_acoustic |
+ acoustic |
+ 53.07 % |
+
+
+ not_acoustic |
+ 9.35 10 not_acoustic (out of 107) classified as acoustic |
+ 90.65 97 not_acoustic (out of 107) classified as not_acoustic |
+ not_acoustic | 46.93 % |
+
+
+ |
+ Actual (%) |
@@ -907,38 +907,38 @@ mood_aggressive
Size: 280 full tracks + excerpts, 133/147 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 97.500000%
+ Accuracy: 97.50%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- aggressive |
- not_aggressive |
- |
- Proportion |
-
-
- aggressive |
- 95.49 127 aggressive (out of 133) classified as aggressive |
- 4.51 6 aggressive (out of 133) classified as not_aggressive |
- aggressive |
- 47.50 % |
-
-
- not_aggressive |
- 0.68 1 not_aggressive (out of 147) classified as aggressive |
- 99.32 146 not_aggressive (out of 147) classified as not_aggressive |
- not_aggressive |
- 52.50 % |
-
-
- | Actual (%) |
+
+
+
+ |
+ aggressive |
+ not_aggressive |
+ |
+ Proportion |
+
+
+ aggressive |
+ 95.49 127 aggressive (out of 133) classified as aggressive |
+ 4.51 6 aggressive (out of 133) classified as not_aggressive |
+ aggressive |
+ 47.50 % |
+
+
+ not_aggressive |
+ 0.68 1 not_aggressive (out of 147) classified as aggressive |
+ 99.32 146 not_aggressive (out of 147) classified as not_aggressive |
+ not_aggressive |
+ 52.50 % |
+
+
+ | Actual (%) |
@@ -949,39 +949,39 @@ mood_electronic
Size: 332 full tracks + excerpts, 164/168 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 86.379928%
+ Accuracy: 86.38%
Predicted (%) |
|
-
-
-
- |
- electronic |
- not_electronic |
- |
- Proportion |
-
-
- electronic |
- 82.84 111 electronic (out of 134) classified as electronic |
- 17.16 23 electronic (out of 134) classified as not_electronic |
- electronic |
- 48.03 % |
-
-
- not_electronic |
- 10.34 15 not_electronic (out of 145) classified as electronic |
- 89.66 130 not_electronic (out of 145) classified as not_electronic |
- not_electronic |
- 51.97 % |
-
-
- |
- Actual (%) |
+
+
+
+ |
+ electronic |
+ not_electronic |
+ |
+ Proportion |
+
+
+ electronic |
+ 82.84 111 electronic (out of 134) classified as electronic |
+ 17.16 23 electronic (out of 134) classified as not_electronic |
+ electronic |
+ 48.03 % |
+
+
+ not_electronic |
+ 10.34 15 not_electronic (out of 145) classified as electronic |
+ 89.66 130 not_electronic (out of 145) classified as not_electronic |
+ not_electronic |
+ 51.97 % |
+
+
+ |
+ Actual (%) |
@@ -992,37 +992,37 @@ mood_happy
Size: 302 full tracks + excerpts, 139/163 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 83.265306%
+ Accuracy: 83.27%
- Predicted (%) | |
-
-
-
-
-
- |
- happy |
- not_happy |
- |
- Proportion |
-
-
- happy |
- 82.14 92 happy (out of 112) classified as happy |
- 17.86 20 happy (out of 112) classified as not_happy |
- happy |
- 45.71 % |
-
-
- not_happy |
- 15.79 21 not_happy (out of 133) classified as happy |
- 84.21 112 not_happy (out of 133) classified as not_happy |
- not_happy | 54.29 % |
-
-
- |
- Actual (%) |
-
+ Predicted (%) | |
+
+
+
+
+
+ |
+ happy |
+ not_happy |
+ |
+ Proportion |
+
+
+ happy |
+ 82.14 92 happy (out of 112) classified as happy |
+ 17.86 20 happy (out of 112) classified as not_happy |
+ happy |
+ 45.71 % |
+
+
+ not_happy |
+ 15.79 21 not_happy (out of 133) classified as happy |
+ 84.21 112 not_happy (out of 133) classified as not_happy |
+ not_happy | 54.29 % |
+
+
+ |
+ Actual (%) |
+
@@ -1032,38 +1032,38 @@ mood_party
Size: 349 full tracks + excerpts, 198/151 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 88.381743%
+ Accuracy: 88.38%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- not_party |
- party |
- |
- Proportion |
-
-
- not_party |
- 85.07 114 not_party (out of 134) classified as not_party |
- 14.93 20 not_party (out of 134) classified as party |
- not_party |
- 55.60 % |
-
-
- party |
- 7.48 8 party (out of 107) classified as not_party |
- 92.52 99 party (out of 107) classified as party |
- party | 44.40 % |
-
-
- |
- Actual (%) |
+
+
+
+ |
+ not_party |
+ party |
+ |
+ Proportion |
+
+
+ not_party |
+ 85.07 114 not_party (out of 134) classified as not_party |
+ 14.93 20 not_party (out of 134) classified as party |
+ not_party |
+ 55.60 % |
+
+
+ party |
+ 7.48 8 party (out of 107) classified as not_party |
+ 92.52 99 party (out of 107) classified as party |
+ party | 44.40 % |
+
+
+ |
+ Actual (%) |
@@ -1074,39 +1074,39 @@ mood_relaxed
Size: 446 full tracks + excerpts, 145/301 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 93.201133%
+ Accuracy: 93.20%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- not_relaxed |
- relaxed |
- |
- Proportion |
-
-
- not_relaxed |
- 85.48 106 not_relaxed (out of 124) classified as not_relaxed |
- 14.52 18 not_relaxed (out of 124) classified as relaxed |
- not_relaxed |
- 35.13 % |
-
-
- relaxed |
- 2.62 6 relaxed (out of 229) classified as not_relaxed |
- 97.38 223 relaxed (out of 229) classified as relaxed |
- relaxed |
- 64.87 % |
-
-
- |
- Actual (%) |
+
+
+
+ |
+ not_relaxed |
+ relaxed |
+ |
+ Proportion |
+
+
+ not_relaxed |
+ 85.48 106 not_relaxed (out of 124) classified as not_relaxed |
+ 14.52 18 not_relaxed (out of 124) classified as relaxed |
+ not_relaxed |
+ 35.13 % |
+
+
+ relaxed |
+ 2.62 6 relaxed (out of 229) classified as not_relaxed |
+ 97.38 223 relaxed (out of 229) classified as relaxed |
+ relaxed |
+ 64.87 % |
+
+
+ |
+ Actual (%) |
@@ -1117,14 +1117,14 @@ mood_sad
Size: 230 full tracks + excerpts, 96/134 per class
Laurier, C., Meyers, O., Serra, J., Blech, M., & Herrera, P. (2009). Music mood annotator design and integration. In 7th International Workshop on Content-Based Multimedia Indexing (CBMI'09), pp. 156-161.
- Accuracy: 87.826087%
+ Accuracy: 87.83%
Predicted (%) |
|
-
+ |
|
@@ -1158,167 +1158,167 @@ moods_mirex
MIREX Audio Mood Classification Dataset (Hu and Downie, 2007)
Use: classification of music into 5 mood clusters
- - Cluster1: passionate, rousing, confident,boisterous, rowdy
+ - Cluster1: passionate, rousing, confident, boisterous, rowdy
- Cluster2: rollicking, cheerful, fun, sweet, amiable/good natured
- Cluster3: literate, poignant, wistful, bittersweet, autumnal, brooding
- Cluster4: humorous, silly, campy, quirky, whimsical, witty, wry
- - Cluster5: aggressive, fiery,tense/anxious, intense, volatile,visceral
+ - Cluster5: aggressive, fiery, tense/anxious, intense, volatile, visceral
Size: 269 track excerpts, 60-110 per class
Hu, X., & Downie, J. S. (2007). Exploring Mood Metadata: Relationships with Genre, Artist and Usage Metadata. In 8th International Conference on Music Information Retrieval (ISMIR'07), pp. 67-72.
- Accuracy: 57.089552%
+ Accuracy: 57.09%
-
- Predicted (%) |
- |
-
-
-
-
-
- |
- Cluster1 |
- Cluster2 |
- Cluster3 |
- Cluster4 |
- Cluster5 |
- |
- Proportion |
-
-
- Cluster1 |
- 56.90 33 Cluster1 (out of 58) classified as Cluster1 |
- 15.52 9 Cluster1 (out of 58) classified as Cluster2 |
- 8.62 5 Cluster1 (out of 58) classified as Cluster3 |
- 5.17 3 Cluster1 (out of 58) classified as Cluster4 |
- 13.79 8 Cluster1 (out of 58) classified as Cluster5 |
- Cluster1 |
- 21.64 % |
-
-
- Cluster2 |
- 22.22 12 Cluster2 (out of 54) classified as Cluster1 |
- 53.70 29 Cluster2 (out of 54) classified as Cluster2 |
- 16.67 9 Cluster2 (out of 54) classified as Cluster3 |
- 5.56 3 Cluster2 (out of 54) classified as Cluster4 |
- 1.85 1 Cluster2 (out of 54) classified as Cluster5 |
- Cluster2 |
- 20.15 % |
-
-
- Cluster3 |
- 5.48 4 Cluster3 (out of 73) classified as Cluster1 |
- 19.18 14 Cluster3 (out of 73) classified as Cluster2 |
- 68.49 50 Cluster3 (out of 73) classified as Cluster3 |
- 5.48 4 Cluster3 (out of 73) classified as Cluster4 |
- 1.37 1 Cluster3 (out of 73) classified as Cluster5 |
- Cluster3 |
- 27.24 % |
-
-
- Cluster4 |
- 15.62 5 Cluster4 (out of 32) classified as Cluster1 |
- 37.50 12 Cluster4 (out of 32) classified as Cluster2 |
- 15.62 5 Cluster4 (out of 32) classified as Cluster3 |
- 25.00 8 Cluster4 (out of 32) classified as Cluster4 |
- 6.25 2 Cluster4 (out of 32) classified as Cluster5 |
- Cluster4 |
- 11.94 % |
-
-
- Cluster5 |
- 27.45 14 Cluster5 (out of 51) classified as Cluster1 |
- 7.84 4 Cluster5 (out of 51) classified as Cluster2 |
- 0.00 0 Cluster5 (out of 51) classified as Cluster3 |
- 0.00 0 Cluster5 (out of 51) classified as Cluster4 |
- 64.71 33 Cluster5 (out of 51) classified as Cluster5 |
- Cluster5 | 19.03 % |
-
-
- |
- Actual (%) |
-
+
+ Predicted (%) |
+ |
+
+
+
+
+
+ |
+ Cluster1 |
+ Cluster2 |
+ Cluster3 |
+ Cluster4 |
+ Cluster5 |
+ |
+ Proportion |
+
+
+ Cluster1 |
+ 56.90 33 Cluster1 (out of 58) classified as Cluster1 |
+ 15.52 9 Cluster1 (out of 58) classified as Cluster2 |
+ 8.62 5 Cluster1 (out of 58) classified as Cluster3 |
+ 5.17 3 Cluster1 (out of 58) classified as Cluster4 |
+ 13.79 8 Cluster1 (out of 58) classified as Cluster5 |
+ Cluster1 |
+ 21.64 % |
+
+
+ Cluster2 |
+ 22.22 12 Cluster2 (out of 54) classified as Cluster1 |
+ 53.70 29 Cluster2 (out of 54) classified as Cluster2 |
+ 16.67 9 Cluster2 (out of 54) classified as Cluster3 |
+ 5.56 3 Cluster2 (out of 54) classified as Cluster4 |
+ 1.85 1 Cluster2 (out of 54) classified as Cluster5 |
+ Cluster2 |
+ 20.15 % |
+
+
+ Cluster3 |
+ 5.48 4 Cluster3 (out of 73) classified as Cluster1 |
+ 19.18 14 Cluster3 (out of 73) classified as Cluster2 |
+ 68.49 50 Cluster3 (out of 73) classified as Cluster3 |
+ 5.48 4 Cluster3 (out of 73) classified as Cluster4 |
+ 1.37 1 Cluster3 (out of 73) classified as Cluster5 |
+ Cluster3 |
+ 27.24 % |
+
+
+ Cluster4 |
+ 15.62 5 Cluster4 (out of 32) classified as Cluster1 |
+ 37.50 12 Cluster4 (out of 32) classified as Cluster2 |
+ 15.62 5 Cluster4 (out of 32) classified as Cluster3 |
+ 25.00 8 Cluster4 (out of 32) classified as Cluster4 |
+ 6.25 2 Cluster4 (out of 32) classified as Cluster5 |
+ Cluster4 |
+ 11.94 % |
+
+
+ Cluster5 |
+ 27.45 14 Cluster5 (out of 51) classified as Cluster1 |
+ 7.84 4 Cluster5 (out of 51) classified as Cluster2 |
+ 0.00 0 Cluster5 (out of 51) classified as Cluster3 |
+ 0.00 0 Cluster5 (out of 51) classified as Cluster4 |
+ 64.71 33 Cluster5 (out of 51) classified as Cluster5 |
+ Cluster5 | 19.03 % |
+
+
+ |
+ Actual (%) |
+
timbre
- In-house MTG collection
+ In-house MTG collection
Use: classification of music by timbre colour (dark/bright timbre)
Size: 3000 track excerpts, 1500 per class
- Accuracy: 94.317418%
+ Accuracy: 94.32%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- bright |
- dark |
- |
- Proportion |
-
-
- bright |
- 93.76 1383 bright (out of 1475) classified as bright |
- 6.24 92 bright (out of 1475) classified as dark |
- bright |
- 49.60 % |
-
-
- dark |
- 5.14 77 dark (out of 1499) classified as bright |
- 94.86 1422 dark (out of 1499) classified as dark |
- dark | 50.40 % |
-
-
- |
- Actual (%) |
+
+
+
+ |
+ bright |
+ dark |
+ |
+ Proportion |
+
+
+ bright |
+ 93.76 1383 bright (out of 1475) classified as bright |
+ 6.24 92 bright (out of 1475) classified as dark |
+ bright |
+ 49.60 % |
+
+
+ dark |
+ 5.14 77 dark (out of 1499) classified as bright |
+ 94.86 1422 dark (out of 1499) classified as dark |
+ dark | 50.40 % |
+
+
+ |
+ Actual (%) |
tonal_atonal
- In-house MTG collection
+ In-house MTG collection
Use: classification of music by tonality (tonal/atonal)
Size: 345 track excerpts, 200/145
- Accuracy: 97.667638%
+ Accuracy: 97.67%
-
- Predicted (%) |
- |
-
-
-
-
-
- |
- atonal |
- tonal |
- |
- Proportion |
-
-
- atonal |
- 96.53 139 atonal (out of 144) classified as atonal |
- 3.47 5 atonal (out of 144) classified as tonal |
- atonal |
- 41.98 % |
-
-
- tonal |
- 1.51 3 tonal (out of 199) classified as atonal |
- 98.49 196 tonal (out of 199) classified as tonal |
- tonal |
- 58.02 % |
-
-
- |
- Actual (%) |
-
+
+ Predicted (%) |
+ |
+
+
+
+
+
+ |
+ atonal |
+ tonal |
+ |
+ Proportion |
+
+
+ atonal |
+ 96.53 139 atonal (out of 144) classified as atonal |
+ 3.47 5 atonal (out of 144) classified as tonal |
+ atonal |
+ 41.98 % |
+
+
+ tonal |
+ 1.51 3 tonal (out of 199) classified as atonal |
+ 98.49 196 tonal (out of 199) classified as tonal |
+ tonal |
+ 58.02 % |
+
+
+ |
+ Actual (%) |
+
@@ -1326,37 +1326,37 @@ voice_instrumental
In-house MTG collection
Use: classification into music with voice/instrumental
Size: 1000 track excerpts, 500 per class
- Accuracy: 93.800000%
+ Accuracy: 93.80%
- Predicted (%) |
- |
+ Predicted (%) |
+ |
-
-
-
- |
- instrumental |
- voice |
- |
- Proportion |
-
-
- instrumental |
- 94.20 471 instrumental (out of 500) classified as instrumental |
- 5.80 29 instrumental (out of 500) classified as voice |
- instrumental |
- 50.00 % |
-
-
- voice |
- 6.60 33 voice (out of 500) classified as instrumental |
- 93.40 467 voice (out of 500) classified as voice |
- voice | 50.00 % |
-
-
- |
+
+
+
+ |
+ instrumental |
+ voice |
+ |
+ Proportion |
+
+
+ instrumental |
+ 94.20 471 instrumental (out of 500) classified as instrumental |
+ 5.80 29 instrumental (out of 500) classified as voice |
+ instrumental |
+ 50.00 % |
+
+
+ voice |
+ 6.60 33 voice (out of 500) classified as instrumental |
+ 93.40 467 voice (out of 500) classified as voice |
+ voice | 50.00 % |
+
+
+ |
Actual (%) |
diff --git a/webserver/views/api/v1/core.py b/webserver/views/api/v1/core.py
index 2b7ae2ac5..486eb90cc 100644
--- a/webserver/views/api/v1/core.py
+++ b/webserver/views/api/v1/core.py
@@ -86,12 +86,14 @@ def get_high_level(mbid):
endpoint.
:query n: *Optional.* Integer specifying an offset for a document.
+ :query map_classes: *Optional.* If set to 'true', map class names to human-readable values
:resheader Content-Type: *application/json*
"""
offset = _validate_offset(request.args.get("n"))
+ map_classes = _validate_map_classes(request.args.get("map_classes"))
try:
- return jsonify(db.data.load_high_level(str(mbid), offset))
+ return jsonify(db.data.load_high_level(str(mbid), offset, map_classes))
except NoDataFoundException:
raise webserver.views.api.exceptions.APINotFound("Not found")
@@ -117,6 +119,18 @@ def submit_low_level(mbid):
return jsonify({"message": "ok"})
+def _validate_map_classes(map_classes):
+ """Validate the map_classes parameter
+
+ Arguments:
+ map_classes (Optional[str]): the value of the query parameter
+
+ Returns:
+ (bool): True if the map_classes parameter is 'true', False otherwise"""
+
+ return map_classes is not None and map_classes.lower() == 'true'
+
+
def _validate_offset(offset):
"""Validate the offset.
@@ -272,10 +286,13 @@ def get_many_highlevel():
You can specify up to :py:const:`~webserver.views.api.v1.core.MAX_ITEMS_PER_BULK_REQUEST` MBIDs in a request.
+ :query map_classes: *Optional.* If set to 'true', map class names to human-readable values
+
:resheader Content-Type: *application/json*
"""
+ map_classes = _validate_map_classes(request.args.get("map_classes"))
recordings = check_bad_request_for_multiple_recordings()
- recording_details = db.data.load_many_high_level(recordings)
+ recording_details = db.data.load_many_high_level(recordings, map_classes)
return jsonify(recording_details)
diff --git a/webserver/views/api/v1/test/test_core.py b/webserver/views/api/v1/test/test_core.py
index f119c5c71..a7902f033 100644
--- a/webserver/views/api/v1/test/test_core.py
+++ b/webserver/views/api/v1/test/test_core.py
@@ -124,19 +124,19 @@ def test_get_high_level(self, hl):
hl.return_value = {}
resp = self.client.get("/api/v1/%s/high-level" % self.uuid)
self.assertEqual(200, resp.status_code)
- hl.assert_called_with(self.uuid, 0)
+ hl.assert_called_with(self.uuid, 0, False)
# upper-case
resp = self.client.get("/api/v1/%s/high-level" % self.uuid.upper())
self.assertEqual(200, resp.status_code)
- hl.assert_called_with(self.uuid, 0)
+ hl.assert_called_with(self.uuid, 0, False)
@mock.patch("db.data.load_high_level")
def test_hl_numerical_offset(self, hl):
hl.return_value = {}
resp = self.client.get("/api/v1/%s/high-level?n=3" % self.uuid)
self.assertEqual(200, resp.status_code)
- hl.assert_called_with(self.uuid, 3)
+ hl.assert_called_with(self.uuid, 3, False)
@mock.patch('db.data.load_many_low_level')
def test_get_bulk_ll_no_param(self, load_many_low_level):
@@ -274,7 +274,31 @@ def test_get_bulk_hl(self, load_many_high_level):
("7f27d7a9-27f0-4663-9d20-2c9c40200e6d", 3),
("405a5ff4-7ee2-436b-95c1-90ce8a83b359", 2),
("405a5ff4-7ee2-436b-95c1-90ce8a83b359", 3)]
- load_many_high_level.assert_called_with(recordings)
+ load_many_high_level.assert_called_with(recordings, False)
+
+ @mock.patch('db.data.load_many_high_level')
+ def test_get_bulk_hl_map_classes(self, load_many_high_level):
+ # Check that many items are returned, including two offsets of the
+ # same mbid
+
+ params = "c5f4909e-1d7b-4f15-a6f6-1af376bc01c9"
+
+ rec_c5 = {"recording": "c5f4909e-1d7b-4f15-a6f6-1af376bc01c9"}
+
+ load_many_high_level.return_value = {
+ "c5f4909e-1d7b-4f15-a6f6-1af376bc01c9": {"0": rec_c5},
+ }
+
+ resp = self.client.get('api/v1/high-level?map_classes=true&recording_ids=' + params)
+ self.assert200(resp)
+
+ expected_result = {
+ "c5f4909e-1d7b-4f15-a6f6-1af376bc01c9": {"0": rec_c5},
+ }
+ self.assertDictEqual(resp.json, expected_result)
+
+ recordings = [("c5f4909e-1d7b-4f15-a6f6-1af376bc01c9", 0)]
+ load_many_high_level.assert_called_with(recordings, True)
# upper-case
params = "c5f4909e-1d7b-4f15-a6f6-1AF376BC01C9"
@@ -289,7 +313,7 @@ def test_get_bulk_hl(self, load_many_high_level):
# to load_many_high_level is always lower-case regardless of what we pass in
self.assertDictEqual(resp.json, expected_result)
recordings = [("c5f4909e-1d7b-4f15-a6f6-1af376bc01c9", 0)]
- load_many_high_level.assert_called_with(recordings)
+ load_many_high_level.assert_called_with(recordings, False)
@mock.patch('db.data.load_many_high_level')
def test_get_bulk_hl_absent_mbid(self, load_many_high_level):
@@ -318,9 +342,9 @@ def test_get_bulk_hl_absent_mbid(self, load_many_high_level):
recordings = [("c5f4909e-1d7b-4f15-a6f6-1af376bc01c9", 0),
("7f27d7a9-27f0-4663-9d20-2c9c40200e6d", 3),
("405a5ff4-7ee2-436b-95c1-90ce8a83b359", 2)]
- load_many_high_level.assert_called_with(recordings)
+ load_many_high_level.assert_called_with(recordings, False)
- def test_get_bulk_hl_more_than_200(self):
+ def test_get_bulk_hl_more_than_25(self):
# Create many random uuids, because of parameter deduplication
manyids = [str(uuid.uuid4()) for i in range(26)]
limit_exceed_url = ";".join(manyids)
@@ -381,7 +405,7 @@ def test_get_bulk_count(self):
self.assertEqual(resp.status_code, 200)
self.assertDictEqual(resp.json, expected_result)
- def test_get_bulk_count_more_than_200(self):
+ def test_get_bulk_count_more_than_25(self):
# Create many random uuids, because of parameter deduplication
manyids = [str(uuid.uuid4()) for i in range(26)]
limit_exceed_url = ";".join(manyids)
diff --git a/webserver/views/data.py b/webserver/views/data.py
index daa8360f7..89178a175 100644
--- a/webserver/views/data.py
+++ b/webserver/views/data.py
@@ -94,7 +94,7 @@ def summary(mbid):
summary_data = {}
if summary_data.get("highlevel"):
- genres, moods, other = _interpret_high_level(summary_data["highlevel"])
+ genres, moods, other = _interpret_high_level(summary_data["highlevel"], summary_data["models"])
if genres or moods or other:
summary_data["highlevel"] = {
"genres": genres,
@@ -195,72 +195,85 @@ def get_tag(name):
return {}
-def _interpret_high_level(hl):
+def _interpret_high_level(hl, models):
- def interpret(text, data, threshold=.6):
- if data['probability'] >= threshold:
- return text, data['value'].replace("_", " "), "%.3f" % data['probability']
- else:
- return text, "unsure", "%.3f" % data['probability']
+ model_map = {}
+ for m in models:
+ model_map[m["model"]] = m
+
+ def interpret(text, model_name, data):
+ """used by the print_row macro in data/summary.html"""
+ value = data["value"]
+ original = None
+ class_map = model_map.get(model_name, {}).get("class_mapping")
+ if class_map and value in class_map:
+ original = value
+ value = class_map[value]
+
+ return {"name": text,
+ "model_href": "%s#%s" % (url_for("datasets.accuracy"), model_name),
+ "value": value.title(),
+ "original": original,
+ "percent": round(data['probability']*100, 1)}
genres = []
- tzan = hl['highlevel'].get('genre_tzanetakis')
+ tzan = hl["highlevel"].get("genre_tzanetakis")
if tzan:
- genres.append(interpret("Tzanetakis model", tzan))
- elec = hl['highlevel'].get('genre_electronic')
+ genres.append(interpret("GTZAN model", "genre_tzanetakis", tzan))
+ elec = hl["highlevel"].get("genre_electronic")
if elec:
- genres.append(interpret("Electronic classification", elec))
- dort = hl['highlevel'].get('genre_dortmund')
+ genres.append(interpret("Electronic classification", "genre_electronic", elec))
+ dort = hl["highlevel"].get("genre_dortmund")
if dort:
- genres.append(interpret("Dortmund model", dort))
- ros = hl['highlevel'].get('genre_rosamerica')
+ genres.append(interpret("Dortmund model", "genre_dortmund", dort))
+ ros = hl["highlevel"].get("genre_rosamerica")
if ros:
- genres.append(interpret("Rosamerica model", ros))
+ genres.append(interpret("Rosamerica model", "genre_rosamerica", ros))
moods = []
- elec = hl['highlevel'].get('mood_electronic')
+ elec = hl["highlevel"].get("mood_electronic")
if elec:
- moods.append(interpret("Electronic", elec))
- party = hl['highlevel'].get('mood_party')
+ moods.append(interpret("Electronic", "mood_electronic", elec))
+ party = hl["highlevel"].get("mood_party")
if party:
- moods.append(interpret("Party", party))
- aggressive = hl['highlevel'].get('mood_aggressive')
+ moods.append(interpret("Party", "mood_party", party))
+ aggressive = hl["highlevel"].get("mood_aggressive")
if aggressive:
- moods.append(interpret("Aggressive", aggressive))
- acoustic = hl['highlevel'].get('mood_acoustic')
+ moods.append(interpret("Aggressive", "mood_aggressive", aggressive))
+ acoustic = hl["highlevel"].get("mood_acoustic")
if acoustic:
- moods.append(interpret("Acoustic", acoustic))
- happy = hl['highlevel'].get('mood_happy')
+ moods.append(interpret("Acoustic", "mood_acoustic", acoustic))
+ happy = hl["highlevel"].get("mood_happy")
if happy:
- moods.append(interpret("Happy", happy))
- sad = hl['highlevel'].get('mood_sad')
+ moods.append(interpret("Happy", "mood_happy", happy))
+ sad = hl["highlevel"].get("mood_sad")
if sad:
- moods.append(interpret("Sad", sad))
- relaxed = hl['highlevel'].get('mood_relaxed')
+ moods.append(interpret("Sad", "mood_sad", sad))
+ relaxed = hl["highlevel"].get("mood_relaxed")
if relaxed:
- moods.append(interpret("Relaxed", relaxed))
- mirex = hl['highlevel'].get('mood_mirex')
+ moods.append(interpret("Relaxed", "mood_relaxed", relaxed))
+ mirex = hl["highlevel"].get("moods_mirex")
if mirex:
- moods.append(interpret("Mirex method", mirex))
+ moods.append(interpret("Mirex method", "moods_mirex", mirex))
other = []
- voice = hl['highlevel'].get('voice_instrumental')
+ voice = hl["highlevel"].get("voice_instrumental")
if voice:
- other.append(interpret("Voice", voice))
- gender = hl['highlevel'].get('gender')
+ other.append(interpret("Voice", "voice_instrumental", voice))
+ gender = hl["highlevel"].get("gender")
if gender:
- other.append(interpret("Gender", gender))
- dance = hl['highlevel'].get('danceability')
+ other.append(interpret("Gender", "gender", gender))
+ dance = hl["highlevel"].get("danceability")
if dance:
- other.append(interpret("Danceability", dance))
- tonal = hl['highlevel'].get('tonal_atonal')
+ other.append(interpret("Danceability", "danceability", dance))
+ tonal = hl["highlevel"].get("tonal_atonal")
if tonal:
- other.append(interpret("Tonal", tonal))
- timbre = hl['highlevel'].get('timbre')
+ other.append(interpret("Tonal", "tonal_atonal", tonal))
+ timbre = hl["highlevel"].get("timbre")
if timbre:
- other.append(interpret("Timbre", timbre))
- rhythm = hl['highlevel'].get('ismir04_rhythm')
+ other.append(interpret("Timbre", "timbre", timbre))
+ rhythm = hl["highlevel"].get("ismir04_rhythm")
if rhythm:
- other.append(interpret("ISMIR04 Rhythm", rhythm))
+ other.append(interpret("ISMIR04 Rhythm", "ismir04_rhythm", rhythm))
return genres, moods, other
| | |