11

Tôi đang cố gắng sử dụng ANN để phát hiện quảng cáo chiêu hàng nốt nhạc. Mạng là một MLP hai lớp đơn giản, có đầu vào về cơ bản là một DFT (trung bình và logarithmically phân phối), và 12 kết quả đầu ra tương ứng với 12 ghi chú của một quãng tám cụ thể.Phát hiện quảng cáo chiêu hàng bằng cách sử dụng mạng thần kinh

Mạng được đào tạo với một số mẫu của 12 ghi chú đó được phát bởi một số nhạc cụ (một ghi chú cùng một lúc) và một vài mẫu "im lặng".

Kết quả thực sự tốt. Mạng có thể phát hiện những ghi chú được phát bởi các nhạc cụ khác nhau một cách chính xác, nó tương đối amune với tiếng ồn, và thậm chí không mất hoàn toàn khi nó được phát một bài hát.

Mục tiêu, tuy nhiên, là có thể phát hiện âm thanh đa âm. Vì vậy khi hai hay nhiều nốt được chơi cùng nhau, hai nơ-ron tương ứng sẽ cháy. Điều đáng ngạc nhiên là mạng thực sự đã làm điều đó ở một mức độ nào đó (chỉ được đào tạo trên các mẫu đơn âm), tuy nhiên ít nhất quán và ít chính xác hơn so với các ghi chú đơn âm. Câu hỏi của tôi là làm thế nào tôi có thể nâng cao khả năng nhận ra âm thanh đa âm?

Vấn đề là tôi không thực sự hiểu tại sao nó thực sự hoạt động. Các ghi chú khác nhau (hoặc DFT của chúng) về cơ bản là các điểm khác nhau trong không gian mà mạng được đào tạo. Vì vậy, tôi thấy lý do tại sao nó nhận ra âm thanh tương tự (các điểm lân cận), nhưng không phải cách nó "kết thúc" đầu ra cho một sự kết hợp các ghi chú (tạo thành một điểm xa từ mỗi ví dụ đào tạo). Tương tự như một mạng AND được đào tạo trên (0,0) (0,1) (1,0) = (0), không được dự kiến ​​sẽ "kết luận" (1,1) = (1).

Sức mạnh vũ phu là do đào tạo mạng với càng nhiều mẫu đa âm càng tốt. Tuy nhiên, kể từ khi mạng dường như mơ hồ nắm bắt được ý tưởng từ các mẫu đơn âm, có lẽ có điều gì đó đáng thương hơn ở đây.

Mọi con trỏ? (xin lỗi cho chiều dài, btw :).

Trả lời

6

Lý do nó hoạt động đã có thể khá đơn giản là bạn đã không đào tạo nó để chọn một và chỉ có một đầu ra (ít nhất tôi giả sử bạn không). Trong trường hợp đơn giản khi đầu ra chỉ là một sản phẩm chấm của đầu vào và trọng số, trọng số sẽ trở thành bộ lọc phù hợp cho quảng cáo chiêu hàng tương ứng. Vì mọi thứ đều tuyến tính, nhiều kết quả đầu ra sẽ đồng thời được kích hoạt nếu nhiều bộ lọc phù hợp đồng thời thấy kết quả phù hợp tốt (như trường hợp cho các ghi chú đa âm). Vì mạng của bạn có thể bao gồm phi tuyến, hình ảnh phức tạp hơn một chút, nhưng ý tưởng có thể giống nhau.

Về cách cải thiện, việc đào tạo bằng các mẫu đa âm chắc chắn là một khả năng. Một khả năng khác là chuyển sang bộ lọc tuyến tính. DFT của âm thanh đa âm về cơ bản là tổng DFT của mỗi âm thanh riêng lẻ. Bạn muốn kết hợp đầu vào tuyến tính để trở thành tổ hợp tuyến tính đầu ra tương ứng, do đó bộ lọc tuyến tính là thích hợp.

Ngẫu nhiên, tại sao bạn sử dụng mạng thần kinh cho điều này ngay từ đầu? Dường như chỉ cần nhìn vào DFT và, nói, lấy tần số tối đa sẽ cho bạn kết quả tốt hơn dễ dàng hơn.

+3

Chỉ cần lấy tần suất tối đa là rất không đáng tin cậy – finnw

2

Tôi đã thử nghiệm với việc phát triển CTRNN (Mạng lưới thần kinh tái diễn liên tục thời gian) để phát hiện sự khác biệt giữa 2 sóng sin. Tôi đã thành công vừa phải, nhưng không bao giờ có thời gian để theo dõi với một ngân hàng của các nơ-ron này (tức là trong các ban nhạc tương tự như ốc tai).

1

Một cách tiếp cận có thể là sử dụng Genetic Programming (GP), để tạo đoạn mã ngắn phát hiện quảng cáo chiêu hàng. Bằng cách này bạn sẽ có thể tạo ra một quy tắc cho cách phát hiện quảng cáo chiêu hàng, điều này hy vọng có thể đọc được.

3

Anssi Klapuri là nhà nghiên cứu âm thanh được tôn trọng, người đã xuất bản phương pháp để thực hiện phát hiện quảng cáo trên bản ghi âm đa âm sử dụng mạng nơron.

Bạn có thể muốn so sánh phương pháp của Klapuri với bạn. Nó được mô tả đầy đủ trong luận án thạc sĩ của mình, Phương pháp xử lý tín hiệu cho bản ghi âm tự động của âm nhạc. Bạn có thể tìm thấy nhiều giấy tờ của mình trực tuyến, hoặc mua sách của mình, giải thích thuật toán và kết quả kiểm tra của mình. Luận văn thạc sĩ của ông được liên kết dưới đây.

https://www.cs.tut.fi/sgn/arg/klap/phd/klap_phd.pdf

Pitch Detection khi ghi âm đa âm là một chủ đề rất khó khăn và có nhiều tranh cãi - được chuẩn bị để làm nhiều việc đọc sách. Liên kết bên dưới chứa một cách tiếp cận khác để phát hiện quảng cáo trên bản ghi âm đa âm mà tôi đã phát triển cho một ứng dụng miễn phí có tên là PitchScope Player. Mã nguồn C++ của tôi có sẵn trên GitHub.com và được tham chiếu trong liên kết bên dưới. Một phiên bản thực thi miễn phí của PitchScope Player cũng có sẵn trên web và chạy trên Windows.

Real time pitch detection