이 저장소에는 논문 미리 훈련 된 음성 처리 모델에 대한 코드가 포함되어 있습니다. 언어 감정 인식으로 전파되는 인간과 유사한 편견이 포함되어 있으며 , 이는 EMNLP 2023의 결과에 나타나십시오. 질문이 있으면 문제를 만들어 내기 (@isaaconline)를 태그하십시오.
이 repo에서 대부분의 코드를 실행하는 데 필요한 Python 패키지는 mac_env.yml 및 unix_env.yml 에 각각 Mac 또는 Ubuntu 시스템에서 실험을 실행하는 데 사용한 환경을 지정합니다. 성향 스코어 일치로 데이터를 전처리 할 때 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 구성 요소를 사용했습니다.EU_Emotion_Stimulus_Set 의 데이터는 EU- 퇴치 자극 세트에서 제공됩니다 : 검증 연구MESS 의 데이터는 감정적 연설의 범주 적 및 차원 등급에서 나온 것 : Morgan 감정 연설 세트의 행동 결과speech_accent_archive 의 데이터는 파일 downloading/download_saa.py 사용하여 다운로드 할 수 있습니다.TORGO 의 데이터는 Dysarthria를 가진 스피커의 음향 및 조음 연설의 Torgo 데이터베이스 에서 나온 것입니다.UASpeech 의 데이터는 Universal Access Research를위한 Dysarthric Speech 데이터베이스 에서 제공됩니다.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 의 WAV2VEC 2.0베이스를 사용합니다. 위탁 모델은 임베딩을 추출 할 때 자동으로 다운로드됩니다.
임베딩을 추출하기위한 스크립트는 embedding_extraction directory ( extract_whisper.py , hubert.py , wav2vec2.py 및 wavlm.py )에서 제공됩니다. 새 데이터 세트의 임베딩을 추출하려면 이러한 파일에 데이터 세트를 추가 할 수 있습니다. 임베딩 추출은 일반적 으로이 프로젝트를 실행하는 데 가장 많은 시간이 걸리는 부분이었습니다. Whisper를 위해 임베딩을 추출 할 때 Whisper Fork의 extract-embeddings 브랜치를 사용해야합니다.
임베딩이 추출되면 스크립트를 plots/eats 로 실행하여 임베딩 연관 테스트를 수행 할 수 있습니다. 이로 인해 speat d s와 p- 값을 plots/eats/test_results 의 파일로 결과로 저장합니다 (실험의 결과 파일은 현재 저장되어 있습니다). 논문에서 플롯을 만드는 데 사용되는 스크립트는 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 사용하여 입력 데이터 세트에서 원자가를 예측하는 데 사용될 수 있습니다.