Java教程

语音深度学习常用的特征:梅尔谱

本文主要是介绍语音深度学习常用的特征:梅尔谱,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Mel spectrogram 梅尔谱

根据我们人类听觉的特性,我们对低频声音比较敏感,对高频声音没那么敏感

所以当声音频率线性增大时,频率越高,我们越难听出差别,因此不用线性谱而是对数谱

Mel谱包含三大特性:

  • 时域-频域信息
  • 感知相关的振幅信息
  • 感知相关的频域信息

Mel谱的核心就是Mel-scale,一个对数尺度的对于频率感知线性变化的尺度
在这里插入图片描述

提取Mel谱的方法:

  1. 做STFT得到复数矩阵
  2. 将幅度转成分贝(db) 问:如果这里在mel spectrogram里面就把幅度转成db了,
    那Log_mel_spectrogram跟它又有什么区别呢?
  3. 将频率转到mel-scale

step 3 : 先选择mel bands的数目,一个mel band就像一系列跟感知有关的频率

构造mel filter banks:

  • 将最低频率和最高频率转到mel尺度上
  • 在我们的频率范围内等距取到(# bands)个点,这些点是不同mel band的中心频率
  • 将我们取的点又转回Hertz
  • 将这些中心频率点(float)取整到临近的frequency bin
  • 生成三角滤波器

对语谱图使用mel filter banks

M = (# bands, framesize / 2 + 1)

Y = (framesize / 2 + 1, # frames)

Mel spectrogram = MY (# bands, # frames)

但如果只是简单理解的话,Mel谱只是把普通语谱图的频率从线性转到了mel尺度

mel尺度是一种对数尺度,人类对于频率的感知在mel尺度上更加敏感

Mel谱的各种应用:

  • Audio 分类
  • 自动情感识别
  • 音乐流派分类
  • 音乐乐器分类
# Extract Mel spectrograms
mel_spectrogram = librosa.feature.melspectrogram(source, sr=sr1, n_fft=1024, hop_length=512, n_mels=128)

log_mel_spectrogram = librosa.power_to_db(mel_spectrogram)
这篇关于语音深度学习常用的特征:梅尔谱的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!