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
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
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ả.
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.