Không phải file âm thanh nào cũng được tạo ngang nhau. Đôi khi, chúng quá nhỏ, quá to, hoặc chỉ đơn giản là "không đúng". Khi bạn gặp file âm thanh vấn đề, bạn không bị mắc kẹt chỉ chịu đựng nó. FFmpeg, tiện ích âm thanh mã nguồn mở mạnh mẽ có thể giúp. Nó có thể điều chỉnh âm lượng file và chuẩn hóa (normalize) chúng để loại bỏ sự biến động âm lượng khó chịu. Cái hay hơn nữa, nó hoàn toàn có thể viết script (scriptable) và thậm chí được nạp sẵn vào script Python đơn giản hóa toàn bộ quy trình.
Cài đặt FFmpeg
Nếu bạn chưa có, FFmpeg rất dễ lấy. Người dùng Linux hầu như luôn tìm thấy nó trong kho phần mềm bản phân phối. Cho Windows và Mac, bạn có thể tìm nó trên trang tải dự án.
Độ to cơ bản (Loudness)
Mọi thứ ở đây sẽ qua terminal. FFmpeg có front-end đồ họa, nhưng dòng lệnh là cách đơn giản và trực tiếp nhất làm việc với nó. Mở terminal làm việc.
Chuyển thư mục vào thư mục có file bạn muốn làm việc. FFmpeg hỗ trợ hầu như mọi định dạng âm thanh bạn nghĩ ra, đừng lo về đó. Khi có file làm việc, chạy FFmpeg. Dùng cờ -i chỉ định file input. Sau đó, cờ -filter:a cho phép chỉ định bộ lọc, trong trường hợp này điều chỉnh âm lượng. FFmpeg dùng 1 làm âm lượng gốc của file. Để giảm âm lượng một nửa, đặt "volume" bằng 0.5. Sau đó, kết thúc với tên file output. Tổng thể trông như ví dụ dưới.
ffmpeg -i input.flac -filter:a "volume=0.5" output.flac
Chạy lệnh đó sẽ khiến FFmpeg tạo bản sao file input với nửa âm lượng và xuất ra tên file chỉ định. Tất nhiên, bạn cũng có thể tăng âm lượng bằng cách cung cấp số lớn hơn 1. Trong ví dụ dưới, âm lượng tăng 50%.
ffmpeg -i input.flac -filter:a "volume=1.5" output.flac
FFmpeg cũng hoàn toàn có thể chuyển đổi file. Chỉ định extension output khác, FFmpeg sẽ lo phần còn lại.
ffmpeg -i input.flac -filter:a "volume=1.25" output.mp3
Một số người thoải mái hơn làm việc với decibel để kiểm soát kỹ thuật hơn file. FFmpeg hỗ trợ đó. Thay vì dùng hệ cơ số 1 như trước, chỉ định số decibel bạn muốn tăng âm lượng theo sau "dB".
ffmpeg -i input.flac -filter:a "volume=5dB" output.flac
Cung cấp số âm để giảm âm lượng tính bằng decibel.
ffmpeg -i input.flac -filter:a "volume=-5dB" output.flac
Chuẩn hóa độ to (Loudness Normalization)
Nếu âm lượng file không nhất quán, bạn luôn có thể dùng hàm chuẩn hóa tích hợp của FFmpeg để cố gắng kiểm soát. Thiết lập lệnh giống như khi thay đổi âm lượng, nhưng dùng "loudnorm" thay volume làm bộ lọc. FFmpeg sẽ cố gắng hạ và nâng các đỉnh và thung lũng trong âm thanh để làm cho nó dễ nghe hơn.
ffmpeg -i input.flac -filter:a loudnorm output.flac
Tự động hóa với Python
Thực sự có nhiều hơn có sẵn khi chuẩn hóa âm thanh với FFmpeg, nhưng nó đòi hỏi kiến thức cách âm thanh hoạt động và một chút toán học. Thay vì tự làm, có script Python tiện lợi tự động hóa toàn bộ chuyện. Thêm vào đó, nó xử lý cả thư mục cùng lúc.
Cài ffmpeg-normalize
Nếu bạn cài Python với trình quản lý gói Pip, bạn có thể dùng nó cài ffmpeg-normalize. Người dùng Linux và Mac có thể cần dùng "sudo", trừ khi họ đã cấu hình khác.
sudo pip3 install ffmpeg-normalize
Dùng ffmpeg-normalize
ffmpeg-normalize rất đơn giản. Cung cấp file input theo sau file output sau cờ -o, và script sẽ tự động chuẩn hóa file. Bạn sẽ cần chỉ định codec để nó hoạt động.
ffmpeg-normalize input.flac -c:a flac -o output.flac
Nó cũng cho phép chỉ định nhiều file input và output cùng lúc.
ffmpeg-normalize input.flac input2.flac input3.flac -c:a flac -o output1.flac -o output2.flac -o output3.flac
Bạn có thể dùng nó chuyển đổi file. Bạn vẫn cần chỉ định codec và bitrate, nhưng nó hoạt động tốt. Các cờ giống những cái bạn dùng cho FFmpeg thường.
ffmpeg-normalize input.flac -c:a libmp3lame -b:a 320k -o output.mp3
Dùng ffmpeg-normalize trên toàn bộ thư mục
Bạn cũng có thể dùng ký tự đại diện (*) để chuẩn hóa toàn bộ thư mục với hoặc không chuyển đổi. Output sẽ tự động đặt trong thư mục riêng. Lệnh trông hơi khác trên Windows so với Linux và Mac, nhưng kết quả giống nhau. Lưu ý thêm, bạn cần chỉ định extension output mỗi file với cờ -ext, nếu không bạn sẽ nhận file .mkv.
Mac và Linux
ffmpeg-normalize *.flac -c:a libmp3lame -b:a 320k -ext mp3
Windows
for %%f in ("*.flac") do ffmpeg-normalize "%%f" -c:a libmp3lame -b:a 320k -ext mp3
Bất kể phương pháp nào bạn chọn, không có lý do phải chịu chất lượng âm thanh kém. Bạn có thể dễ dàng dùng FFmpeg điều chỉnh và chuẩn hóa âm lượng để có thứ cân bằng hơn, phù hợp hơn với phần còn lại bộ sưu tập.