Chuẩn hóa âm thanh


8

Tôi có một bản ghi ở định dạng pcm và tôi muốn làm một số phân tích đơn giản.

Tôi có một số câu hỏi về bình thường hóa là gì. Theo tôi hiểu, đó là để có được tất cả các biên độ giữa một phạm vi, tức là [-1, 1]

Cách rõ ràng để làm điều đó là:

max_amplitude = max(array_of_amplitudes)
for amplitude in array_of_amplitudes:
   amplitude = amplitude / max_amplitude

Tôi đọc về chuẩn hóa RMS. Ai đó có thể giải thích làm thế nào nó được thực hiện?

Hơn nữa, bạn có thể vui lòng giải thích lợi ích của bình thường hóa là gì?

Câu trả lời:


9

Mã chuẩn hóa của bạn không chính xác. Nếu tín hiệu đầu vào có mức giảm lớn (giả sử giá trị âm ở -5.0), mã của bạn sẽ không phát hiện ra và bạn vẫn sẽ có các giá trị bên ngoài [-1, 1]. Sử dụng max (abs (mảng_of_amplitudes)) để thay thế. Trước khi chuẩn hóa, cũng nên xóa bất kỳ DC bù nào mà tín hiệu có thể có.

Chuẩn hóa RMS bao gồm tính toán mức RMS (căn bậc hai trung bình) trên các cửa sổ ngắn hạn, lấy tối đa các giá trị đó và chia tín hiệu cho mức tối đa. Điều này sẽ không đảm bảo rằng kết quả sẽ nằm trong [-1, 1] - bạn sẽ phải cắt các giá trị bên ngoài này. Lợi ích là nó mạnh hơn để vượt qua tín hiệu. Giả sử bạn có một bản ghi tương đối yên tĩnh, chỉ có một đỉnh ngắn ở mức 1.0 ở đâu đó do trình điều khiển soundcard bị trục trặc hoặc "bật" tạm thời trên micrô. Chuẩn hóa sẽ không ảnh hưởng đến mức tín hiệu (nó đã được chuẩn hóa do mức tối đa là 1.0); trong khi chuẩn hóa RMS vẫn sẽ tăng mức của nó (và "pop" sẽ gây ra cắt xén).

Về ứng dụng:

  • Trong ghi âm / tái tạo âm thanh, chuẩn hóa rất quan trọng vì nó đảm bảo rằng toàn bộ dải động của bộ biến đổi đầu ra được sử dụng. Nếu bạn phát tín hiệu đạt cực đại ở 0,25 thông qua bộ xử lý 16 bit, bạn không sử dụng 2 bit trên của bộ chuyển đổi (sẽ luôn là 0) và do đó làm tăng nhiễu lượng tử hóa của bạn thêm 12dB.
  • Trong một số tác vụ phân loại âm thanh (như nhận dạng cảm xúc, phân loại thể loại âm nhạc hoặc thậm chí nhận dạng giọng nói), biên độ / âm lượng có thể được sử dụng như một tính năng. Vì vậy, bạn thực sự muốn tất cả các tệp đầu vào phải được "hiệu chỉnh" tương tự về cấp độ.

+1. Các lợi ích khác là tránh tràn (không quá phổ biến với dấu phẩy động, nhưng có thể xảy ra) và phân tích (bạn có biết chính xác mức độ "mạnh" 0,8 bình thường là bao nhiêu, trong khi ai biết 1082 mạnh / yếu không bình thường như thế nào?).
Jim Clay
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.