Tôi muốn viết/lập trình/phát triển một thuật toán có thể nhận ra nhiều đặc điểm trong dữ liệu từ một dòng trong âm thanh/mic. Các dòng âm thanh sẽ được âm nhạc và tôi muốn lọc ra các đặc điểm để phân biệt các bài hát với nhau, bằng cách phân biệt tôi có nghĩa là bạn có thể gọi các thể loại của các bài hát ngoài.Phát hiện các đặc điểm trong dòng âm thanh
Một điều quan trọng mà tôi hoàn toàn muốn phát hiện là loại thanh/nhịp bài hát có. Ví dụ tôi muốn biết bài hát có trong thời gian 3/4 không.
Các bài viết hữu ích duy nhất mà tôi tìm thấy là về phát hiện BPM nhưng điều đó không đủ để phân biệt bài hát với một bài hát khác.
FFT là một khởi đầu tốt để có các đặc tính khác nhau từ luồng âm thanh nhưng tôi không biết bắt đầu từ đâu. Có thể nhận được thanh/nhịp với FFT không? Có bất kỳ hướng dẫn/mã ví dụ tốt về điều này?
FFT có đủ để nhận các đặc điểm tốt của luồng âm thanh hay không có bất kỳ thuật toán nào khác phù hợp để nhận các đặc điểm trong luồng âm thanh không?
Tốt hơn là tôi sẽ làm điều này trong C# vì đó là ngôn ngữ lập trình mà tôi có nhiều kinh nghiệm nhất. Điều này có thể có trong C# hoặc là một ngôn ngữ khác tốt hơn?
Để tổng hợp câu hỏi của tôi, tôi đang tìm bất kỳ thông tin nào về việc tìm các đặc tính trong luồng âm thanh để nhận nhịp/vạch và các thông tin khác để phân biệt bài hát.
Tôi nghĩ rằng bạn đang nhầm lẫn nhịp ("BPM") và đồng hồ ("3/4 thời gian") tại đây. Beat có thể phát hiện được, đồng hồ có thể, nhưng tinh tế hơn nhiều. – RBarryYoung
Tôi không phải là người nói tiếng Anh bản địa, tôi đã cố hết sức để giải thích vấn đề của mình nhưng tôi nghĩ rằng tôi không nhầm lẫn giữa "BPM" và "Đồng hồ". Có lẽ bạn chỉ hiểu lầm tiếng Anh của tôi. Tôi đã biết một số phương pháp để có được BPM nhưng tôi không thể phân biệt các bài hát với nó. Tôi cũng muốn phát hiện ra "đồng hồ. Tôi biết rằng đây là một vấn đề tinh tế nhưng nếu ai đó biết điều gì đó về nó, tôi sẽ rất vui. – Shamshiel