การเรียนรู้เชิงลึกด้วย Spectrograms เพื่อการจดจำเสียง


12

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

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

ตัวอย่างเช่นด้วยเสียงนกในตอนเริ่มต้นและเสียงกบตอนท้าย (เอาต์พุตควรเป็น "Bird, Frog") วิธีแก้ปัญหาปัจจุบันของฉันคือการเพิ่มส่วนประกอบชั่วคราวให้กับเครือข่ายประสาท (สร้างเครือข่ายประสาทที่เกิดขึ้นอีก) แต่ฉันต้องการที่จะทำให้มันง่ายขึ้นสำหรับตอนนี้ ความคิดลิงก์บทเรียนหรือไม่?


1
วิธีที่ง่ายที่สุดคือการใช้ FFT ที่มีความยาวคงที่แทน STFT (spectrogram) สิ่งนี้จะช่วยลดปัญหาเรื่องความยาวของตัวแปร ทำไมคุณไม่ใช้เครือข่ายประสาทกำเริบ? คุณแค่ต้องการตัวอย่างการทำงานหรือไม่? ถ้าใช่คุณมีความยืดหยุ่นเกี่ยวกับซอฟต์แวร์ที่ใช้หรือไม่
Emre

1
ฉันคิดว่าฉันจะสูญเสียข้อมูลจำนวนมากด้วย FFT ที่มีความยาวคงที่ ถ้าฉันจะทำอย่างนั้นฉันคิดว่าฉันจะต้องแบ่งส่วนก่อนที่ฉันมองหาส่วน 'น่าสนใจ' ฉันอาจทำเช่นนั้นหรือไปที่เครือข่ายประสาทกำเริบ (ตัวอย่างดี แต่ไม่จำเป็นสุด ๆ ฉันต้องการใช้ลาซานญ่า) เหตุผลที่ฉันพยายามหลีกเลี่ยงก็คือผลลัพธ์ของเครือข่ายประสาทที่เกิดขึ้นอีกนั้นยากที่จะจัดการ (ในแต่ละขั้นตอน แต่ฉันมีป้ายกำกับสำหรับไฟล์ทั้งหมดเท่านั้น) ดังนั้นฉันต้องการเริ่มต้นด้วยโมเดลที่ง่ายที่สุดและค่อยๆทำให้มันซับซ้อนขึ้น
user667804

คุณช่วยกรุณาบอกสิ่งที่คุณใช้และวิธีการที่ดีที่สุดที่คุณพบ? @ user667804
nia

ลองอ่านบทความนี้เพื่อหาทางแก้ปัญหา: ceur-ws.org/Vol-1609/16090547.pdf การใช้ CNN บนชิ้นส่วนคงที่ขนาดคงที่ของสเปกโตรแกรมแล้วหาค่าเฉลี่ยของผลลัพธ์เพื่อสร้างการทำนายขั้นสุดท้าย ดีที่สุด)
user667804

คำตอบ:


4

สำหรับการรู้จำเสียงพูดอัตโนมัติ (ASR) คุณสมบัติกรองธนาคารดำเนินการที่ดีเป็นซีเอ็นเอ็นเมื่อ spectrograms ตารางที่ 1 คุณสามารถฝึกอบรมระบบ DBN-DNN บน fbank เพื่อจำแนกเสียงสัตว์

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

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

คุณสามารถบิดแกนความถี่ของสเปคโทรแกรมเพื่อเพิ่มการพูดให้เล็กลง เสริมข้อมูลนี้ได้รับการแสดงเพื่อปรับปรุงประสิทธิภาพ ASR ข้อมูล augumentation

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


4

RNNs ไม่ได้ผลลัพธ์ที่ดีพอและยังฝึกยากดังนั้นฉันจึงไปกับ CNN

เนื่องจากเสียงสัตว์เฉพาะนั้นมีความยาวเพียงไม่กี่วินาทีเราจึงสามารถแยก spectrogram ออกเป็นชิ้น ๆ ฉันใช้ความยาว 3 วินาที จากนั้นเราจะทำการจำแนกในแต่ละอันและเฉลี่ยผลลัพธ์เพื่อสร้างการทำนายเดียวต่อไฟล์เสียง มันใช้งานได้ดีจริง ๆ และใช้ง่าย

ดูคำอธิบายเชิงลึกเพิ่มเติมได้ที่นี่: http://ceur-ws.org/Vol-1609/16090547.pdf

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