English | 简体中文
基于 PyQt5 写的一个音频响度匹配小工具,目前支持 ITU-R BS.1770 (LUFS), 平均响度 (dBFS), 最大峰值 (dBFS), 总计 RMS (dB), 四种匹配方式。
你可以直接前往 releases 下载安装程序或解压直用版。
- 克隆本仓库
git clone https://github.com/SUC-DriverOld/Loudness-Matching-Tool.git
- 安装依赖
pip install -r requirements.txt
-
下载 ffmpeg 并将
ffmpeg.exe
放置到./ffmpeg
目录下 -
使用
gui.py
启动
python gui.py
使用audio_processor.py
:
"-i", "--input_dir", Input directory containing audio files
"-o", "--output_dir", Output directory to save processed audio files
"-target", "--target_loudness", default=-23, Target loudness
"-type", "--loudness_type", default="LUFS", choices=["LUFS", "dBFS", "Peak_dBFS", "RMSdB"], Type of loudness to match
"--export_format", default="wav", choices=["wav", "flac", "mp3"], Audio export format
"--mp3_bitrate", default=320, choices=[128, 192, 256, 320], MP3 bitrate in kbps
"--ffmpeg_sample_rate", default=48000, choices=[32000, 44100, 48000], Output audio sample rate
"--ffmpeg_bit_depth", default=32, choices=[16, 24, 32], Output audio bit depth
例如:
python audio_processor.py -i input -o output -target -23 -type LUFS --export_format mp3 --mp3_bitrate 320
-
目前支持的响度匹配有以下四种:
- ITU-R BS.1770 (LUFS)
- 平均响度 (dBFS)
- 最大峰值 (dBFS)【不是最大 实际 峰值!】
- 总计 RMS (dB)
-
导出格式支持:
- 支持的导出音频格式:
wav
,mp3
,flac
- 支持设置导出 mp3 比特率:
320k
,256k
,192k
,128k
- 支持设置导出采样率:
32000Hz
,44100Hz
,48000Hz
- 支持设置导出位深度:
16bit
,24bit
,32 bit float
- 支持的导出音频格式:
-
由于格式转换是调用 ffmpeg 来实现的,所以有一些格式导出处理会较慢,具体实现方式如下:
- 导入 wav 格式 -> 匹配响度 -> 导出 wav 格式
- 导入 wav 格式 -> 匹配响度 -> 先导出 wav 格式 -> 再调用 ffmpeg 导出 mp3 或 flac 格式
- 导入 mp3 或 flac 格式 -> 匹配响度 -> 导出 wav 格式
- 导入 mp3 或 flac 格式 -> 匹配响度 -> 先导出 wav 格式 -> 再调用 ffmpeg 导出 mp3 或 flac 格式
Note
因此,此处建议导入和导出格式都采用 wav,会大大加快处理时间!
如果有佬能解决这些问题的话,欢迎提出 pull request,感激不尽!
- 因为 pydub 的导出无法指定 ffmpeg 路径并且打包出来的程序在运行时会有控制台窗口闪烁,所以当转换为其他格式时,采用的方法是先保存为 wav 格式,再调用 ffmpeg 进行格式转换。导出操作的部分代码如下。也有可能是我太菜了,轻喷。详情请见 audio_processor.py#L35
- pydub 只能计算 peak,无法计算 true peak,所以只能匹配最大峰值,实际最大峰值没法匹配。详情请见 audio_processor.py#L96
- 在实际测试中,部分电脑出现了控制台闪烁的情况。**但大部分情况下不会出现这个问题。**我暂时无法复现这个问题,所以暂时无法解决。
- 在选择位深度
24bit
导出时,有概率无法以指定的位深度导出。