このリポジトリには、事前に訓練された音声処理モデルのコードが含まれています。これは、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を使用して、入力データセットの価数を予測できます。