Этот репозиторий содержит код для предварительно обученных речевых моделей бумаги, которые содержат человеческие смещения, которые распространяются на распознавание эмоций речи , которые появляются в выводах EMNLP 2023. Пожалуйста, создайте проблему и отметьте меня (@IsaAconline), если у вас есть какие-либо вопросы.
Пакеты Python, необходимые для запуска большинства кода в этом репо, перечислены в mac_env.yml и unix_env.yml , в которых указываются среды, которые мы использовали для экспериментов на машинах Mac или Ubuntu, соответственно. При предварительной обработке данных с соответствием баллов склонности мы использовали psmpy , и из -за конфликтов с пакетами создали отдельную среду ( psmpy_env.yml ) исключительно для этой цели.
Данные, используемые для этого проекта, поступают из различных источников, большинство из которых мы не можем переоборудовать. Мы включили информацию о файлах в нашем каталоге данных (например, имена конкретных клипов, которые мы использовали). Ссылки на наборы данных ниже.
audio_iats/mitchell_et_al происходят из статьи. Предоставление социальной желательности предпочитает людей? Явные - имплутные оценки синтезированной речи поддерживают новую модель управления оттисками HCIaudio_iats/pantos_perkins поступают из статьи, измеряющего неявное и явное отношение к иностранной акцентной речиaudio_iats/romero_rivas_et_al поступают из бумажного акцентизма на испытаниях: категоризация/стереотипирование и неявные смещения прогнозируют более жесткие предложения для обвиняемых иностранцев.CORAAL поступают из корпуса регионального афроамериканского языка. Мы использовали все компоненты Coraal, которые были записаны после 2000 года и доступны в октябре 2022 года.EU_Emotion_Stimulus_Set поступают из набора стимулов EU-EMOTION: проверка валидационного исследованияMESS поступают из категориальных и размерных рейтингов эмоциональной речи: поведенческие результаты из набора эмоциональной речи Морганаspeech_accent_archive можно загрузить с помощью downloading/download_saa.pyTORGO поступают из базы данных Торго акустической и артикуляторной речи от ораторов с дисартриейUASpeech поступают из дискартрической базы данных речи для Universal Access Researchbuckeye поступают из корпуса Buckeye После получения этих наборов данных и размещения их в каталоге data вам нужно будет запустить сценарии в каталоге preprocessing . Эти сценарии будут очищать наборы данных и создавать необходимые метаданные, которые будут использоваться для извлечения встраиваний позже. Сценарии preprocessing/process_buckeye.py и preprocessing/process_coraal.py должны выполняться перед preprocessing/match_buckeye_coraal.py , но кроме этого не нужно запускать в определенном порядке. Некоторые из этих сценариев должны быть запущены, используя среду, которую вы создаете с помощью psmpy_env.yml .
Если вы хотите извлечь Entgeddings для нового набора данных, вам нужно будет создать файл all.tsv , примеры которого можно увидеть в каталоге данных. Этот файл содержит заголовок, в котором перечисляется каталог, в котором могут быть основаны файлы WAV для набора данных, а затем относительные пути к файлам WAV в наборе данных из этого каталога. Каждый файл WAV должен будет сопровождаться длиной последовательности. Вы можете использовать функции в downloading_utils.py , чтобы найти эту длину последовательности, а также для того, чтобы убедиться, что аудио -клипы имеют равномерное количество каналов.
Мы используем модели из семейств Hubert, Wav2vec 2.0, Wavlm и Whisper Model. Чтобы загрузить соответствующие контрольные точки Hubert и Wavlm, вы можете использовать downloading/download_model_ckpts.py (в зависимости от того, работают ли нами ссылки). В этом файле используются URL -адреса, определенные при downloading/urls.py , который может потребоваться обновлять в будущем. На момент публикации модели Wav2VEC 2.0, которые мы использовали, доступны здесь. Мы используем Wav2Vec 2.0 Base—No finetuning , Wav2Vec 2.0 Large—No finetuning , и Wav2Vec 2.0 Large (LV-60)—No finetuning CASHPOINTS. Модели Whisper будут автоматически загружены при извлечении внедрения.
Сценарии для извлечения встроенных встроений доступны в каталоге embedding_extraction ( extract_whisper.py , hubert.py , wav2vec2.py и wavlm.py ). Если вы хотите извлечь Entgeddings для нового набора данных, вы можете добавить набор данных в эти файлы. Экстракция встраивания была, как правило, наиболее трудоемкой частью управления этим проектом. При извлечении внедрения для шепота вам нужно убедиться, что вы используете ветвь extract-embeddings моей вилки Whisper.
После того, как встраивались, вы можете запустить сценарии на 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 .