2009-12-09 28 views
5

Có thể viết chương trình có thể trích xuất giai điệu/nhịp/nhịp được cung cấp bởi một bản đồ cụ thể trong sóng (hoặc định dạng nhạc khác) tập tin được tạo thành từ nhiều công cụ?trích xuất một giai điệu/nhịp/giai điệu cụ thể từ một tập tin cụ thể từ một tệp sóng hỗn hợp (hoặc định dạng nhạc khác)

Thuật toán nào có thể được sử dụng cho điều này và ngôn ngữ lập trình nào phù hợp nhất với nó?

+0

Có thể. – Nifle

+0

Bạn cần cụ thể hơn. – Nifle

+0

Shane: Hy vọng bạn không phiền, tôi đã thêm một chút rõ ràng hơn dựa trên cuộc trò chuyện của chúng tôi và thêm một thẻ phụ có thể khiến bạn quan tâm hơn và do đó một câu trả lời hữu ích hơn – BenAlabaster

Trả lời

1

Công cụ tạo ra chữ ký âm thanh, giống như cách giọng nói của chúng tôi thực hiện. Có những thuật toán trên mạng có thể chọn một giọng nói duy nhất từ ​​đám đông và xác định giọng nói đó từ chữ ký của nó trong cơ sở dữ liệu được sử dụng trong pháp y. Trong cùng một cách, chữ ký âm thanh của một nhạc cụ có thể được chọn ra từ một soundscape (chẳng hạn như sóng hỗn hợp của bạn) và được sử dụng để chọn ra một nhịp, hoặc tạo một bản sao của nhạc cụ đó theo cách riêng của nó.

Rõ ràng nếu bạn đang nghĩ đến việc tạo bản sao các bản nhạc, tức là chia nhỏ sóng hỗn hợp thành một bản nhạc cho mỗi nhạc cụ, bạn sẽ xem xét rất nhiều công việc. Sự hiểu biết của tôi là do sự trùng lặp tần số của các công cụ, điều này sẽ không đơn giản bằng bất kỳ phương tiện nào ... không phải là không thể dù bạn đã được bảo.

Có khá một bài đăng blog thú vị bằng cách Comparisonics về kết hợp công nghệ âm thanh mà có thể có ích như một sự khởi đầu cho việc tìm kiếm của bạn để biết thông tin: http://www.comparisonics.com/SearchingForSounds.html

+0

Cảm ơn sự khích lệ, Ben! "phản ứng tuy nhiên là giả sử bạn biết những gì loại công cụ đang trong ca khúc mà chúng tôi không cụ, hiệu ứng, tất cả họ đều pha trộn với nhau về mặt lý thuyết, nếu bạn là một người làm việc của con người trên ONE TRACK và bạn biết những gì loại của tất cả các dụng cụ mà chúng đều là và "chữ ký âm thanh" của nó có thể được thực hiện nhưng là một quá trình tự động, không thể KHÔNG THỂ "-a hater – Shane

+0

Bạn chỉ cần một khu vực của bản nhạc có thể phân biệt rõ ràng với nhau, bạn không cần phải biết chúng là gì. Một cái gì đó giống như so sánh sẽ cho bạn biết từ chữ ký âm thanh của họ những gì họ đang có. Ngay cả khi không biết công cụ, bạn có thể sử dụng chữ ký âm thanh đã xác định để trích xuất phần còn lại. – BenAlabaster

+0

Để làm rõ bằng "trích xuất", tôi không muốn xóa nó khỏi bản gốc, nghĩa là tạo một bản sao chỉ chứa "giọng nói" đó - ngoại trừ những chữ ký trùng với điểm mà chúng không thể nhận dạng điện tử từ nhau . Mặc dù, tôi tưởng tượng rằng giống như màu sắc, một cỗ máy có thể nhận ra âm thanh mà chúng ta hoàn toàn không thể phân biệt được sự khác biệt giữa tai người chúng ta. – BenAlabaster

0

Nhìn vào các thuật toán máy Karaoke. Nếu họ có thể xóa giọng nói khỏi một bài hát, tôi chắc chắn rằng các nguyên tắc tương tự có thể được áp dụng để trích xuất một công cụ duy nhất.

0

Hầu hết các công cụ tạo ra âm thanh trong phạm vi tần số nhất định.

Nếu bạn viết bộ lọc băng thông có thể điều chỉnh - bộ lọc chỉ cho phép một dải tần số nhất định đi qua - nó sẽ gần như bạn có khả năng nhận được. Nó sẽ không ở đâu gần hoàn hảo; bạn đang yêu cầu ma thuật đen. Cách duy nhất để trích xuất hoàn hảo một nhạc cụ duy nhất từ ​​bản nhạc là có mẫu âm thanh của bản nhạc mà không có nhạc cụ đó và thực hiện một sự khác biệt của hai dạng sóng.

C, C++, Java, C#, Python, Perl tất cả có thể thực hiện tất cả điều này với đúng thư viện. Cái nào là "tốt nhất" phụ thuộc vào những gì bạn đã biết.

1

Để trích xuất nhịp hoặc nhịp điệu, bạn có thể không cần cách ly hoàn hảo công cụ bạn đang nhắm mục tiêu. Một giải pháp chung có thể khó, nhưng nếu bạn đang cố gắng giải quyết nó cho một phần cụ thể, nó có thể là có thể. Hãy thử triển khai bộ lọc băng thông và xem liệu bạn có thể điều chỉnh bộ lọc để chọn nhạc cụ thứ bạn đang theo dõi hay không.

Ngoài ra, tôi chỉ tìm thấy sản phẩm Mac này được gọi là PhotoSounder. Họ có một blog hiển thị những cách khác nhau mà nó có thể được sử dụng, bao gồm isolating an individual instrument (với sự can thiệp thủ công).

0

Có thể về nguyên tắc, nhưng rất khó - một lĩnh vực nghiên cứu mở, ngay cả. Bạn có thể quan tâm đến giấy dự án cho Dancing Monkeys, một chương trình tạo bước cho StepMania. Nó thực hiện một số phát hiện nhịp đập khá tinh vi và phân tích âm nhạc, được chi tiết trong bài báo (được liên kết gần cuối trang đó).

Các vấn đề liên quan