人工智能下的音频还能这样玩!!!! (2)

人工智能下的音频还能这样玩!!!!

可见,Log-Mel Spectrogram特征是二维数组的形式,128表示Mel频率的维度(频域),100为时间帧长度(时域),所以Log-Mel Spectrogram特征是音频信号的时频表示特征。其中,n_fft指的是窗的大小,这里为1024;hop_length表示相邻窗之间的距离,这里为512,也就是相邻窗之间有50%的overlap;n_mels为mel bands的数量,这里设为128。

3.提取MFCC特征

MFCC特征是一种在自动语音识别和说话人识别中广泛使用的特征。关于MFCC特征的详细信息,有兴趣的可以参考博客 blog.csdn.net/zzc15806/article/details/79246716。在librosa中,提取MFCC特征只需要一个函数:

# # 提取MFCC特征 # extract mfcc feature mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40) print(mfccs) print(mfccs.shape)

人工智能下的音频还能这样玩!!!!

关于mfcc,这里就不在赘述。

Librosa还有很多其他音频特征的提取方法,比如CQT特征、chroma特征等,在第二部分“librosa常用功能”给了详细的介绍。

4.绘图显示 4.1绘制声音波形

Librosa有显示声音波形函数waveplot( ):

# # 绘图显示 import librosa.display import matplotlib.pyplot as plt get_ipython().run_line_magic('matplotlib', 'inline') plt.figure() librosa.display.waveplot(y, sr) plt.title('sample wavform') plt.show()

人工智能下的音频还能这样玩!!!!

4.2绘制频谱图

Librosa有显示频谱图波形函数specshow( ):

# # 绘制频谱图 melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024, hop_length=512, n_mels=128) logmelspec = librosa.power_to_db(melspec) plt.figure() librosa.display.specshow(logmelspec, sr=sr, x_axis='time', y_axis='mel') plt.title('sample wavform') plt.show()

人工智能下的音频还能这样玩!!!!

将声音波形和频谱图绘制在一张图表中:

# # 将声音波形和频谱图绘制在一张图表中: # extract mel spectrogram feature melspec = librosa.feature.melspectrogram(y, sr, n_fft=1024, hop_length=512, n_mels=128) # convert to log scale logmelspec = librosa.power_to_db(melspec) plt.figure() # plot a wavform plt.subplot(2, 1, 1) librosa.display.waveplot(y, sr) plt.title('sample wavform') # plot mel spectrogram plt.subplot(2, 1, 2) librosa.display.specshow(logmelspec, sr=sr, x_axis='time', y_axis='mel') plt.title('Mel spectrogram') plt.tight_layout() #保证图不重叠 plt.show()

人工智能下的音频还能这样玩!!!!

人工智能下的音频还能这样玩!!!!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgxgz.html