Repositori ini berisi kode untuk model pemrosesan ucapan pra-terlatih berisi bias seperti manusia yang menyebar ke pengenalan emosi bicara , yang muncul dalam temuan EMNLP 2023. Harap buat masalah dan tag saya (@ISAACONLINE) jika Anda memiliki pertanyaan.
Paket Python yang diperlukan untuk menjalankan sebagian besar kode dalam repo ini tercantum dalam mac_env.yml dan unix_env.yml , yang menentukan lingkungan yang kami gunakan untuk menjalankan percobaan pada mesin Mac atau Ubuntu, masing -masing. Saat preprocessing data dengan pencocokan skor kecenderungan, kami menggunakan psmpy , dan karena konflik paket, menciptakan lingkungan yang terpisah ( psmpy_env.yml ) untuk tujuan itu secara eksklusif.
Data yang digunakan untuk proyek ini berasal dari berbagai sumber, yang sebagian besar kami tidak dapat mendistribusikan kembali. Kami telah menyertakan informasi tentang file di direktori data kami (misalnya nama klip spesifik yang kami gunakan). Tautan ke set data ada di bawah ini.
audio_iats/mitchell_et_al berasal dari kertas apakah bias keinginan sosial lebih mendukung manusia? Evaluasi Eksplisit -Implisit dari Sintesis Bicara Dukungan Model HCI baru manajemen kesanaudio_iats/pantos_perkins berasal dari makalah yang mengukur sikap implisit dan eksplisit terhadap pidato beraksen asingaudio_iats/romero_rivas_et_al berasal dari aksentisme kertas pada persidangan: kategorisasi/stereotip dan bias implisit memprediksi hukuman yang lebih keras untuk terdakwa beraksen asingCORAAL berasal dari korpus bahasa Afrika -Amerika regional kami menggunakan semua komponen koraal yang dicatat setelah tahun 2000 dan tersedia pada Oktober 2022.EU_Emotion_Stimulus_Set berasal dari set stimulus EU-emotion: studi validasiMESS berasal dari makalah peringkat kategori dan dimensi ucapan emosional: temuan perilaku dari set ucapan emosional morganspeech_accent_archive dapat diunduh menggunakan file downloading/download_saa.pyTORGO berasal dari database Torgo dari pidato akustik dan artikulasi dari pembicara dengan disarthriaUASpeech berasal dari database ucapan disartrik untuk penelitian akses universalbuckeye berasal dari buckeye corpus Setelah memperoleh kumpulan data ini dan menempatkannya di direktori data , Anda perlu menjalankan skrip di direktori preprocessing . Script ini akan membersihkan set data dan membuat metadata yang diperlukan yang akan digunakan untuk mengekstraksi embeddings nanti. preprocessing/process_buckeye.py dan preprocessing/process_coraal.py skrip perlu dijalankan sebelum preprocessing/match_buckeye_coraal.py , tetapi selain dari ini skrip tidak perlu dijalankan dalam urutan tertentu. Beberapa skrip ini perlu dijalankan menggunakan lingkungan yang Anda buat dengan psmpy_env.yml .
Jika Anda ingin mengekstrak embeddings untuk dataset baru, Anda perlu membuat file all.tsv , contohnya dapat dilihat di direktori data. File ini berisi header yang mencantumkan direktori di mana file WAV untuk dataset dapat didirikan, diikuti oleh jalur relatif ke file WAV dalam dataset dari direktori ini. Setiap file WAV perlu disertai dengan panjang urutannya. Anda dapat menggunakan fungsi di downloading_utils.py untuk menemukan panjang urutan ini, serta untuk memastikan klip audio memiliki jumlah saluran yang seragam.
Kami menggunakan model dari keluarga model Hubert, WAV2VEC 2.0, WAVLM, dan Whisper. Untuk mengunduh pos pemeriksaan Hubert dan WAVLM yang relevan, Anda mungkin dapat menggunakan file downloading/download_model_ckpts.py (tergantung pada apakah tautan yang kami gunakan masih berfungsi). File ini menggunakan URL yang didefinisikan dalam downloading/urls.py yang mungkin perlu diperbarui di masa mendatang. Pada publikasi, model WAV2VEC 2.0 yang kami gunakan tersedia di sini. Kami menggunakan Wav2Vec 2.0 Base—No finetuning , Wav2Vec 2.0 Large—No finetuning , dan Wav2Vec 2.0 Large (LV-60)—No finetuning . Model Whisper akan diunduh secara otomatis saat mengekstraksi embeddings.
Script untuk mengekstraksi embeddings tersedia di direktori embedding_extraction ( extract_whisper.py , hubert.py , wav2vec2.py , dan wavlm.py ). Jika Anda ingin mengekstrak embeddings untuk dataset baru, Anda dapat menambahkan dataset ke file -file ini. Ekstraksi yang menanamkan umumnya merupakan bagian yang paling memakan waktu dari menjalankan proyek ini. Saat mengekstraksi embeddings untuk Whisper, Anda harus memastikan bahwa Anda menggunakan cabang extract-embeddings dari Fork Whisper saya.
Setelah embeddings diekstraksi, Anda dapat menjalankan skrip dalam plots/eats untuk melakukan tes asosiasi embedding. Ini akan menyimpan speat d dan p -values untuk hasil ke file dalam plots/eats/test_results (file hasil dari percobaan kami saat ini disimpan di sana). Skrip yang digunakan untuk membuat beberapa plot di koran tersedia di plots/eats/plot_all_results.py . Untuk memperkirakan kesalahan standar Speat D S, ada skrip dalam plots/standard_error . Hasil dari estimasi kesalahan standar kami ada di plots/standard_error/all_mean_mean_results.csv . Untuk melatih model SER hilir, Anda dapat menggunakan file embedding_extraction/train_emotion_model.py . Bobot model SER yang kami latih ada di dimension_models/model_objects . Anda dapat menggunakannya untuk memprediksi valensi dalam dataset input menggunakan embedding_extraction/predict_valence.py .