2016-12-30 19 views
11

Tôi có một kịch bản trong đó người dùng chụp cảnh buổi hòa nhạc với âm thanh thời gian thực của người biểu diễn và đồng thời thiết bị đang tải xuống phát trực tuyến từ thiết bị phát sóng âm thanh.later i thay thế âm thanh ồn ào thời gian thực (trong khi ghi âm) với thiết bị tôi đã phát và lưu trong điện thoại (âm thanh chất lượng tốt) .tôi đã cài đặt âm thanh bù trừ bằng tay với cơ sở dùng thử và lỗi trong khi hợp nhất để tôi có thể đồng bộ hóa hoạt động âm thanh và video ở vị trí chính xác .cách tìm bù đắp từ hai tệp âm thanh? một là ồn ào và một là rõ ràng

Bây giờ những gì tôi muốn làm là tự động hóa quá trình đồng bộ hóa âm thanh.hãy kết hợp video với âm thanh rõ ràng ở độ lệch đã cho tôi muốn kết hợp video với âm thanh rõ ràng một cách tự động.

cho rằng tôi cần phải tìm bù đắp mà tại đó tôi nên thay thế âm thanh ồn ào bằng âm thanh rõ ràng.e.g. khi người dùng bắt đầu ghi và dừng ghi âm thì tôi sẽ lấy mẫu âm thanh thời gian thực đó và so sánh với âm thanh được phát trực tiếp và lấy phần chính xác của âm thanh đó và đồng bộ hóa ở thời điểm hoàn hảo.

hiện bất kỳ ai có bất kỳ ý tưởng nào về cách tìm bù đắp bằng cách so sánh hai tệp âm thanh và đồng bộ hóa với video đó.

+0

Ví dụ về mã? Câu hỏi này dường như không phải về lập trình trong phạm vi được xác định trong trung tâm trợ giúp. – SwiftArchitect

Trả lời

7

Dưới đây là câu trả lời ngắn gọn, rõ ràng.

• Không dễ dàng - nó sẽ liên quan đến xử lý tín hiệu và toán học.
• Google nhanh chóng cung cấp cho tôi giải pháp this, bao gồm mã.
• Có thêm thông tin về kỹ thuật trên here.
• Tôi khuyên bạn nên đạt được ít nhất một hiểu biết cơ bản trước khi bạn thử và chuyển cổng này sang iOS.
• Tôi khuyên bạn nên sử dụng khung làm việc Accelerate trên iOS để biến đổi Fourier nhanh, v.v.
• Tôi không đồng ý với câu trả lời khác về việc thực hiện trên máy chủ - các thiết bị có nhiều công sức trong những ngày này. Một người dùng sẽ không bận tâm một vài giây xử lý cho một cái gì đó dường như kỳ diệu xảy ra.

Sửa

Là một sang một bên, tôi nghĩ rằng nó có giá trị tham gia một bước trở lại trong một giây. Trong khi xử lý tín hiệu toán học và ưa thích như thế này có thể mang lại kết quả tuyệt vời và thực hiện một số công cụ khá huyền diệu, có thể có các trường hợp ngoại lệ trong đó thuật toán tách rời (hy vọng không thường xuyên).

Điều gì xảy ra nếu thay vì phức tạp với xử lý tín hiệu, có cách nào khác không? Sau một vài suy nghĩ, có thể có.Nếu bạn đáp ứng tất cả các điều kiện sau:

• Bạn đang trong kiểm soát của các thành phần máy chủ (âm thanh phát thanh viên thiết bị)
• Các đài truyền hình là nhận thức được 'âm thanh thực sự' ghi độ trễ
• Các đài truyền hình và người nhận đang liên lạc theo cách cho phép đồng bộ hóa thời gian chính xác

... sau đó nhiệm vụ tính toán bù trừ âm thanh trở nên hợp lý không đáng kể. Bạn có thể sử dụng NTP hoặc một số thời gian chính xác khác phương pháp đồng bộ hóa để có một điểm tham chiếu toàn cầu cho thời gian. Sau đó, việc này đơn giản như tính toán sự khác biệt giữa mã thời gian phát âm thanh, trong đó các mã thời gian dựa trên thời gian tham chiếu toàn cầu .

+0

Một vấn đề khác với kịch bản được mô tả bởi OP sẽ phát sinh khi trình phát âm thanh "nằm" và luồng không khớp với 100% sự kiện thực. Trong trường hợp này, đầu ra của đồng bộ hóa về cơ bản sẽ không được xác định cho luồng video (ví dụ: một công cụ đã được thêm vào luồng không có trong buổi hòa nhạc trực tiếp; những điều kỳ lạ đã xảy ra nhiều lần ...). –

+1

@ D.Kovács đó là sự thật (mặc dù OP không bao giờ nói điều này sẽ xảy ra, chúng tôi không thực sự biết ngữ cảnh). Mặc dù cảm giác ruột của tôi là thuật toán sẽ vẫn ổn: một công cụ khác không tồi tệ hơn tiếng ồn hoặc bản ghi âm xấu, mà rõ ràng thuật toán có thể giải quyết được. Nếu bạn muốn các thuật toán để xử lý dịch sân, có thể có một số công việc cần thiết - nhưng tôi nghĩ rằng nó vẫn còn trong lĩnh vực có thể. –

0

Tôi không biết nhiều về chủ đề này, nhưng tôi nghĩ bạn đang tìm "ghi vân tay âm thanh". Similar question here.

Cách thay thế (và dễ xảy ra lỗi) đang chạy cả âm thanh thông qua lời nói đến thư viện văn bản (hoặc API) và phần phù hợp phù hợp. Điều này tất nhiên là không đáng tin cậy lắm. Câu thường xuyên lặp lại trong các bài hát và buổi hòa nhạc có thể là công cụ.

Ngoài ra, việc xử lý âm thanh trên thiết bị di động có thể không hoạt động tốt (vì hiệu suất thấp hoặc mức tiêu hao pin cao hoặc cả hai). Tôi đề nghị bạn sử dụng một máy chủ nếu bạn đi theo cách đó.

Chúc may mắn.

1

Điều này có thể chứng minh là một vấn đề khó khăn, mặc dù các tín hiệu có cùng sự kiện, sự hiện diện của nhiễu làm cho so sánh trở nên khó khăn hơn. Bạn có thể xem xét chạy một số chế biến sau để giảm tiếng ồn, nhưng giảm tiếng ồn trong tự của nó là một chủ đề không tầm thường rộng lớn.

Một vấn đề khác có thể là tín hiệu do hai thiết bị chụp thực sự có thể khác nhiều, ví dụ âm thanh chất lượng tốt (tôi đoán đầu ra từ bảng điều khiển kết hợp trực tiếp) sẽ khác với phiên bản trực tiếp. đoán là sắp ra khỏi trên màn hình sân khấu/hệ thống FOH bị bắt bởi một mic điện thoại?)

Có lẽ cách tiếp cận đơn giản nhất có thể là sử dụng cross correlation để phân tích thời gian trễ.

Một đỉnh trong hàm tương quan chéo sẽ gợi ý độ trễ thời gian tương đối (trong mẫu) giữa hai tín hiệu, vì vậy bạn có thể áp dụng thay đổi cho phù hợp.

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