該存儲庫包含論文預訓練的語音處理模型的代碼,其中包含類似人類的偏見,這些偏見傳播到語音情感識別中,如果您有任何疑問,請在EMNLP 2023的發現中出現。
在mac_env.yml和unix_env.yml中列出了運行大多數代碼所需的Python軟件包,該軟件包分別指定了我們在Mac或Ubuntu Machines上運行實驗的環境。當使用傾向分數匹配的數據預處理數據時,我們使用了psmpy ,並且由於包裝衝突,創建了一個單獨的環境( psmpy_env.yml ),以實現該目的。
該項目使用的數據來自各種來源,其中大多數我們無法重新分發。我們已經在數據目錄中包含了有關文件的信息(例如我們使用的特定剪輯的名稱)。數據集的鏈接如下。
audio_iats/mitchell_et_al中的數據來自本文社會可取性偏見是否有利於人類?綜合語音的明確 - 簡化評估支持一種新的HCI印像管理模型audio_iats/pantos_perkins中的數據來自紙張,測量對外國重音語音的隱性和明確的態度audio_iats/romero_rivas_et_al中的數據來自試驗的紙質口音:分類/刻板印象和隱式偏見預測外國人的被告人更嚴厲CORAAL的數據來自非裔美國人語言的語料庫,我們使用了所有Coraal成分,這些成分是在2000年以後記錄的,並於2022年10月上市。EU_Emotion_Stimulus_Set中的數據來自歐盟 - 情感刺激集:驗證研究MESS中的數據來自情感語音的分類和維度評分:摩根情感語音的行為發現downloading/download_saa.py下載speech_accent_archive中的數據TORGO的數據來自帶有構想障礙的演講者的聲學和發音演講的Torgo數據庫UASpeech中的數據來自用於通用訪問研究的違規語音數據庫buckeye的數據來自七葉樹語料庫在獲取這些數據集並將其放置在data目錄中後,您將需要在preprocessing目錄中運行腳本。這些腳本將清理數據集並創建必要的元數據,以稍後提取嵌入。需要在preprocessing/process_buckeye.py腳本之前運行預處理/process_buckeye.py和preprocessing/process_coraal.py腳本,然後preprocessing/match_buckeye_coraal.py ,但是除此之外,不需要以特定順序運行腳本。其中一些腳本需要使用您使用psmpy_env.yml創建的環境來運行。
如果您想為新數據集提取嵌入式,則需要創建一個all.tsv文件,可以在數據目錄中看到其示例。該文件包含一個標題列出了目錄,其中可以建立數據集的WAV文件,然後從該目錄中使用數據集中的WAV文件的相對路徑。每個WAV文件都需要伴隨其序列長度。您可以在downloading_utils.py中使用這些函數來找到此序列長度,並確保音頻剪輯具有統一數量的頻道。
我們使用Hubert,WAV2VEC 2.0,WAVLM和耳語模型系列的模型。要下載相關的Hubert和Wavlm檢查點,您可以使用文件downloading/download_model_ckpts.py (取決於我們使用的鏈接是否仍在工作)。該文件使用downloading/urls.py中定義的URL,將來可能需要更新。截至出版時,我們使用的WAV2VEC 2.0型號在此處可用。我們使用Wav2Vec 2.0 Base—No finetuning , Wav2Vec 2.0 Large—No finetuning ,而Wav2Vec 2.0 Large (LV-60)—No finetuning檢查點。提取嵌入時,耳語型號將自動下載。
用於提取嵌入的腳本可在embedding_extraction目錄中可用( extract_whisper.py , hubert.py , wav2vec2.py和wavlm.py )。如果要為新數據集提取嵌入式,則可以將數據集添加到這些文件中。嵌入提取通常是運行該項目的最耗時的一部分。在提取耳語時,您需要確保使用我的耳語叉的extract-embeddings分支。
提取嵌入後,您可以在plots/eats中運行腳本以進行嵌入關聯測試。這些將把斑點的d s和p值保存到plots/eats/test_results中的結果(我們實驗中的結果文件當前存儲在那裡)。用於創建論文中某些圖的腳本可在plots/eats/plot_all_results.py上獲得。為了估計晶狀體的標準誤差, plots/standard_error中的腳本。我們的標準誤差估計的結果是在plots/standard_error/all_mean_mean_results.csv中。要訓練下游SER模型,您可以使用文件embedding_extraction/train_emotion_model.py 。我們訓練的SER模型的權重為dimension_models/model_objects 。您可以使用它們使用embedding_extraction/predict_valence.py來預測輸入數據集中的價。