Đồng bộ hóa hai bản nhạc


9

Tôi muốn thực hiện một thuật toán đồng bộ hóa hai rãnh âm thanh.

Hai bài hát rất giống nhau; bạn có thể tưởng tượng chúng là hai bản ghi âm (không nhất thiết phải là nhạc) từ hai micrô trong cùng một phòng. Điều này có nghĩa là chúng xuất hiện dưới dạng một tín hiệu truyền qua hai kênh (tuyến tính) khác nhau, với nhiễu phụ gia khác nhau.

Tôi hiểu ý tưởng đầu tiên có thể là tìm kiếm đỉnh cao của mối tương quan chéo của chúng, nhưng tôi đặc biệt thú vị trong việc tìm kiếm tài liệu về chủ đề này, nhưng tất cả các bài báo tôi có thể tìm thấy đều đồng bộ hóa hai bản nhạc (sử dụng các tính năng âm thanh dựa trên sắc độ ) hoặc đồng bộ hóa âm thanh với điểm số. Họ cũng cho rằng có thể có sự vênh thời gian, đó là một giả định không cần thiết trong trường hợp của tôi.

Câu trả lời:


4

Các cách tiếp cận dựa trên Chroma được sử dụng khi các bản nhạc để căn chỉnh là hai màn trình diễn của cùng một chất liệu với các nhạc cụ khác nhau - trong trường hợp đó bạn cần tìm "mẫu số chung thấp nhất" là hòa âm, giai điệu, tiến trình hợp âm, v.v. rằng - họ hoàn toàn trừu tượng âm sắc, kỹ thuật ghi âm. Nhưng bạn không cần những thứ đó trong trường hợp của bạn.

Như bạn đã đoán, mối tương quan chéo của âm thanh thô sẽ là 1 / không quá mạnh đối với tiếng ồn, 2 / không mạnh mẽ đối với sự khác biệt về đầu dò (hai micrô có thể có phản hồi rất khác nhau) 3 / rất tốn kém nếu bạn có phút âm thanh.

Tôi đề nghị bạn:

  • Trích xuất một chuỗi các vectơ MFCC từ cả hai tín hiệu. Bằng cách này, bạn sẽ có một cái gì đó có chiều hướng thấp hơn và mạnh mẽ hơn một chút đối với tiếng ồn và sự khác biệt trong các bộ chuyển đổi.
  • Tùy chọn bình thường hóa MFCC ("theo thiết kế" hệ số 0 có nhiều phương sai hơn hệ số 1 và cứ thế ...) ... Lý tưởng nhất là bạn muốn mỗi hàng của ma trận MFCC có phương sai 1.
  • Tính toán tương quan chéo của hai ma trận bạn nhận được, dọc theo trục thời gian (nghĩa là tính toán tương quan chéo 2D và chỉ giữ dữ liệu cho trục thời gian).

Cách tiếp cận thú vị. Bạn có thể nhận được loại độ phân giải thời gian nào từ phân tích MFCC? Đây có phải là giới hạn bởi độ phân giải quang phổ?
Hilmar

Poster không cho biết độ phân giải mà anh mong đợi. Cách tiếp cận này được giới hạn ở độ phân giải của phân tích MFCC, thường được thực hiện ở mức 50 đến 100 khung hình mỗi giây. Điều này là đủ cho các ứng dụng liên quan đến lời nói và "âm thanh hàng ngày" (ví dụ: việc căn chỉnh lấy từ nhiều máy ảnh không TC trong chỉnh sửa video); có lẽ không phải âm nhạc. Để có được độ phân giải cao hơn, tôi khuyên bạn nên thực hiện căn chỉnh "hạt thô" bằng cách sử dụng MFCC để có được căn chỉnh ở mức +/- 10ms (thời lượng của khung FFT); sau đó để lấy một vài đoạn 100ms âm thanh cứ sau 10 giây hoặc lâu hơn từ cả hai nguồn; và để làm một kết hợp đầy đủ bằng cách sử dụng những người.
pichenettes

2
Trên thực tế, phương pháp tương quan chéo thường không nhạy cảm với nhiễu. Sự tương quan chéo của phần không nhiễu của âm thanh sẽ tạo ra sự tăng đột biến trong tương quan chéo. Mặt khác, vì nhiễu là ngẫu nhiên, nhiễu trong một bản ghi dường như không tương quan theo bất kỳ cách cụ thể nào với bất kỳ bản ghi nào khác, và do đó sẽ chỉ tạo ra nhiều nhiễu hơn trong tương quan chéo. Tiếng ồn này rất yếu so với mức tăng đột biến, và do đó độ chính xác khi khoanh vùng cành sẽ gần như không bị ảnh hưởng.
HelloGoodbye

Tôi nghi ngờ liệu các phản ứng hơi khác nhau sẽ đóng một vai trò lớn như vậy, đối với vấn đề đó; bạn vẫn sẽ có được sự tăng đột biến trong mối tương quan chéo, mặc dù có lẽ được dịch rất ít, trong trường hợp đó có thể là do sự chậm trễ ở một trong các bộ chuyển đổi. Tuy nhiên, nếu bạn có độ trễ như vậy, tôi không thấy MFCC sẽ cải thiện điều này như thế nào.
HelloGoodbye

Cuối cùng, ngay cả khi bạn có vài phút âm thanh, mối tương quan chéo có thể được tính toán rất hiệu quả bằng cách sử dụng FFT. Tôi nghi ngờ rằng việc trích xuất một chuỗi các vectơ MFCC từ cả hai tín hiệu sẽ mất nhiều thời gian hơn.
HelloGoodbye
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.