音频怎么画梅尔频谱?用 librosa 核对采样率、时间轴与频率范围

用 librosa 生成梅尔功率频谱图,核对采样率、hop_length、时间频率坐标和相对分贝色标。

检查音频是否有异常停顿、频带缺失或明显背景声,可以先画梅尔频谱图。图上的时间与频率坐标必须来自实际采样率和 hop_length;漂亮的热力图不代表声音内容已经识别正确。

先固定音频读入规则

本文按 librosa 0.11 接口编写,安装 librosa、matplotlib、soundfile 和 numpy,准备获授权的 speech.wav。示例转单声道并保留采样率,未在真实业务音频上评估识别或降噪效果。

音频怎么画梅尔频谱?用 librosa 核对采样率、时间轴与频率范围

python -m pip install "librosa==0.11.0" matplotlib soundfile numpy

计算功率梅尔谱并画图

import numpy as np
import librosa
import librosa.display
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt

y, sr = librosa.load("speech.wav", sr=None, mono=True)
if len(y) == 0 or np.max(np.abs(y)) < 1e-8:
    raise ValueError("音频为空或近乎全静音,请先核对")
hop = 256
n_fft = 1024
mel = librosa.feature.melspectrogram(
    y=y, sr=sr, n_fft=n_fft, hop_length=hop,
    n_mels=64, fmin=0, fmax=sr/2, power=2.0,
)
db = librosa.power_to_db(mel, ref=np.max)
fig, ax = plt.subplots(figsize=(9, 4))
img = librosa.display.specshow(
    db, sr=sr, hop_length=hop, x_axis="time", y_axis="mel",
    fmin=0, fmax=sr/2, ax=ax,
)
fig.colorbar(img, ax=ax, format="%+2.0f dB")
ax.set_title("Mel power spectrogram")
fig.tight_layout()
fig.savefig("mel_spectrogram.png", dpi=160)
plt.close(fig)
print("采样率", sr, "时长", len(y)/sr, "谱矩阵", mel.shape)

保存为 plot_mel.py,运行 python plot_mel.py。Agg 后端直接保存图片,在没有桌面窗口的环境也可运行。梅尔频带是感知尺度,纵轴各段不按普通线性频率等距排列。

核对时间与频率

验证时检查横轴终点与打印的录音时长大致对应,矩阵第一维应为 64 个梅尔频带,再把明显静音或声音突变的时间点与原录音对照。帧中心和补边会使边界略有差异,不要求最后一列恰好等于音频最后一个样本。

采样率为 sr 时,最高可表示频率受 sr/2 限制;这里只是把频谱显示到这个范围,不能凭图判断原录音设备真实带宽。改变 hop_length 后也要同步传给 specshow,否则时间轴会错误。

比较多段音频时注意色标

ref=np.max 让每段音频自身最大功率对应 0 dB,因此不同文件的颜色不能直接比较绝对响度。要比较录音电平,下一步先固定读入、参考功率和色标范围,再核对同一时间段的数值与波形。

频谱不是字幕、说话人标签或音质评分,无法单凭一张图确定噪声来源。若用于训练输入,还要固定梅尔频带数、FFT、hop 和归一化规则;更改配置后不能继续混用旧缓存特征。

资料与适用版本

以下官方资料核对于 2026 年 10 月 1 日;安装和界面以实际使用版本为准。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30710.html

赞 (0)
AI小管家的头像AI小管家
语音训练音频怎么切片?用 librosa 检测非静音区间并保留时间位置
上一篇 7小时前
高维训练数据怎么可视化?用 PCA 降到二维并查看解释方差
下一篇 7小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部