แทร็กหัวเราะเตะเมื่อไหร่?


14

หนึ่งในโครงการสุดสัปดาห์ของฉันได้นำฉันเข้าสู่น่านน้ำลึกของการประมวลผลสัญญาณ เช่นเดียวกับโครงการรหัสของฉันทั้งหมดที่ต้องใช้เลขคณิตหนัก ๆ ฉันมีความสุขมากกว่าที่คนจรจัดจะแก้ปัญหาแม้จะไม่มีพื้นฐานทางทฤษฎี แต่ในกรณีนี้ฉันไม่มีเลยและรักคำแนะนำเกี่ยวกับปัญหาของฉัน คือ: ฉันพยายามที่จะคิดออกว่าเมื่อผู้ชมสดหัวเราะระหว่างรายการโทรทัศน์

ฉันใช้เวลาอ่านบทความเกี่ยวกับวิธีการเรียนรู้ของเครื่องในการตรวจจับเสียงหัวเราะ แต่ก็รู้ว่ามันเป็นเรื่องเกี่ยวกับการตรวจจับเสียงหัวเราะของแต่ละคน สองร้อยคนที่หัวเราะพร้อมกันนั้นจะมีคุณสมบัติทางเสียงที่แตกต่างกันมากและสัญชาตญาณของฉันก็คือพวกเขาควรจะแยกแยะได้ด้วยเทคนิคการยั่วยุมากกว่าเครือข่ายประสาท ฉันอาจจะผิดอย่างสมบูรณ์ แต่! จะขอบคุณความคิดในเรื่อง

นี่คือสิ่งที่ฉันได้พยายาม: ฉันตัดข้อความที่ตัดตอนมาห้านาทีจากตอนล่าสุดของ Saturday Night Live เป็นสองวินาที ฉันจึงระบุว่า "หัวเราะ" หรือ "ไม่หัวเราะ" เหล่านี้ ด้วยการใช้ตัวแยกฟีเจอร์ MFCC ของ Librosa ฉันใช้ K-หมายถึงการรวมกลุ่มกับข้อมูลและได้ผลลัพธ์ที่ดี - ทั้งสองกลุ่มทำแผนที่กับป้ายกำกับของฉันอย่างเรียบร้อย แต่เมื่อฉันพยายามวนซ้ำไฟล์ที่ยาวขึ้นการคาดคะเนไม่ได้เก็บน้ำไว้

สิ่งที่ฉันจะลองตอนนี้: ฉันจะต้องแม่นยำมากขึ้นเกี่ยวกับการสร้างคลิปเสียงหัวเราะเหล่านี้ แทนที่จะแยกและแยกคนตาบอดฉันจะแยกพวกมันออกด้วยตัวเองเพื่อที่ว่าจะไม่มีการสนทนาใดที่ทำให้เกิดมลพิษ จากนั้นฉันจะแบ่งพวกมันออกเป็นคลิปควอเตอร์ที่สองคำนวณ MFCC ของสิ่งเหล่านี้และใช้มันเพื่อฝึกฝน SVM

คำถามของฉัน ณ จุดนี้:

  1. มีเหตุผลอย่างนี้ไหม?

  2. สถิติช่วยได้ที่นี่ไหม ฉันเลื่อนไปมาในโหมดดูสเปคโทรแกรมของ Audacity และฉันสามารถเห็นได้อย่างชัดเจนว่าเกิดขึ้นที่ใด ในสเปคโตรแกรมพลังงานการพูดมีลักษณะโดดเด่นมาก "มีรอยย่น" ในทางกลับกันเสียงหัวเราะนั้นครอบคลุมความถี่ในวงกว้างค่อนข้างเท่ากันเกือบจะเหมือนกับการแจกแจงแบบปกติ มันเป็นไปได้ที่จะแยกความแตกต่างของเสียงปรบมือจากเสียงหัวเราะด้วยชุดความถี่ที่ จำกัด ยิ่งกว่าที่แสดงในเสียงปรบมือ นั่นทำให้ฉันคิดถึงความเบี่ยงเบนมาตรฐาน ฉันเห็นว่ามีบางสิ่งที่เรียกว่าการทดสอบ Kolmogorov – Smirnov ซึ่งอาจเป็นประโยชน์ที่นี่ spectrogram พลังงานเข้าสู่ระบบ (คุณสามารถเห็นเสียงหัวเราะในภาพด้านบนเป็นกำแพงสีส้มชน 45% ของทาง)

  3. สเปคตรัมเชิงเส้นดูเหมือนว่าจะแสดงว่าเสียงหัวเราะนั้นมีพลังมากขึ้นในความถี่ที่ต่ำกว่าและหายไปสู่ความถี่ที่สูงขึ้น - นี่หมายความว่ามันมีคุณสมบัติเป็นเสียงสีชมพูหรือไม่? ถ้าเป็นเช่นนั้นนั่นอาจเป็นปัญหาหลักได้หรือไม่ แสงแยกสีง

