ฉันได้ทดลองหลายสัปดาห์เพื่อหาวิธีจับคู่ / ค้นหาเพลงที่คล้ายกันในห้องสมุดที่มีแนวดนตรีที่แตกต่างกัน
ความพยายามครั้งแรกของฉันคือการตรวจสอบคุณสมบัติเช่น Tempo หรือเสียงเบสที่มีในเพลงที่รวมตัวกันเป็นกลุ่ม แต่ฉันไม่ได้ไปไกลกับวิธีนี้ (การตรวจจับจังหวะการเปลี่ยนแปลงตามปริมาณ) ตั้งแต่ประมาณ 20% ของเพลง Beat เสมอบางครั้ง 1/2 หรือ 1/3 ของพวกเขาและฉันไม่สามารถใช้มันได้
หลังจากพยายามล้มเหลวหลายสัปดาห์ฉันก็มีความคิดใหม่ซึ่งจะอธิบายต่อไปในโพสต์นี้ เพียงแค่ทำให้มันใช้งานได้โดยใช้ Spectrum Samples of Files ทำให้เป็นเหมือน "Average Spectrum" ของไฟล์เพื่อเปรียบเทียบ แนวคิดที่อยู่เบื้องหลังคือตัวอย่างเช่น Hardstyle มีเบสมากกว่าเพลงร็อคโดยเฉลี่ยฉันยังตรวจสอบเรื่องนี้ด้วยการดู Spectrums ใน Audacity
- ไฟล์ 1: นำไฟล์เต็ม FFT Spectrums (2048 ตัวอย่างขนาด ATM, สัดส่วนการบันทึก Amplitudes)
- รวมอาร์เรย์สเปกตรัมทั้งหมดใช้ค่าเฉลี่ยของแต่ละ Bin
- ทำเช่นเดียวกันกับไฟล์อื่นบางไฟล์จัดเก็บผลลัพธ์ทั้งหมด
- ทำรายการค่า FFT ความแตกต่างระหว่างไฟล์ 1 และไฟล์อื่น ๆ
- ทำค่าเฉลี่ยของความแตกต่างระหว่างไฟล์ 1 และไฟล์ X
- เรียงลำดับจากน้อยไปมากตามค่าเฉลี่ยเหล่านี้
- เพลงที่มี "ค่าความแตกต่างต่ำที่สุด" ถือว่ามีความคล้ายคลึงกัน
คุณบางคนที่มีความรู้ดีสามารถบอกฉันได้หรือไม่ว่านี่จะเป็นวิธีที่ถูกต้อง / ดีในการนำแนวคิดของฉันไปใช้?