音频频谱分析
音频频谱/特征分析(mel、chroma、MFCC)
songsee
从音频文件生成频谱图和多面板音频特征可视化。
前置条件
需要 Go:
go install github.com/steipete/songsee/cmd/songsee@latest
可选:ffmpeg(用于 WAV/MP3 以外的格式)。
快速入门
# 基础频谱图
songsee track.mp3
# 保存到指定文件
songsee track.mp3 -o spectrogram.png
# 多面板可视化网格
songsee track.mp3 --viz spectrogram,mel,chroma,hpss,selfsim,loudness,tempogram,mfcc,flux
# 时间切片(从 12.5s 开始,8 秒时长)
songsee track.mp3 --start 12.5 --duration 8 -o slice.jpg
# 从 stdin 输入
cat track.mp3 | songsee - --format png -o out.png
可视化类型
使用 --viz 加逗号分隔的值:
| 类型 | 说明 |
| `spectrogram` | 标准频率频谱图 |
| `mel` | Mel 尺度频谱图 |
| `chroma` | 音高类分布 |
| `hpss` | 谐波/打击乐分离 |
| `selfsim` | 自相似矩阵 |
| `loudness` | 响度随时间变化 |
| `tempogram` | 节拍估计 |
| `mfcc` | Mel 频率倒谱系数 |
| `flux` | 频谱通量(起音检测) |
多个 --viz 类型在一张图像中渲染为网格。
常用参数
| 参数 | 说明 |
| `--viz` | 可视化类型(逗号分隔) |
| `--style` | 调色板:`classic`、`magma`、`inferno`、`viridis`、`gray` |
| `--width` / `--height` | 输出图像尺寸 |
| `--window` / `--hop` | FFT 窗口和跳跃大小 |
| `--min-freq` / `--max-freq` | 频率范围过滤 |
| `--start` / `--duration` | 音频的时间切片 |
| `--format` | 输出格式:`jpg` 或 `png` |
| `-o` | 输出文件路径 |
注意事项
WAV 和 MP3 原生解码;其他格式需要 ffmpeg
输出图像可用 vision_analyze 进行自动化音频分析
适合对比音频输出、调试合成或记录音频处理流水线