Categories
Uncategorised

Khử tạp âm (Noise reduction) Khi quay video bài giảng

Thời đại Cô-Vi (Covid-19) mình với nhà nhà phải làm việc online, dạy online và quay video bài giảng khi cách ly xã hội. Khổ nỗi nhà còn không có cái phòng riêng nói gì đến trang thiết bị thu âm chuyên nghiệp. Với cái mic mà bật lên xong chỉ mới thở thôi nó đã có tạp âm thì chỉ còn cách dùng phần mềm chỉnh âm bớt lại cho đỡ vã. Sau quá trình google tìm hiểu thì cũng ra một số mẹo.

Bật echo cancellation – noise reduction trong pulseaudio.

Mới đầu mình cũng không ngờ pulseaudio lại có sẵn tính năng này. Cách kích hoạt cũng tương đối dễ dàng. Hướng dẫn có sẵn trong arch wiki https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Enable_Echo/Noise-Cancellation

Arch does not load the Pulseaudio Echo-Cancellation module by default, therefore, we have to add it in /etc/pulse/default.pa. First you can test if the module is present with pacmd and entering list-modules. If you cannot find a line showing name: <module-echo-cancel> you have to add

/etc/pulse/default.pa
### Enable Echo/Noise-Cancellation
load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ digital_gain_control=1" source_name=echoCancel_source sink_name=echoCancel_sink
set-default-source echoCancel_source
set-default-sink echoCancel_sink

then restart Pulseaudio

$ pulseaudio -k
$ pulseaudio --start

and check if the module is activated by starting pavucontrol. Under Recording the input device should show Echo-Cancel Source Stream from".

Chức năng có thể khử sạch tiếng vọng từ loa nếu nó lọt vào mic, như vậy có thể để loa ngoài khi ghi âm mà không nhất thiết phải đeo headphone.

Ưu điểm thứ hai là nó khử rất tốt các tiếng ồn lặp đi lặp lại như tiếng rè từ micro, tiếng quạt, v.v… Ngay cả khi mình không kích hoạt được beamforming vì máy tính bàn chỉ có 1 microphone duy nhất thì background noise cũng được khử khá nhiều.

Nhược điểm của chức năng này là mỗi khi thay đổi microphone thì phải khởi động lại pulseaudio. Mà trong linux khởi động lại microphone thì cũng phải connect lại tai nghe bluetooth, khá là phiền khi đang dạy thông qua Teams Meeting mà muốn đổi thiết bị. Nhưng nếu thiết bị cắm sẵn và cả buổi không đổi thì không ảnh hưởng mấy.

Tóm lại tính năng này gần như bắt buộc phải bật.

Xử lý audio bằng Mag’s notch filter.

Các video thu âm vào lúc nửa đêm, khi hàng xóm đã ngủ thì gần như không cần phải xử lý gì thêm. Nhưng với các bản Record Teams meeting thì tạp âm khá nhiều, đặc biệt là không phải mic nào tham gia meeting cũng có bật sẵn noise reduction. Sau một hồi google dạo về cách xử lý noise trên các phần mềm editor quen thuộc của linux thì mình gặp topic này: https://forum.manjaro.org/t/kdenlive-and-audio-hissing-denoise-remove-background-noise/86189

Sau khi cài xong gói swh-plugins thì đúng là trong phần mềm shotcut đúng là xuất hiện thêm audio filter Notch

Notch trong audio filter

Trong bài post gốc thì tác giả gợi ý là set center frequency là 7000Hz, Bandwidth cũng là 7000Hz, mình chỉnh theo thì thấy tiếng rè rè (hissing) của mic có giảm nhưng vẫn còn nghe được. Mình thử chỉ lại max số là center frequency 6000 và Bandwidth 10000 thì không còn tí tiếng rè nào. Nhưng mà giọng người thì nghe như đang bị trấn nước

Không còn tạp âm mà giọng như ngạt nước

Xử lý tạp âm và noise bằng audacity.

Đây là cách xử lý tạp âm sau khi thu âm tốt nhất được, giới thiệu nhiều nhất mà cũng khó xài nhất. Nó yêu câu tách tiếng ra xử lý riêng bằng phần mềm xử lý audio chuyên dụng (audacity) rồi mux trở lại vào video. https://manual.audacityteam.org/man/noise_reduction.html

Với hướng dẫn thì cũng quá rõ ràng nên gần như không bình luận thêm. Nhược điểm duy nhất của cách này là phải có một đoạn audio dài vài giây và chỉ chứa toàn tạp âm để nó lấy mẫu. Vấn đề là với mấy cái tiếng hisssing của microphone hay tiếng máy, tiếng quạt lặp đi lặp lại thì việc lấy mẫu rất dễ. Còn tiếng ồn từ người khác thì bất chợt, thình lình và gần như chả có mẫu nào đủ dài để lấy cả.

Sau khi lấy mẫu noise, thì hộp thoại sẽ biến mất để người dùng chọn lại toàn bộ đoạn audio sẽ áp dụng Noise reduction.

Nếu chỉ cần khử tiếng rè rè thì có thể mạnh tai tăng chỉ số decibel (dB) sẽ giảm của noise xuống. Mặc định 12 còn hơi thấp, mình chơi 20 vẫn thấy ngon. Các tiếng rè rè gần như mất sạch.