Mel spectrogram 梅爾譜
根據我們人類聽覺的特性,我們對低頻聲音比較敏感,對高頻聲音沒那么敏感
所以當聲音頻率線性增大時,頻率越高,我們越難聽出差別,因此不用線性譜而是對數譜
Mel譜包含三大特性:
- 時域-頻域資訊
- 感知相關的振幅資訊
- 感知相關的頻域資訊
Mel譜的核心就是Mel-scale,一個對數尺度的對于頻率感知線性變化的尺度

提取Mel譜的方法:
- 做STFT得到復數矩陣
- 將幅度轉成分貝(db) 問:如果這里在mel spectrogram里面就把幅度轉成db了,
那Log_mel_spectrogram跟它又有什么區別呢? - 將頻率轉到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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290187.html
標籤:其他
上一篇:OpenCV 4.5 C++版 將矩陣順時針旋轉 90 度
下一篇:隨筆錄-1
