Sina Kashani
Fallstudie · Audio

Speech Emotion Detection

Ein Teamprojekt, das die Emotion in einer kurzen Sprachaufnahme vorhersagt, entstanden als Abschlussprojekt im Le-Wagon-Bootcamp.

Problem

Die Art zu sprechen verrät viel über Gefühle. Unsere Frage für das Abschlussprojekt im Bootcamp war einfach: Kann ein Modell die Emotion in einem kurzen Sprachclip heraushören?

Was ich gebaut habe

Wir haben den Datensatz CREMA-D verwendet, in dem Schauspielerinnen und Schauspieler Sätze mit sechs Emotionen sprechen: Wut, Ekel, Angst, Freude, Trauer und neutral. Die Rohaufnahmen haben wir durch Normalisierung, das Entfernen von Stille und Rauschunterdrückung bereinigt. Aus jedem Clip haben wir Merkmale berechnet, etwa MFCCs, Spektrogramme und weitere spektrale und zeitliche Kennwerte.

Das Modell ist ein Convolutional Neural Network, das das Spektrogramm wie ein Bild behandelt. Wir haben es über einen FastAPI-Endpunkt auf Google Cloud Run bereitgestellt und darauf eine Streamlit-App gebaut. In der App lädt man Audio hoch oder nimmt es auf und bekommt die vorhergesagte Emotion zurück.

Mein Anteil

Wir waren zu viert und haben in einem gemeinsamen Repository gearbeitet, das einem Teammitglied gehört. Mein Fork enthält eine Kopie. Ich habe an der Bereinigung der Audiodaten, der Merkmalsextraktion, der explorativen Analyse sowie am Training und Tuning des CNN gearbeitet. Außerdem habe ich die Streamlit-App gebaut und auf Google Cloud bereitgestellt, den Ablauf geplant, die Modellversionen verwaltet, Dokumentation geschrieben und das Projekt am Ende präsentiert.

Ergebnis

Innerhalb von vier Wochen in Teilzeit haben wir eine funktionierende Pipeline von der Rohaufnahme bis zur Live-Vorhersage im Browser gebaut und sie mit einer Live-Demo präsentiert.

Nächste Schritte

Das Modell an Aufnahmen außerhalb des Datensatzes testen, denn gespielte Sprache ist sauberer als echte Gespräche. Außerdem würde ich das CNN mit vortrainierten Audiomodellen vergleichen.