Scipy - การประมวลผลเสียง


14

ฉันกำลังมองหาเครื่องมือที่ดีสำหรับการประมวลผลสัญญาณเสียง เช่นการวิเคราะห์คำพูดและดนตรีการระบุภาษาอัตโนมัติ ฯลฯ

ห้องสมุด Scipy มีฟังก์ชั่นสำหรับการประมวลผลเสียงหรือไม่? มันมีเครื่องมือที่ดีสำหรับการประมวลผลสัญญาณเสียงหรือไม่?

คุณช่วยแนะนำเครื่องมือสำหรับสิ่งนี้ได้ไหม?


1
ใช่ Scipy มีโครงสร้างพื้นฐานเพื่อทำสิ่งนี้ แต่คุณต้องมีความเจาะจงมากขึ้นในสิ่งที่คุณจะได้รับคำตอบที่มีประโยชน์มากขึ้น (โดยเฉพาะอย่างยิ่งการตอบว่ามี "เครื่องมือที่ดีกว่า [scipy]" หรือไม่ )
A_A

1
เรียลไทม์หรือออฟไลน์
endolith

ออฟไลน์ ฉันกำลังมองหาการจำแนกประเภทคำพูด / ดนตรี
user1147663

1
Scipy และ Numpy รวมกันเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการประมวลผลข้อมูลแบบเรียลไทม์และออฟไลน์ เมื่อใช้ร่วมกับ Cython หรือ Ctypes (ฉันมักจะชอบวิธี Cython) มันง่ายต่อการใช้งานกับอาร์เรย์ numpy ที่มีการดำเนินการที่รวดเร็วในระดับต่ำที่เขียนใน C หากห้องสมุดอื่นไม่สามารถโน้มน้าวให้เหมาะสม
Henry Gomersall

1
MATLAB ขาดสิ่งหนึ่งคือความสามารถในการกำหนดที่มาของอาร์เรย์ให้เป็นอย่างอื่นที่ไม่ใช่ 1 ดังนั้นเช่นค่า DC ในผลลัพธ์ของ FFT นั้นอยู่ใน bin # 1 แทนที่จะเป็น bin # 0 ตามที่ควรจะเป็น มีบางสิ่งที่โง่ ๆ เกี่ยวกับ MATLAB (หรือ Octave)
เบิร์ตบริสโตจอห์นสัน

คำตอบ:


9

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

  1. ชุมชนขนาดใหญ่ที่มีการพัฒนาอย่างรวดเร็วและให้บริการห้องสมุดจำนวนมาก SciPy มีวิธีการประมวลผลสัญญาณมากมาย (ที่ได้รับไม่ใช่ Matlab ที่ครบกำหนดแล้วและโตเต็มที่) แม้ว่า SciPy จะเป็นหนึ่งในสิ่งที่สำคัญที่สุด แต่ก็เป็นเพียงหนึ่งในร้อยที่สามารถช่วยคุณได้ ฉันพบว่าAubioดีที่สุดสำหรับการวิเคราะห์เพลง สำหรับการจดจำเสียงพูดและเพลงเพื่อให้แน่ใจว่าคุณจะเพลิดเพลินไปกับฟีเจอร์เสียงที่ยอดเยี่ยมที่Yaafeสามารถสกัดได้
  2. แจกฟรี! เมื่อออกจากสถาบันการศึกษาคุณจะพบว่า Matlab ค่อนข้างแพง และแม้ว่าคุณจะสามารถจ่ายได้ผู้ใช้มุมมองของคุณจะไม่พอใจกับการพึ่งพานี้ เช่นกรมการอนุรักษ์กล่าวถึงจะไม่ยอมรับซอฟต์แวร์ที่เป็นกรรมสิทธิ์
  3. การระบุมักจะต้องใช้การเรียนรู้ของเครื่องและ Python มีชุดเครื่องมือที่ยอดเยี่ยม: sklearn เป็นห้องสมุดที่ทันสมัยและใช้งานง่าย ดูการแข่งขัน Kaggle (การเรียนรู้ของเครื่อง) และตรวจสอบว่าโปรแกรมเมอร์ชั้นนำจำนวนมากกำลังใช้ Python และ sklearn
  4. คุณสามารถจัดการ "ข้อมูลขนาดใหญ่" หากคุณต้องการเรียกใช้การวิเคราะห์กับฐานข้อมูลขนาดใหญ่ของการบันทึก Python ก็มีชุดเครื่องมือที่ได้รับการยอมรับอย่างดี ฉันไม่คิดว่าอินเทอร์เฟซ Matlab / Octave อย่างง่ายดายด้วยเช่น Hadoop ถึงแม้ว่าโปรดแก้ไขให้ถูกต้องหากฉันทำผิด R ทำได้ดีกว่าในพื้นที่นี้
  5. เมื่อพูดถึงการเชื่อมต่อคุณสามารถเชื่อมต่อโปรแกรมของคุณกับเว็บไซต์ได้อย่างง่ายดาย นี่คือวิธีที่ฉันจัดการ Ornithokrites (การรู้จำนก): โปรแกรมทำงานบนบริการประมวลผลแบบคลาวด์ของ Amazon Web Services ดีมากถ้าคุณต้องการมอบซอฟต์แวร์ให้กับบุคคลอื่นที่ไม่ต้องการผ่านขั้นตอนการติดตั้งของไลบรารีที่จำเป็นทั้งหมด

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

