波形图(Waveform)

是音频的最原始表示,也叫振幅图,衡量的是声音的震动幅度在时间维度上的状态。波形图的横坐标一般为时间,纵坐标一般为dB(即分贝)来表示。

  • 优点:不丢失任何信息。
  • 缺点:规律难以学习,难以进行长期依赖的建模

在这里插入图片描述

import librosa
import librosa.display
import matplotlib.pyplot as plt

audio_path = 'test.wav'

# y是波形,sr是采样率
y, sr = librosa.load(audio_path, sr=None)  

plt.figure(figsize=(10, 4))
librosa.display.waveshow(y, sr=sr)
plt.title('Waveform')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.tight_layout()
plt.show()

频谱图(Spectrogram)

通过短时傅里叶变换(STFT)把声音从时域转换为频域信号,变成”时间+频率“的二维图像

  • 优点:模型容易捕捉到其中的模式
  • 缺点:频谱的维度高,且听感不直接

在这里插入图片描述

import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np

audio_path = 'test.wav'
y, sr = librosa.load(audio_path, sr=None)

D = np.abs(librosa.stft(y))
plt.figure(figsize=(10, 4))
librosa.display.specshow(librosa.amplitude_to_db(D, ref=np.max), sr=sr, x_axis='time', y_axis='log')
plt.title('Spectrogram')
plt.colorbar(format='%+2.0f dB')
plt.tight_layout()
plt.show()

梅尔谱图(Mel Spectrogram)

一种特殊的频谱图,它通过压缩频谱轴的方式(高频拉伸、低频压缩),把频率压缩到更接近人类听觉感知的Mel刻度上,类似于热力图。

  • 优点:这种表示更加紧凑,且最趋近人耳的感知,最为常见(FastSpeech、Tacotron)
  • 缺点:丢失信息,不能精准还原

在这里插入图片描述

import librosa
import librosa.display
import matplotlib.pyplot as plt

audio_path = 'test.wav'
y, sr = librosa.load(audio_path, sr=None)

S = librosa.feature.melspectrogram(y, sr=sr, n_mels=128)
S_dB = librosa.power_to_db(S, ref=np.max)

plt.figure(figsize=(10, 4))
librosa.display.specshow(S_dB, sr=sr, x_axis='time', y_axis='mel')
plt.title('Mel Spectrogram')
plt.colorbar(format='%+2.0f dB')
plt.tight_layout()
plt.show()

梅尔倒谱(MFCC)

对梅尔谱图再做一层 DCT(离散余弦变换),相当于提取音频的“共振峰”,是在进一步压缩信息的表示,把频谱数据变成一组更稳定、少量但足够的系数,适合做声纹识别、说话人识别。

  • 优点:计算快,资源占用低,压缩强,信息密集
  • 缺点:去掉了时序结构,不能反向还原音频
import librosa
import librosa.display
import matplotlib.pyplot as plt

audio_path = 'test.wav'
y, sr = librosa.load(audio_path, sr=None)

mfccs = librosa.feature.mfcc(y, sr=sr, n_mfcc=13)

plt.figure(figsize=(10, 4))
librosa.display.specshow(mfccs, sr=sr, x_axis='time')
plt.title('MFCC')
plt.colorbar()
plt.tight_layout()
plt.show()

Audio Waveform
↓ STFT(短时傅里叶变换)
Spectrogram
↓ Apply Mel Filter Bank
Mel Spectrogram
↓ DCT(离散余弦变换)
MFCC

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