Tôi muốn kết hợp hai hoặc nhiều kênh âm thanh PCM (ví dụ như các mẫu được ghi) theo cách âm thanh, tốt nhất là trong thời gian gần như thời gian thực (có nghĩa là ít hoặc không nhìn trộm trước).
Cách "chính xác" để làm điều này là tổng hợp các mẫu. Tuy nhiên, khi bạn thêm hai mẫu tùy ý, giá trị kết quả có thể lên tới gấp đôi giá trị tối đa.
Ví dụ: nếu các mẫu của bạn là các giá trị 16 bit, kết quả sẽ lên tới 65536 * 2. Điều này dẫn đến việc cắt.
Giải pháp ngây thơ ở đây là chia cho N, trong đó N là số kênh được trộn. Tuy nhiên, điều này dẫn đến mỗi mẫu là 1 / Nth là lớn, điều này là hoàn toàn không thực tế. Trong thế giới thực, khi hai nhạc cụ chơi cùng một lúc, mỗi nhạc cụ không trở nên to bằng một nửa.
Từ việc đọc xung quanh, một phương pháp trộn phổ biến là: result = A + B - AB, trong đó A và B là hai mẫu được chuẩn hóa được trộn lẫn và AB là một thuật ngữ để đảm bảo âm thanh to hơn đang ngày càng "bị cắt bớt".
Tuy nhiên, điều này giới thiệu một sự biến dạng của tín hiệu. Mức độ biến dạng này có được chấp nhận trong tổng hợp âm thanh chất lượng cao không?
Có những phương pháp nào khác để giải quyết vấn đề này? Tôi quan tâm đến các thuật toán chất lượng kém hiệu quả cũng như các thuật toán chất lượng cao kém hiệu quả hơn.
Tôi đang đặt câu hỏi của mình trong bối cảnh tổng hợp nhạc số, với mục đích trộn nhiều bản nhạc với nhau. Các bản nhạc có thể được tổng hợp âm thanh, mẫu được ghi trước hoặc đầu vào micrô thời gian thực.