วิธีการใดที่ใช้สำหรับการแยกแยะความแตกต่างของเสียง (ดนตรี?)


12

ฉันพยายามค้นคว้าและหาวิธีที่ดีที่สุดในการโจมตีปัญหานี้ มันเลาะเลียบไปกับการประมวลผลเพลงการประมวลผลภาพและการประมวลผลสัญญาณและดังนั้นจึงมีวิธีมากมายในการดู ฉันต้องการสอบถามวิธีการที่ดีที่สุดในการเข้าหามันเนื่องจากสิ่งที่อาจดูซับซ้อนในโดเมน sig-proc บริสุทธิ์อาจเป็นเรื่องง่าย (และแก้ไขแล้ว) โดยผู้ที่ทำภาพหรือการประมวลผลเพลง อย่างไรก็ตามปัญหามีดังนี้:ป้อนคำอธิบายรูปภาพที่นี่

หากคุณยกโทษให้ฉันด้วยการวาดปัญหาเราจะเห็นสิ่งต่อไปนี้:

f1f4

f1

f1

ปัญหาคือในทางใดที่ฉันจะแก้ไขปัญหานี้เช่นฉันสามารถเขียนลักษณนามที่สามารถแยกแยะระหว่างสัญญาณ -1 สัญญาณ 2 และสัญญาณ 3 นั่นคือถ้าคุณป้อนสัญญาณสัญญาณใดสัญญาณหนึ่งมันควรจะบอกได้ว่าสัญญาณนี้เป็นเช่นนั้น สิ่งที่ดีที่สุดของลักษณนามจะให้เมทริกซ์ความสับสนในแนวทแยง?

บริบทเพิ่มเติมบางอย่างและสิ่งที่ฉันคิดเกี่ยวกับป่านนี้:

อย่างที่ฉันพูดไปนี้เลาะเลียบทุ่งจำนวนมาก ฉันต้องการสอบถามเกี่ยวกับวิธีการที่อาจมีอยู่ก่อนที่ฉันจะนั่งลงและไปทำสงครามกับสิ่งนี้ ฉันไม่ต้องการประดิษฐ์ล้ออีกครั้งโดยไม่ได้ตั้งใจ นี่คือความคิดบางอย่างที่ฉันได้มองจากมุมมองที่แตกต่างกัน

มุมมองการประมวลผลสัญญาณ: สิ่งหนึ่งที่ฉันได้ดูคือทำการวิเคราะห์ Cepstralและจากนั้นอาจใช้Gabor Bandwidthของ cepstrum ในการแยกแยะสัญญาณ -3 จากอีก 2 และจากนั้นวัดจุดสูงสุดสูงสุดของ cepstrum ในการแยกสัญญาณ - 1 จากสัญญาณ -2 นั่นเป็นโซลูชันการทำงานการประมวลผลสัญญาณปัจจุบันของฉัน

จุดยืนของการประมวลผลภาพ: ที่นี่ฉันกำลังคิดอยู่เพราะในความเป็นจริงฉันสามารถสร้างภาพที่มีสเปคตรัมได้หรือเปล่า ฉันไม่คุ้นเคยอย่างใกล้ชิดกับส่วนนี้ แต่สิ่งที่เกี่ยวกับการทำ 'เส้น' ตรวจจับโดยใช้การแปลง Houghแล้วอย่างใด 'นับ' เส้น (ถ้าพวกเขาไม่ใช่เส้นและ blobs แม้ว่า) และไปจากที่นั่น? แน่นอนว่า ณ เวลาใดเวลาหนึ่งที่ฉันทำการวัดสเปกตรัมของพัลส์ที่คุณเห็นอาจถูกเลื่อนไปตามแกนเวลาดังนั้นเรื่องนี้จะเป็นเช่นไร? ไม่แน่ใจ...

จุดยืนของการประมวลผลเพลง:ส่วนย่อยของการประมวลผลสัญญาณต้องแน่ใจ แต่มันเกิดขึ้นกับฉันว่าสัญญาณ -1 มีคุณภาพ (ทางดนตรี?) ซ้ำ ๆ ซึ่งอาจจะซ้ำ ๆ กันซึ่งผู้คนในวงการเพลงเห็นอยู่ตลอดเวลาและได้แก้ไขไปแล้ว บางทีอาจเป็นเครื่องมือแบ่งแยก ไม่แน่ใจ แต่ความคิดนั้นเกิดขึ้นกับฉัน บางทีจุดยืนนี้เป็นวิธีที่ดีที่สุดในการดูจดโดเมนเวลาและหยอกล้ออัตราขั้นตอนเหล่านั้นหรือไม่ อีกครั้งนี่ไม่ใช่สาขาของฉัน แต่ฉันสงสัยอย่างมากว่านี่คือสิ่งที่เคยเห็นมาก่อน ... เราจะดูสัญญาณทั้ง 3 เป็นเครื่องดนตรีประเภทต่าง ๆ ได้หรือไม่?

