AudioSpectrogram 是一个功能强大的音频频谱图生成工具,支持多种音频格式,可生成高质量的频谱图。使用 Rust 语言开发,提供跨平台支持,可在 Windows、macOS 和 Linux 系统上运行。
- 跨平台支持(Windows、macOS、Linux)
- Windows 平台支持文件拖拽操作
- 支持多种音频格式:WAV、MP3、FLAC、OGG、AAC 等
- 使用 Turbo 色彩映射生成高质量频谱图
- 自动处理多声道音频(混合为单声道)
- 精确的时间和频率刻度
- 完整的 dB 刻度显示(-120dB 到 0dB)
- 可自定义 FFT 大小和 hop size
这是使用本工具生成的频谱图示例,展示了 OneRepublic 的 "Apologize"(44.1kHz 采样率)。频谱图清晰地展示了:
- 完整的频率范围(0-22.05kHz)
- 清晰的时间轴标记
- 精确的频率刻度
- 丰富的动态范围显示(-120dB 到 0dB)
- Rust 工具链(推荐通过 rustup 安装)
- Cargo(Rust 包管理器,随 Rust 一起安装)
- 系统需要安装至少一种等宽字体:
- Windows:Consolas
- macOS:Monaco
- Linux:DejaVu Sans Mono
- 克隆仓库:
git clone https://github.com/lmshao/AudioSpectrogram.git
cd AudioSpectrogram- 编译项目:
cargo build --release编译后的可执行文件将位于 target/release 目录下。
基本用法:
AudioSpectrogram -i input.mp3在 Windows 系统上,你可以直接将音频文件拖拽到程序图标上,程序会自动生成频谱图。这是最简单的使用方式。
或者在命令行中直接指定文件:
AudioSpectrogram input.mp3-i, --input <FILE>:输入音频文件路径-o, --output <FILE>:输出图片路径(可选,默认为与输入文件同名的 PNG 文件)-f, --fft-size <SIZE>:FFT 大小(可选,默认为 4096)-p, --hop-size <SIZE>:Hop 大小(可选,默认为 FFT 大小的一半)
- 使用默认参数生成频谱图:
AudioSpectrogram -i music.flac- 指定输出文件名:
AudioSpectrogram -i music.flac -o spectrum.png- 自定义 FFT 参数:
AudioSpectrogram -i music.flac -f 8192 -p 2048生成的频谱图包含以下信息:
- 垂直轴:频率刻度(kHz)
- 水平轴:时间刻度(分:秒)
- 右侧:dB 刻度(-120dB 到 0dB)
- 颜色映射:使用 Turbo 色彩方案,红色表示强度高,蓝色表示强度低
本项目采用 MIT 许可证。详见 LICENSE 文件。