ตัวอย่างการจำแนกเพลงใน Python:

ระบบการเรียนรู้เครื่องสร้างหนังสือด้วย Pythonมีบทเกี่ยวกับการจำแนกเพลง

เครื่องมืออื่น ๆ (รายการไม่สมบูรณ์): Python ใน Music


2

ดูเหมือนว่า Python เป็นภาษายอดนิยมสำหรับชุดเครื่องมือที่ดีบางอย่างจากความจริงที่ว่า ... ฉันเคยเห็นมันใช้ในแผนกเทคโนโลยีเพลงและ บริษัท

ในสถาบันการศึกษามันเป็นเรื่องธรรมดามากที่จะเห็นงานประเภทนี้ใน Matlab เนื่องจากเป็นการรวมเอาชุดเครื่องมือที่ทรงพลังมากมาย (การประมวลผลสัญญาณ, การคำนวณแบบขนาน, การสร้างกราฟ, สาธารณูปโภคฐานข้อมูล, การเรียนรู้ด้วยเครื่องจักร) ใน IDE ที่ง่ายต่อการสอบสวน อย่างไรก็ตามมันมีค่าใช้จ่ายและมีข้อเสีย (ไม่ใช่ภาษาการเขียนโปรแกรมที่ดีที่สุดในแง่ของการออกแบบแอปพลิเคชัน & ประสิทธิภาพดังนั้นจึงเป็นเครื่องมือสร้างต้นแบบส่วนใหญ่ แต่สามารถรวบรวมได้ที่ C) อ็อกเทฟเป็นทางเลือกฟรี แต่ฉันไม่สามารถรับรองคุณภาพของเครื่องมือประมวลผลสัญญาณหรือซอฟต์แวร์เองเนื่องจากฉันไม่ได้ใช้


ห้องสมุดที่ดีสำหรับเรื่องนี้คือgithub.com/worldveil/dejavu Python, โอเพ่นซอร์ส, MIT ได้รับอนุญาตและทำการรู้จำเสียงและพิมพ์ลายนิ้วมือ
lollercoaster

scipyระบบนิเวศมีฟังก์ชั่นการใช้งานมากมายของ MATLAB
Darleison Rodrigues

2

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

  • การกำจัดความเงียบ
  • ลำโพงบรรยายภาพ
  • การจำแนกกลุ่ม (และการฝึกอบรม) โดยใช้ SVM, kNN และอื่น ๆ
  • การแบ่งส่วนการจัดหมวดหมู่ร่วมกัน (โดยใช้ HMM)
  • ภาพขนาดย่อของเสียง
  • การสร้างภาพเนื้อหาเสียง

0

คุณสามารถใช้ไลบรารี่การวิเคราะห์เสียงEssentia C ++ ซึ่งรวมถึงการผูกหลาม คุณจะได้รับประโยชน์ทั้งหมดจากสภาพแวดล้อมของ python / scipy รวมถึงอัลกอริธึมการวิเคราะห์เสียง / เพลงมากมายที่มาพร้อมกับ Essentia

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