ฉันควรจะเพิ่มว่าฉันมีข้อมูลการฝึกอบรมที่เพียงพอดังนั้นบางทีการใช้วิธีการเหล่านั้นอาจทำให้ฉันได้รับการดึงคุณสมบัติซึ่งฉันสามารถใช้K-Neighbor Neighborด้วย แต่นั่นเป็นเพียงความคิด

อย่างไรก็ตามนี่คือที่ฉันยืนอยู่ตอนนี้ความช่วยเหลือใด ๆ ที่ชื่นชม

ขอบคุณ!

แก้ไขตามความคิดเห็น:

  • f1f2f3f4f1f2f2

  • อัตราการเกิดซ้ำของพัลส์และความยาวพัลส์ของสัญญาณทั้งสามคลาสนั้นเป็นที่ทราบกันล่วงหน้า (ความแตกต่างอีกครั้ง แต่น้อยมาก) ข้อสังเกตบางประการแม้ว่าอัตราการเกิดซ้ำของพัลส์และความยาวของสัญญาณ 1 และ 2 เป็นที่ทราบกันอยู่เสมอ แต่เป็นช่วง โชคดีที่ช่วงเหล่านั้นไม่ทับซ้อนกันเลย

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

  • f1f2f3f4


คุณจะป้อนข้อมูลอะไร 1 / สตรีมแบบต่อเนื่องที่คุณต้องการแยกสัญญาณที่เกิดขึ้น 1/2/3 (ปัญหาการแบ่งส่วน + ปัญหาการจำแนก) หรือ 2 / ตัวอย่างแต่ละตัวอย่างที่มีสัญญาณประเภทเดียวที่คุณต้องการจัดเป็นหมวดหมู่ 1/2/3? คุณอธิบายคุณสมบัติหลายประการของสัญญาณ: PRT ของสัญญาณ 1; ความถี่ซ้ำของสัญญาณ 2; ความถี่ของสัญญาณ 3 ค่าของ f1 / f2 / f3 / f4 พารามิเตอร์เหล่านี้เป็นที่รู้จักล่วงหน้าหรือตัวแปร? สุดท้ายในกรณีที่การป้อนข้อมูลของคุณมีสัญญาณหลายอย่างเกิดขึ้นกับส่วนเหล่านั้นระยะเวลาปกติของกลุ่มคืออะไร?
pichenettes

คำถามอื่น: จากภาพวาดของคุณดูเหมือนว่าคุณกำลังเผชิญกับเสียงที่บริสุทธิ์ (ไม่มีเสียงประสานและไม่มีเสียงรบกวน) เป็นกรณีนี้หรือว่าข้อมูลสกปรกกว่าภาพวาดของคุณมาก?
pichenettes

@pichenettes ขอบคุณฉันเพิ่มข้อมูลที่คุณต้องการในการแก้ไข
Spacey

ติดตามความคืบหน้าของคุณและการแก้ปัญหาสำหรับคำถามนี้จะได้รับการชื่นชม การวิเคราะห์ขึ้นอยู่กับความแปรปรวนของเวลาที่ศึกษา หากพวกมันเร็วกว่าหน้าต่าง fft ให้พูดภายใต้ตัวอย่าง 256 ตัวอย่างคุณจะต้องใช้สเป็คตรัมความละเอียดสูง ยิ่ง spectrogram แม่นยำยิ่งคุณสามารถเห็นข้อมูลรายละเอียดเล็กน้อยในเสียงของคุณ FFT น่าจะดีหลังจากนั้นคำถามก็เป็นเพียงกรณีของการเพิ่มตัวดำเนินการเชิงตรรกะเพื่อจำแนกเสียงโดยใช้รูทีนการวิเคราะห์รูปแบบง่าย ๆ วิเคราะห์ระยะเวลาของพัลส์ระยะห่างระหว่างพวกเขาธรรมชาติของเสียงประสานทั้งหมดเป็นต้น
com.prehensible

