Dieses Repository enthält Code für die vorgeschriebenen Sprachverarbeitungsmodelle, die menschliche Vorurteile enthalten, die sich auf die Erkennung von Sprachemotionen ausbreiten , die in den Ergebnissen von EMNLP 2023 erscheint. Bitte erstellen Sie ein Problem und markieren Sie mich (@isaaconline), wenn Sie Fragen haben.
Die Python -Pakete, die für die Ausführung der meisten Code in diesem Repo erforderlich sind, sind in mac_env.yml und unix_env.yml aufgeführt, in denen die Umgebungen angegeben sind, die wir zum Ausführen von Experimenten entweder auf Mac- oder Ubuntu -Maschinen verwendet haben. Bei der Vorverarbeitung von Daten mit dem Neigungsbewertungsanpassung haben wir psmpy verwendet und aufgrund von Paketkonflikten eine separate Umgebung ( psmpy_env.yml ) für ausschließlich diesen Zweck erstellt.
Daten, die für dieses Projekt verwendet werden, stammen aus einer Vielzahl von Quellen, von denen wir die meisten nicht neu verteilen können. Wir haben Informationen zu den Dateien in unser Datenverzeichnis aufgenommen (z. B. die Namen bestimmter Clips, die wir verwendeten). Links zu den Datensätzen finden Sie unten.
audio_iats/mitchell_et_al stammen aus dem Papier. Bevorzugt die soziale Begehrbarkeit von Menschen? Explizit -implizite Bewertungen synthetisierter Sprache unterstützen ein neues HCI -Modell des Impression Managementsaudio_iats/pantos_perkins stammen aus dem Papier, das implizite und explizite Einstellungen zu ausländischer Akzentrede misstaudio_iats/romero_rivas_et_al stammen aus dem Papierakentismus in Versuch: Kategorisierung/Stereotypisierung und implizite Vorurteile prognostizieren härtere Sätze für Angeklagte aus Fremdakzentsern.CORAAL stammen aus dem Korpus der regionalen afroamerikanischen Sprache. Wir haben alle Coraal -Komponenten verwendet, die nach dem Jahr 2000 aufgezeichnet und im Oktober 2022 erhältlich sind.EU_Emotion_Stimulus_Set stammen aus dem EU-Emotion-Stimulus-Set: Eine ValidierungsstudieMESS ergeben sich aus den kategorischen und dimensionalen Bewertungen der emotionalen Sprache: Verhaltensergebnisse aus dem emotionalen Sprachsatz von Morganspeech_accent_archive können mit der Datei downloading/download_saa.py heruntergeladen werdenTORGO stammen aus der Torgo -Datenbank für akustische und artikulierende Sprache von Sprechern mit DysarthrieUASpeech stammen aus der dysartherischen Sprachdatenbank für universelle Zugriffsforschungbuckeye stammen vom Buckeye Corpus Nachdem Sie diese Datensätze erfasst und in das data platziert haben, müssen Sie die Skripte im preprocessing ausführen. Diese Skripte reinigen die Datensätze und erstellen die erforderlichen Metadaten, die zum späteren Extrahieren von Emetten verwendet werden. Die Skripte preprocessing/process_buckeye.py und preprocessing/process_coraal.py müssen vor preprocessing/match_buckeye_coraal.py ausgeführt werden. Einige dieser Skripte müssen mit der Umgebung ausgeführt werden, die Sie mit psmpy_env.yml erstellen.
Wenn Sie Ausbettungen für einen neuen Datensatz extrahieren möchten, müssen Sie eine all.tsv -Datei erstellen, die Beispiele im Datenverzeichnis zu sehen sind. Diese Datei enthält ein Header, das das Verzeichnis auflistet, in dem WAV -Dateien für den Datensatz gegründet werden können, gefolgt von relativen Pfaden zu WAV -Dateien im Datensatz aus diesem Verzeichnis. Jede WAV -Datei muss von ihrer Sequenzlänge begleitet werden. Sie können die Funktionen in downloading_utils.py verwenden, um diese Sequenzlänge zu finden und sicherzustellen, dass die Audioclips eine einheitliche Anzahl von Kanälen haben.
Wir verwenden Modelle aus den Familien Hubert, Wav2Vec 2.0, Wavlm und Flüstermodell. Um die relevanten Hubert- und Wavlm -Checkpoints herunterzuladen, können Sie möglicherweise die Datei downloading/download_model_ckpts.py (je nachdem, ob die verwendeten Links noch funktionieren). Diese Datei verwendet URLs, die beim downloading/urls.py definiert sind und möglicherweise in Zukunft aktualisiert werden müssen. Ab der Veröffentlichung sind die von uns verwendeten WAV2VEC 2.0 -Modelle hier erhältlich. Wir verwenden die Wav2Vec 2.0 Base—No finetuning , Wav2Vec 2.0 Large—No finetuning und Wav2Vec 2.0 Large (LV-60)—No finetuning Kontrollpunkte. Die Whisper -Modelle werden beim Extrahieren von Einbettungen automatisch heruntergeladen.
Skripte zum Extrahieren von Einbettungen sind im Verzeichnis embedding_extraction erhältlich ( extract_whisper.py , hubert.py , wav2vec2.py und wavlm.py ). Wenn Sie Ausbettungen für einen neuen Datensatz extrahieren möchten, können Sie diese Dateien den Datensatz hinzufügen. Die Einbettungsextraktion war im Allgemeinen der zeitaufwändigste Teil der Ausführung dieses Projekts. Beim Extrahieren von Einbettungen für Whisper müssen Sie sicherstellen, dass Sie den extract-embeddings Zweig meiner Flüstergabel verwenden.
Sobald die Einbettung extrahiert wurde, können Sie die Skripte in plots/eats ausführen, um die Einbettungs -Assoziations -Tests durchzuführen. Diese speichern die Speat D S und p -Werte in Ergebnissen in Dateien in plots/eats/test_results (die Ergebnisdateien aus unseren Experimenten werden derzeit dort gespeichert). Ein Skript, das zum Erstellen einiger der Diagramme im Papier verwendet wird, finden Sie in plots/eats/plot_all_results.py . Um den Standardfehler des Speat D S abzuschätzen, gibt es Skripte in plots/standard_error . Die Ergebnisse aus unserer Standardfehlerschätzung finden Sie in plots/standard_error/all_mean_mean_results.csv . Um nachgeschaltete Ser -Modelle zu trainieren, können Sie die Datei embedding_extraction/train_emotion_model.py verwenden. Die Gewichte der von uns trainierten Ser -Modelle sind in dimension_models/model_objects . Sie können sie verwenden, um die Valenz in den Eingabedatensätzen mithilfe von embedding_extraction/predict_valence.py vorherzusagen.