このリポジトリには、事前に訓練された音声処理モデルのコードが含まれています。これは、EMNLP 2023の発見に登場する音声感情認識に伝播する人間のようなバイアスを含みます。
このレポでコードの大部分を実行するために必要なPythonパッケージは、 mac_env.yml
およびunix_env.yml
にリストされています。傾向スコアマッチングでデータを前処理する場合、 psmpy
使用し、パッケージの競合のために、その目的のみのために別の環境( psmpy_env.yml
)を作成しました。
このプロジェクトに使用されるデータは、さまざまな情報源からのものであり、そのほとんどは再配布することができません。データディレクトリにファイルに関する情報を含めました(たとえば、使用した特定のクリップの名前)。データセットへのリンクは以下にあります。
audio_iats/mitchell_et_al
のデータは、社会的望ましさの偏見が人間を支持する論文から来ていますか?合成された音声の明示的な - インプリティ評価は、印象管理の新しいHCIモデルをサポートしますaudio_iats/pantos_perkins
のデータは、外国のアクセントされたスピーチに対する暗黙的かつ明示的な態度を測定する論文から来ていますaudio_iats/romero_rivas_et_al
のデータは、試用中の紙のアクセントからのものです:分類/ステレオタイプと暗黙のバイアスは、外国語の被告人の厳しい文章を予測しますCORAAL
のデータは、2000年以降に記録され、2022年10月に利用可能なすべてのCoraalコンポーネントを使用したすべてのCoraalコンポーネントを使用したアフリカ系アメリカ人の地域のコーパスに由来しています。EU_Emotion_Stimulus_Set
のデータは、EU-emotion刺激セットからのものです。MESS
のデータは、感情的なスピーチのカテゴリー的および次元の評価:モーガンの感情的なスピーチセットからの紙のカテゴリー的および次元の評価に由来していますspeech_accent_archive
のデータは、ファイルdownloading/download_saa.py
使用してダウンロードできますTORGO
のデータは、ダイサルリアを伴うスピーカーからの音響および調音の音声のトーゴデータベースから来ていますUASpeech
のデータは、ユニバーサルアクセス研究のためのダイサルトリック音声データベースに由来しますbuckeye
のデータは、Buckeye Corpusに由来していますこれらのデータセットを取得し、 data
ディレクトリに配置した後、 preprocessing
ディレクトリでスクリプトを実行する必要があります。これらのスクリプトは、データセットをクリーニングし、後で埋め込みを抽出するために使用される必要なメタデータを作成します。 preprocessing/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、およびWhisperモデルファミリのモデルを使用しています。関連する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
で実行して、埋め込み関連テストを実行できます。これらは、 plots/eats/test_results
のファイルへの結果に結果を得るためにSpeat d sとp値を保存します(実験の結果ファイルは現在そこに保存されています)。ペーパー内のプロットの一部を作成するために使用されるスクリプトはplots/eats/plot_all_results.py
で入手できます。 SPEAT D Sの標準誤差を推定するには、 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
を使用して、入力データセットの価数を予測できます。