มันง่ายมากที่จะหาฮาร์มอนิกหลักเพียงแค่ตรวจสอบค่าสูงสุดของทุก ๆ เส้น x จากนั้นคุณก็จบลงด้วยกราฟเพื่อวิเคราะห์โดยใช้โปรแกรมการวิเคราะห์ลายเซ็นรูปแบบซึ่งดำเนินการเหมือนกับว่าคุณวิเคราะห์ด้วยโวหาร วาดกฎของตัวสร้างความแตกต่างที่ดีที่สุดที่คุณใช้อย่างรอบคอบเมื่อเปรียบเทียบและจำแนกความก้าวหน้าของจำนวน
com.prehensible

คำตอบ:


7

ขั้นตอนที่ 1

S(m,k)mk

ขั้นตอนที่ 2

สำหรับแต่ละเฟรม STFT ให้คำนวณความถี่พื้นฐานที่โดดเด่นโดยใช้บางอย่างเช่น YIN พร้อมกับตัวบ่งชี้ "pitch มั่นใจ" เช่นความลึกของ "จุ่ม" DMF ที่คำนวณโดย YIN

f(m)mv(m)m

r0

e(m)m

ขั้นตอนที่ 3

MMM=50

แยกคุณสมบัติต่อไปนี้:

  • σf(k)(f(m))m[kM,k+M],v(m)>τ
  • σv(k)(v(m))m[kM,k+M]
  • σe(k)(e(m))m[kM,k+M]

σfσvσe

σfσvσeσfσvσeσfσvσe

คำนวณคุณสมบัติทั้ง 3 นี้ในข้อมูลการฝึกอบรมของคุณและฝึกอบรมตัวจําแนกเบส์แบบไร้เดียงสา ขึ้นอยู่กับว่าข้อมูลของคุณดีแค่ไหนคุณสามารถลบตัวแยกประเภทและใช้เกณฑ์ที่กำหนดด้วยมือกับคุณลักษณะได้แม้ว่าฉันจะไม่แนะนำก็ตาม

ขั้นตอนที่ 4

M

หากข้อมูลและตัวจําแนกของคุณดีคุณจะเห็นสิ่งนี้:

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3

สิ่งนี้จะแบ่งเวลาเริ่มต้นและสิ้นสุดค่อนข้างดีและประเภทของสัญญาณแต่ละสัญญาณ

หากข้อมูลของคุณมีเสียงดังจะต้องมีการแบ่งเฟรมปลอม

1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, 2, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 2, 3, 3, 3

หากคุณเห็นอึมากในกรณีที่สองให้ใช้ตัวกรองโหมดในข้อมูลผ่านย่านที่อยู่อาศัยที่มีการตรวจจับ 3 หรือ 5 ตัว หรือใช้ HMM

นำข้อความกลับบ้าน

สิ่งที่คุณต้องการยึดตามการตรวจจับของคุณไม่ใช่คุณสมบัติของสเปกตรัม แต่รวมสถิติชั่วคราวของคุณลักษณะสเปกตรัมผ่านหน้าต่างซึ่งอยู่ในระดับเดียวกับระยะเวลาของสัญญาณของคุณ ปัญหานี้เรียกร้องให้มีการประมวลผลบนมาตราส่วนสองครั้ง: เฟรม STFT ที่คุณคำนวณคุณสมบัติสัญญาณภายในเครื่อง (แอมพลิจูดพิทช์ระดับสูงระดับความเข้มของพิทช์) และหน้าต่างขนาดใหญ่ที่คุณมองไปที่ความแปรปรวนชั่วคราว


โปรดทราบว่าคุณสามารถใช้รูปแบบการรู้จำเสียงด้วยก็ได้หากคุณต้องการยกระดับ HTK หรือชอบ ... รุ่นอะคูสติก: 4 โทรศัพท์ P1, P2, P3, P4 (เสียงที่ f1, เสียงที่ f2, เสียงที่ f3, เสียงที่ f4 ) +1 สัญลักษณ์ S เพื่อความเงียบ 1 หรือ 2 gaussians ต่อโทรศัพท์ Word รุ่น W1 สำหรับสัญญาณ 1: (P1 S P2 S P3 S P4 S) + Word รุ่น W2 สำหรับสัญญาณ 2: (P1 S) + Word รุ่น W3 สำหรับสัญญาณ 3: (P1) + รูปแบบประโยค: (W1 | W2 | W3) * ข้อแม้เดียวคือถ้าคุณใช้กล่องเครื่องมือรู้จำเสียงคุณจะต้องปรับแต่งฟีเจอร์การแยกส่วนหน้าเนื่องจาก MFCCs มีความละเอียดต่ำเกินไปและไม่เชื่อเรื่องพระเจ้าเพื่อแยก f1 / f2 / f3 / f4
pichenettes