ฉันขอโทษถ้าฉันใช้ศัพท์แสงในทางที่ผิดฉันอยู่ในวิกิพีเดียไม่น้อยสำหรับเรื่องนี้และจะไม่แปลกใจถ้าฉันรู้สึกสับสน


1
ฉันเห็นด้วยกับ "ไม่จำเป็นต้องมีเครือข่ายประสาทเพื่อรับเครื่องตรวจจับที่แข็งแกร่งสำหรับเพลงหัวเราะ" ฉันยังเห็นด้วยกับคุณขว้างปา Kolmogorov ที่สัญญาณพิจารณาว่าถ้าคุณถูกต้องและติดตามหัวเราะเป็น (ถ่วงน้ำหนัก) ผลรวมของการหัวเราะ IID คุณควรจะได้รับคุณสมบัติปกติของบางชนิด บางทีคุณอาจต้องการเพิ่มความละเอียดของความถี่ โดยวิธีการสำหรับคนที่ "ไม่เข้า" DSP ศัพท์แสงของคุณค่อนข้างดี :) น่าเศร้าฉันไม่ใช่คนฟังเสียงดังนั้นฉันอาจไม่ได้เป็นประโยชน์มากนัก
Marcus Müller

ฉันยินดีที่จะช่วย คุณมีข้อมูลใด ๆ สำหรับการฝึกอบรมหรือไม่? หนึ่งในสิ่งที่สำคัญที่สุดคือการติดฉลากข้อมูล ขยะมูลฝอยเข้า - ออก หนึ่งในวิธีที่ง่ายและมีประสิทธิภาพมากที่สุดคือการฝึกอบรม GMM ของกระเป๋าและประเมินความน่าจะเป็น
jojek

คุณอาจต้องการตรวจสอบก่อนถ้าคุณสามารถแยกเสียงหัวเราะออกจากความเงียบโดยการตรวจสอบพลังงาน / ความกว้างของสัญญาณในเวลาที่กำหนด ทำให้คุณมีความเป็นไปได้ที่จะกำหนดช่วงเวลาที่เกิดเหตุการณ์ "สิ่ง" จากนั้นคุณสามารถลองดูการกระจายตัวของความถี่ ตัวอย่างเช่นคำพูดอาจมียอดแหลมที่คมชัดบางอย่าง (ไม่สนใจว่ายอดเขาเหล่านี้อยู่ตรงไหน) ในขณะที่เสียงหัวเราะเหมือนกันตามที่คุณพูด การติดตามสิ่งนี้อาจให้คุณค่าในการตัดสินใจว่ามันเป็นเสียงหัวเราะหรือไม่ (คุณต้องการข้อมูลปริมาณเพื่อให้แน่ใจว่าคุณไม่มีความเงียบเหมือนกัน)
user6522399

คำตอบ:


0

จากการสังเกตของคุณสเปกตรัมของสัญญาณนั้นมีความแตกต่างอย่างเพียงพอคุณสามารถใช้สิ่งนี้เป็นคุณสมบัติในการจำแนกเสียงหัวเราะจากการพูด

มีหลายวิธีที่คุณสามารถดูปัญหาได้

วิธีการ # 1

ในกรณีเดียวคุณสามารถดูเวกเตอร์ของ MFCC และใช้สิ่งนี้กับลักษณนามใด ๆ เนื่องจากคุณมีโดเมนความถี่ร่วมจำนวนมากคุณอาจต้องการดูโครงสร้างตัวแยกประเภทแบบคาสเคดด้วยการเพิ่มอัลกอริทึมเช่นAdaboostตามนี้คุณสามารถเปรียบเทียบระหว่างคลาสคำพูดกับคลาสหัวเราะ

