يحتوي هذا المستودع على رمز لنماذج معالجة الكلام التي تم تدريبها قبل التدريب على التحيزات التي تشبه الإنسان والتي تنتشر إلى التعرف على العاطفة ، والتي تظهر في نتائج 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
تأتي من مجموعة التحفيز العاطفية للاتحاد الأوروبي: دراسة التحقق من الصحةMESS
من تصنيفات الورق الفئوي والأبعاد من الكلام العاطفي: النتائج السلوكية من مجموعة الكلام العاطفي مورغانspeech_accent_archive
باستخدام ملف downloading/download_saa.py
TORGO
من قاعدة بيانات Torgo من الكلام الصوتي والفصل من مكبرات الصوت مع خلل الحركةUASpeech
تأتي من قاعدة بيانات الكلام dysarthric لأبحاث الوصول الشاملةbuckeye
تأتي من Buckeye Corpus بعد الحصول على مجموعات البيانات هذه ووضعها في دليل data
، ستحتاج إلى تشغيل البرامج النصية في دليل preprocessing
. ستقوم هذه البرامج النصية بتنظيف مجموعات البيانات وإنشاء بيانات تعريف ضرورية سيتم استخدامها لاستخراج التضمينات لاحقًا. يجب تشغيل البرامج النصية preprocessing/process_buckeye.py
preprocessing/match_buckeye_coraal.py
preprocessing/process_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
(اعتمادًا على ما إذا كانت الروابط التي استخدمناها لا تزال تعمل). يستخدم هذا الملف عناوين 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
. سيتم تنزيل نماذج الهمس تلقائيًا عند استخراج التضمينات.
تتوفر البرامج النصية لاستخراج التضمينات في دليل embedding_extraction
( extract_whisper.py
، hubert.py
، wav2vec2.py
، و wavlm.py
). إذا كنت ترغب في استخراج التضمينات لمجموعة بيانات جديدة ، فيمكنك إضافة مجموعة البيانات إلى هذه الملفات. كان التضمين استخراج بشكل عام الجزء الأكثر استهلاكًا للوقت في تشغيل هذا المشروع. عند استخراج التضمينات للهمس ، ستحتاج إلى التأكد من أنك تستخدم فرع extract-embeddings
في شوكة الهمس.
بمجرد استخراج التضمينات ، يمكنك تشغيل البرامج النصية في plots/eats
لإجراء اختبارات ارتباط التضمين. ستؤدي ذلك إلى حفظ القيم العاملة D S و P إلى نتائج للملفات في plots/eats/test_results
(يتم تخزين ملفات النتائج من تجاربنا حاليًا هناك). يتوفر برنامج نصي يستخدم لإنشاء بعض المؤامرات في الورقة في plots/eats/plot_all_results.py
. لتقدير الخطأ القياسي للعلبة 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
.