@pichenettes ขอบคุณ pichenettes นั่นเป็นคำตอบที่ดีมาก - ฉันมีเพื่อนติดตาม: 1) 'YIN' ที่คุณพูดถึงคืออะไรและ 'DMF' คืออะไร? ฉันไม่พบสิ่งใดในพวกเขาผ่านทาง google 2) 'ความมั่นใจในระดับเสียง' เป็นอะไร? 3) คุณพูดถึงว่าคุณสามารถใช้ความสัมพันธ์แบบอัตโนมัติเพื่อค้นหาความมั่นใจในระดับพิตช์ - ความสัมพันธ์อัตโนมัติของสิ่งที่กรอบโดเมนเวลาหรือ STFT ของเฟรม? (ฉันไม่เข้าใจสิ่งนี้อาจเป็นเพราะฉันไม่รู้ว่าคุณหมายถึงระดับความมั่นใจในระดับใด) (ต่อ ... )
Spacey

@pichenettes (ต่อ) 4) เกี่ยวกับคุณสมบัติที่มีอยู่ต่อหน้าต่างเท่านั้นใช่หรือไม่ ดังนั้นคุณกำลังคำนวณสาม stds ต่อหน้าต่างของ (ในกรณีนี้) 101 เฟรม? ในกรณีนี้เมื่อถึงเวลาที่ต้องฝึกซ้อม 'จุด' 3 มิติของฉันถูกสร้างขึ้นจาก 3 แท่งที่มี 101 เฟรมใช่ไหม? 5) ในขั้นตอนที่ 4 ของคุณเมื่อคุณมีหมายเลข 1,1,1,2,2 ฯลฯ แต่ละหมายเลขจะสอดคล้องกับวิธีที่คุณจัดประเภทหน้าต่างนั้นถูกต้องหรือไม่ ตัวแรก '1' คือการจัดประเภทของหน้าต่างที่ประกอบด้วยเฟรม -50 ถึง 50 และตัวที่สอง '1' จากหน้าต่างที่สร้างขึ้นจากเฟรม -49 ถึง 51 ถูกต้องหรือไม่ (หน้าต่างเลื่อน 1 เฟรมทุกครั้ง) ...
Spacey

@pichenettes 6) ในที่สุดฉันควรจะกล่าวว่านี่จะใช้เป็น 'สัญญาณเตือนภัย' เพื่อว่าถ้าสัญญาณ -1 หรือสัญญาณ -2 มีอยู่ฉันได้รับสัญญาณเตือนภัยให้ดังขึ้น แต่ถ้าไม่มีอะไรควรปิดถ้า ไม่มีสิ่งใดที่นั่น - ไม่ควรมีขีด จำกัด ในการจับคู่ก่อนที่มันจะเริ่มพยายามจัดประเภทเพื่อที่คุณจะไม่ได้รับผลบวกที่ผิดพลาดเหนือสิ่งอื่นใด? (เช่นเสียงพื้นหลังเป็นต้น) (ตอนนี้ฉันกำลังเรียนรู้เกี่ยวกับตัวแยกแยะ Naive Bayes ตอนนี้เลยไม่รู้เลยว่ามันมีหลายคลาส) 7) ขอบคุณมากด้วยวิธีและขอบคุณล่วงหน้า! พันและหนึ่งการอัปเดตสำหรับคุณ! :-)
Spacey

1
1 / YIN เป็นอัลกอริทึมการตรวจจับระดับเสียงขั้นสูงสำหรับสัญญาณเสียงพูดและเพลง recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf DMF คือ "ฟังก์ชั่นความแตกต่างของขนาด" ปริมาณที่คำนวณโดยอัลกอริทึมเช่น YIN สำหรับการประมาณระดับเสียง อัลกอริทึมการตรวจจับพิทช์เช่น YIN จะให้ผลการประมาณความถี่พื้นฐานและ "คะแนนความเชื่อมั่น" ซึ่งระบุว่ามีโอกาสมากที่พิทที่กลับมาเป็นคำตอบที่ถูกต้อง สำหรับสัญญาณที่มีเสียงดังหรือสัญญาณที่แสดงระยะห่างหลายระดับซึ่งจะต่ำในคลื่นไซน์บริสุทธิ์ซึ่งจะสูงมาก
pichenettes

3

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

สิ่งนี้จะทำงานได้ดีแม้ว่าสัญญาณจะค่อนข้างดัง


ฉันกำลังคิดเกี่ยวกับวิธีนี้ - คุณมองข้ามข้อดีของวิธีนี้ (การผสมลงไปและ LPF'ing) ในการทำงานโดยตรงที่ pass-pand โดยใช้ spectrogram หรือไม่?
Spacey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.