Phát hiện sự thay đổi giữa giọng nói và âm nhạc


7

Tôi có một loạt các tệp âm thanh có cả phần nói và nhạc (nghĩ là radio). Ví dụ: một tệp đã cho có thể bao gồm các phần sau:

music --- speech --- music --- speech --- music --- speech --- music

Mục tiêu của tôi là phát hiện khi tập tin thay đổi giữa âm nhạc và lời nói và cắt bỏ các phần âm nhạc chỉ để lại lời nói. Tuy nhiên, tôi không biết nên sử dụng phương pháp nào để phân biệt giữa lời nói và âm nhạc. Tôi đã xem xét việc phát hiện nhịp độ, nhưng một số bản nhạc rất chậm hoặc có nhịp độ khác nhau.

(Trong khi chúng ta đang ở đó, để tôi không phải tự viết, có thư viện phần mềm nào hiện có ngoài đó có thể phân biệt giữa lời nói và âm nhạc không?)


Nghe có vẻ như là một vấn đề tách nguồn mù
Phorce

Âm nhạc và lời nói không bị trộn lẫn (tốt, nó là vậy, nhưng chỉ trong vài giây ở đầu và cuối phần phát biểu), vì vậy tôi không nghĩ vậy.
haroba

Có bao nhiêu mics? Thời lượng của mỗi phân khúc là gì? Nếu bạn muốn xem xét các thuộc tính phân đoạn, điều này rất khó vì không có đặc điểm xác định, ví dụ người đó có thể nói chuyện trong một thời gian dài hơn và âm nhạc có thể phát trong một khoảng thời gian ngắn hơn dự kiến. Bạn đã có bất kỳ dữ liệu đào tạo nào (về bài phát biểu trông như thế nào, và, âm nhạc trông như thế nào)?
Phorce

Phụ thuộc vào loại nhạc. Nhưng lời nói lên tiếng thường có một cao độ duy nhất. Trong khi đó âm nhạc có thể là đa âm và có thể chứa các nốt bên ngoài phạm vi nói của con người (bass đến soprano).
hotpaw2

1
@kRazzyR, cuối cùng tôi đã viết một giải pháp dựa trên bài báo này: speech.kth.se/prod/publications/files 43237.pdf
haroba 16/12/17

Câu trả lời:


13

Đây là một vấn đề được nghiên cứu kỹ lưỡng, có từ giữa những năm 90 (những thách thức sao chép phát sóng DARPA / NIST). Tìm kiếm "phân đoạn lời nói / âm nhạc" hoặc "phân đoạn âm thanh" và bạn sẽ tìm thấy hàng ngàn tài liệu nghiên cứu.

Có hai cách tiếp cận rộng để giải quyết vấn đề này:

Phân loại giám sát

Huấn luyện một bộ phân loại lời nói / âm nhạc, sử dụng phương pháp học máy tiêu chuẩn. Bạn có thể sử dụng MFCC làm các tính năng đầu vào, cùng với các tính năng cơ bản khác như tốc độ bắt chéo bằng 0, điều chế biên độ ở tần số 4Hz, v.v. Gần đây, việc sử dụng càng nhiều tính năng càng tốt và sử dụng các kỹ thuật phát hiện tính năng để xác định các tính năng phân biệt nhất .

Bất kỳ thuật toán phân loại nào cũng được - hỗ trợ các máy vectơ, mô hình hỗn hợp gaussian, cây quyết định. Sau khi phân loại xong, bạn sẽ có các khung phân loại sai (ví dụ: một đoạn acapella nhỏ trong bài hát sẽ được phân loại là lời nói hoặc FX hoặc tiếng leng keng giữa lời nói sẽ nổi bật). Điều này đòi hỏi xử lý hậu kỳ, cách tiếp cận phổ biến nhất là áp dụng lọc chế độ (biểu quyết) trên chuỗi các đầu ra phân loại. Việc phân loại / làm mịn theo thời gian đôi khi được cuộn thành một thông qua việc sử dụng các mô hình markov ẩn cho cả phân loại và làm mịn theo thời gian.

Tham khảo: Phân loại và phân loại âm thanh dựa trên nội dung bằng cách sử dụng các máy vectơ hỗ trợ , Lu et al.

Phát hiện thay đổi phân khúc không giám sát

Hãy xem xét một cửa sổ 10 giây trượt qua tín hiệu. Tính toán các tính năng âm thanh ở nửa đầu, nửa sau và sử dụng kiểm tra thống kê để quyết định giả thuyết nào có khả năng nhất: hai bộ tính năng âm thanh được rút ra từ cùng một bản phân phối hoặc được rút ra từ hai bản phân phối khác nhau. Đầu ra của bài kiểm tra sẽ cho bạn biết khả năng ở giữa cửa sổ tương ứng với ranh giới giữa lời nói và đoạn nhạc. Chọn các điểm có điểm số cao nhất làm ranh giới phân khúc.

Có thể sử dụng các tính năng âm thanh tương tự như đối với phương pháp được giám sát (MFCC, ZCR, điều chế biên độ ở 4 Hz ...).

Tiêu chí "Sách giáo khoa" cho bài kiểm tra thống kê: tiêu chí thông tin bayes (BIC).

Tham chiếu: Phân đoạn luồng âm thanh không được giám sát và phân cụm thông qua tiêu chí thông tin Bayes , Zhou & Hansen (để giới thiệu về BIC).

Kết hợp các phương pháp được giám sát và không giám sát để phân đoạn tự động các luồng âm thanh phóng xạ , Richard, Ramona & Essid (để kiểm tra phát hiện thay đổi kỳ lạ hơn).


Bạn có thể vui lòng chỉ cho tôi bất kỳ thư viện python nào có thể thực hiện "phát hiện các vùng lời nói và các vùng âm nhạc, v.v. trong một âm thanh" không? Tôi đang cố gắng giải quyết vấn đề này nhưng không đạt được nhiều tiến bộ.
kRazzy R
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.