Genre, Mood etc. ermitteln mit Essentia-Tensorflow.js MusiCNN

Mit der Javascript-Version von Essentia lassen sich - wie auch bei der Python-Version - vortrainierte Modelle zur Mood-Erkennung einbinden. Ein besonders vielseitiges Modell ist das MusiCNN-Modell. Es eignet sich für die automatische Erkennung von Rock&Pop-Genres, die zeitliche Einschätzung des Stücks, Einschätzung über den Einsatz von Stimmen, die Qualität und ob das Stück eher fröhlich oder traurig ist.

 

Anders als andere Javascript Libraries ist sie weniger für den Echtzeit-Betrieb ausgelegt, sondern eher für die Berechnung der Audio Features im Hintergrund. Für ihre Verwendung benötigt man mindestens 3 Libraries, die in den Header der Seite eingebunden werden müssen:

<script src="https://cdn.jsdelivr.net/npm/essentia.js@0.1.3/dist/essentia-wasm.web.js"></script>
<!-- Web Assembly Modul (WASM) = Backend, um die Standard C++ Algorithmen von Essentia verwenden zu können -->
<script src="https://cdn.jsdelivr.net/npm/essentia.js@0.1.3/dist/essentia.js-model.js"></script>
<!-- die Essentia Modell-Bibliothek-->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<!-- die Javascript Tensorflow-Library, um vortrainierte Tensorflow-Modelle einbinden zu können-->

 

Auf der Seite selbst sollte im Body ein Audio-Player mit eigener id (hier "audioPlayer") eingebunden sein, mit dem man sich das zu analysierende Klangbeispiel auch anhören kann:

<audio id="audioPlayer" controls ></audio>

 

Darüber hinaus benötigt man noch einen Button, mit dem man den Analysevorgang über die Funktion featureExtractor(); starten kann, z.B.

<button type="button" id="analyse" onclick="analyse_MusiCNN();">
Start MusiCNN Analysis</button>