วิธีการ # 2

คุณรู้ว่าคุณพูดเป็นสัญญาณที่แตกต่างกันไปตามเวลา ดังนั้นวิธีหนึ่งที่มีประสิทธิภาพในการทำคือดูความแปรปรวนของสัญญาณเอง สำหรับสิ่งนี้คุณสามารถแยกสัญญาณเป็นกลุ่มตัวอย่างและดูสเปกตรัมในเวลานั้น ตอนนี้คุณอาจตระหนักว่าเสียงหัวเราะอาจมีรูปแบบซ้ำ ๆ ตามระยะเวลาที่กำหนดซึ่งโดยปกติแล้วคำพูดจะมีข้อมูลมากขึ้นและด้วยเหตุนี้รูปแบบสเปกตรัมจึงค่อนข้างใหญ่ คุณสามารถใช้สิ่งนี้กับรูปแบบประเภทHMMเพื่อดูว่าคุณยังคงอยู่ในสถานะเดิมสำหรับคลื่นความถี่บางส่วนหรือคุณยังคงเปลี่ยนแปลงอยู่ตลอดเวลา ที่นี่แม้ว่าบางครั้งคลื่นเสียงของการพูดจะคล้ายกับเสียงหัวเราะ แต่ก็จะมีการเปลี่ยนแปลงเวลามากขึ้น

วิธีการ # 3

บังคับให้ใช้การเข้ารหัสชนิด LPC / CELP กับสัญญาณและสังเกตสิ่งตกค้าง การเข้ารหัส CELPทำให้การสร้างคำพูดมีความแม่นยำมาก

จากการอ้างอิงที่นี่: ทฤษฎีของ CELP CODING

ความซ้ำซ้อนในสัญญาณเสียงพูดนั้นเกือบจะถูกลบออกหลังจากการทำนายระยะสั้นและการคาดการณ์ระยะยาวของสัญญาณเสียงพูดและส่วนที่เหลือมีความสัมพันธ์น้อยมาก จากนั้นจะทำการค้นหาการกระตุ้นซึ่งจะสังเคราะห์เสียงพูดและดัชนีรหัสและกำไรจะถูกค้นหาจากรหัสคงที่ เกณฑ์การเลือกดัชนีรหัสสมุดบันทึกที่ดีที่สุดนั้นมาจาก MMSE ระหว่างคำพูดที่สังเคราะห์ขึ้นในท้องถิ่นและสัญญาณเสียงพูดดั้งเดิม

พูดง่าย ๆ หลังจากคำพูดทั้งหมดที่ถูกคาดการณ์จากตัววิเคราะห์ถูกลบออก - สิ่งที่เหลืออยู่คือสิ่งตกค้างที่ถูกส่งไปสร้างรูปคลื่นที่แน่นอน

สิ่งนี้ช่วยคุณได้อย่างไร โดยทั่วไปหากคุณใช้การเข้ารหัส CELP เสียงพูดในสัญญาณส่วนใหญ่จะถูกลบสิ่งที่เหลืออยู่จะเป็น ในกรณีที่เสียงหัวเราะเสียงส่วนใหญ่ของสัญญาณอาจถูกเก็บไว้เพราะ CELP จะไม่สามารถทำนายสัญญาณดังกล่าวด้วยการสร้างแบบจำลองทางเดินเสียงซึ่งเป็นคำพูดของแต่ละบุคคลจะมีสารตกค้างน้อยมาก คุณยังสามารถวิเคราะห์สิ่งตกค้างนี้ในโดเมนความถี่เพื่อดูว่ามันเป็นเสียงหัวเราะหรือคำพูด


0

ตัวจำแนกเสียงพูดส่วนใหญ่ไม่เพียงใช้ค่าสัมประสิทธิ์ MFCC เท่านั้น แต่ยังรวมถึงอนุพันธ์อันดับหนึ่งและอันดับสองของระดับ MFCC ฉันเดาว่าการ onsets จะมีประโยชน์มากในกรณีนี้และช่วยให้คุณแยกเสียงหัวเราะกับเสียงอื่น ๆ ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.