Este repositório contém código para os modelos de processamento de fala pré-treinados em papel contêm vieses semelhantes a humanos que se propagam ao reconhecimento de emoções da fala , que aparece nas descobertas do EMNLP 2023. Crie um problema e marque-me (@isaaconline) se tiver alguma dúvida.
Os pacotes Python necessários para executar a maioria do código neste repositório estão listados em mac_env.yml e unix_env.yml , que especificam os ambientes que usamos para executar experimentos nas máquinas Mac ou Ubuntu, respectivamente. Ao pré -processamento de dados com correspondência de propensão, usamos psmpy e, devido a conflitos de pacotes, criamos um ambiente separado ( psmpy_env.yml ) para exclusivamente esse objetivo.
Os dados utilizados para este projeto são provenientes de uma variedade de fontes, a maioria das quais não podemos redistribuir. Incluímos informações sobre os arquivos em nosso diretório de dados (por exemplo, os nomes de clipes específicos que usamos). Os links para os conjuntos de dados estão abaixo.
audio_iats/mitchell_et_al vêm do artigo, o viés de conveniência social favorece os seres humanos? Avaliações explícitas e implícitas de fala sintetizada Apoie um novo modelo HCI de gerenciamento de impressõesaudio_iats/pantos_perkins vêm do artigo medindo atitudes implícitas e explícitas em relação ao discurso acentuado estrangeiroaudio_iats/romero_rivas_et_al vêm do acentismo em papel em julgamento: categorização/estereotipagem e preconceitos implícitos prevê sentenças mais duras para réus com compensação estrangeiraCORAAL são provenientes do corpus da língua afro -americana regional, usamos todos os componentes de Coraal registrados após o ano 2000 e disponíveis em outubro de 2022.EU_Emotion_Stimulus_Set são provenientes do conjunto de estímulos em emoção da UE: um estudo de validaçãoMESS são provenientes da categórica e dimensional das classificações da fala emocional: descobertas comportamentais do conjunto de fala emocional de Morganspeech_accent_archive podem ser baixados usando o arquivo downloading/download_saa.pyTORGO vêm do banco de dados do Torgo de discurso acústico e articulatório de palestrantes com disartriaUASpeech são provenientes do banco de dados de fala disartrico para pesquisa de acesso universalbuckeye vêm do corpus de Buckeye Depois de adquirir esses conjuntos de dados e colocá -los no diretório data , você precisará executar os scripts no diretório preprocessing . Esses scripts limparão os conjuntos de dados e criarão metadados necessários que serão usados para extrair incorporações posteriormente. Os scripts preprocessing/process_buckeye.py e preprocessing/process_coraal.py precisam ser executados antes de preprocessing/match_buckeye_coraal.py , mas, além disso, os scripts não precisam ser executados em uma ordem específica. Alguns desses scripts precisarão ser executados usando o ambiente que você cria com psmpy_env.yml .
Se você deseja extrair incorporações para um novo conjunto de dados, precisará criar um arquivo all.tsv , dos quais podem ser vistos no diretório de dados. Este arquivo contém um cabeçalho listando o diretório em que os arquivos WAV para o conjunto de dados podem ser fundados, seguidos por caminhos relativos aos arquivos WAV no conjunto de dados deste diretório. Cada arquivo WAV precisará ser acompanhado pelo comprimento da sequência. Você pode usar as funções no downloading_utils.py para encontrar esse comprimento de sequência, bem como para garantir que os clipes de áudio tenham um número uniforme de canais.
Utilizamos modelos das famílias Hubert, Wav2Vec 2.0, WAVLM e Whisper Model. Para baixar os pontos de verificação relevantes de Hubert e Wavlm, você poderá usar o arquivo downloading/download_model_ckpts.py (dependendo se os links que usamos ainda estão funcionando). Este arquivo usa URLs definidos no downloading/urls.py , que podem precisar ser atualizados no futuro. Até a publicação, os modelos WAV2VEC 2.0 que usamos estão disponíveis aqui. Utilizamos a Wav2Vec 2.0 Base—No finetuning , Wav2Vec 2.0 Large—No finetuning e Wav2Vec 2.0 Large (LV-60)—No finetuning . Os modelos Whisper serão baixados automaticamente ao extrair incorporações.
Os scripts para extração de incorporação estão disponíveis no diretório embedding_extraction ( extract_whisper.py , hubert.py , wav2vec2.py e wavlm.py ). Se você deseja extrair incorporação para um novo conjunto de dados, poderá adicionar o conjunto de dados a esses arquivos. A incorporação de extração foi geralmente a parte mais demorada da execução deste projeto. Ao extrair incorporações para o Whisper, você precisará garantir que esteja usando o ramo extract-embeddings do meu garfo de sussurro.
Depois que as incorporações forem extraídas, você pode executar os scripts em plots/eats para realizar os testes de associação de incorporação. Isso salvará os valores de SPEAT D S e P nos resultados dos arquivos em plots/eats/test_results (os arquivos de resultado de nossos experimentos estão atualmente armazenados lá). Um script usado para criar algumas das parcelas no papel está disponível em plots/eats/plot_all_results.py . Para estimar o erro padrão das espinhas , existem scripts em plots/standard_error . Os resultados de nossa estimativa de erro padrão estão em plots/standard_error/all_mean_mean_results.csv . Para treinar os modelos SER a jusante, você pode usar o arquivo embedding_extraction/train_emotion_model.py . Os pesos dos modelos Ser treinados estão em dimension_models/model_objects . Você pode usá -los para prever a valência nos conjuntos de dados de entrada usando embedding_extraction/predict_valence.py .