ที่เก็บนี้มีรหัสสำหรับ รูปแบบการประมวลผลคำพูดที่ผ่านการฝึกอบรมมาแล้วมีอคติเหมือนมนุษย์ที่เผยแพร่ไปสู่การจดจำอารมณ์ความรู้สึก ซึ่งปรากฏในการค้นพบของ EMNLP 2023 โปรดสร้างปัญหาและแท็กฉัน (@isaaconline) หากคุณมีคำถามใด ๆ
แพ็คเกจ Python ที่จำเป็นในการเรียกใช้รหัสส่วนใหญ่ใน repo นี้แสดงอยู่ใน 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 มาจาก คลังภาษาของภาษาแอฟริกันอเมริกันในภูมิภาค เราใช้องค์ประกอบ Coraal ทั้งหมดที่บันทึกไว้หลังจากปี 2543 และวางจำหน่ายในเดือนตุลาคมปี 2565EU_Emotion_Stimulus_Set มาจาก ชุดกระตุ้นการเคลื่อนไหวของ EU-Emotion: การศึกษาการตรวจสอบความถูกต้องMESS มาจาก การจัดอันดับของกระดาษและการจัดอันดับมิติของการพูดทางอารมณ์: การค้นพบพฤติกรรมจากชุดคำพูดทางอารมณ์ของมอร์แกนspeech_accent_archive สามารถดาวน์โหลดได้โดยใช้ไฟล์ downloading/download_saa.pyTORGO มาจาก ฐานข้อมูล Torgo ของคำพูดอะคูสติกและข้อต่อจากลำโพงที่มี dysarthriaUASpeech มาจาก ฐานข้อมูลคำพูด dysarthric สำหรับการวิจัยการเข้าถึงสากล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 และ FAMILY 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 โมเดล Whisper จะถูกดาวน์โหลดโดยอัตโนมัติเมื่อแยกการฝังตัว
สคริปต์สำหรับการสกัดแบบฝังมีอยู่ในไดเรกทอรี embedding_extraction ( extract_whisper.py , hubert.py , wav2vec2.py และ wavlm.py ) หากคุณต้องการดึงชุดข้อมูลสำหรับชุดข้อมูลใหม่คุณสามารถเพิ่มชุดข้อมูลลงในไฟล์เหล่านี้ได้ การสกัดแบบฝังโดยทั่วไปเป็นส่วนที่ใช้เวลามากที่สุดในการดำเนินโครงการนี้ เมื่อแยกการฝังตัวสำหรับ Whisper คุณจะต้องตรวจสอบให้แน่ใจว่าคุณใช้สาขา extract-embeddings ของส้อม Whisper ของฉัน
เมื่อทำการสกัดแบบฝังแล้วคุณสามารถเรียกใช้สคริปต์ใน plots/eats เพื่อทำการทดสอบการฝังสมาคม สิ่งเหล่านี้จะบันทึก speat d s และ p -values เพื่อผลลัพธ์ไปยังไฟล์ใน plots/eats/test_results (ไฟล์ผลลัพธ์จากการทดลองของเราถูกเก็บไว้ที่นั่น) สคริปต์ที่ใช้สำหรับการสร้างพล็อตบางส่วนในกระดาษมีให้ที่ plots/eats/plot_all_results.py ในการประเมินข้อผิดพลาดมาตรฐานของ speat d s มีสคริปต์ใน plots/standard_error ผลลัพธ์จากการประมาณข้อผิดพลาดมาตรฐานของเราอยู่ใน plots/standard_error/all_mean_mean_results.csv ในการฝึกอบรมแบบจำลองดาวน์สตรีมคุณสามารถใช้ไฟล์ embedding_extraction/train_emotion_model.py น้ำหนักของรุ่น SER ที่เราได้รับการฝึกฝนอยู่ใน dimension_models/model_objects คุณสามารถใช้เพื่อทำนายความจุในชุดข้อมูลอินพุตโดยใช้ embedding_extraction/predict_valence.py