我的wav文件的mel功能怎么了?

时间:2019-07-16 07:24:50

标签: python wav

我目前正在从我的婴儿哭声数据集中提取mel功能
而wav文件的采样率是8kHz,16bit,单声道和大约7秒。

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

sr = 44100  
frame_length = 0.1  
frame_stride = 0.01  
path = '...'
train = []  

j, sr = librosa.load(path + '001.wav', sr, duration = 5.0)   
input_nfft = int(round(sr*frame_length))   
input_stride = int(round(sr*frame_stride))   
mel = librosa.feature.melspectrogram(j, n_mels = 128, n_fft = input_nfft, hop_length=input_stride, sr = sr)            
train.append(mel)

plt.figure(figsize=(10,4))  
librosa.display.specshow(librosa.power_to_db(train[0], ref=np.max), y_axis='mel', sr=sr, hop_length=input_stride, x_axis='time')  
plt.colorbar(format='%+2.0f dB')  
plt.title('Mel-Spectrogram')  
plt.tight_layout()  
plt.show()

采样率的频谱图= 16000: Spectrogram sampling rate 16000

采样率的频谱图= 44100: Spectrogram sampling rate 44100

但是,正如您看到的那样,每当我提取特征改变的采样率时,梅尔频谱图的值都会改变。 我以为,由于wav文件的采样率为8kHz,因此如果我将采样率设置为超过16kHz,则赫兹值必须相同。 我不明白为什么会这样。

这是我的数据集的来源 https://github.com/gveres/donateacry-corpus

0 个答案:

没有答案