首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Librosa绘制mel谱图

使用Librosa绘制mel谱图
EN

Stack Overflow用户
提问于 2017-09-04 14:28:05
回答 1查看 16.2K关注 0票数 3

我在librosa中使用自定义文件路径创建我的声音时遇到了问题。

我遵循以下文档:https://librosa.github.io/librosa/generated/librosa.feature.melspectrogram.html

我看过这个堆栈溢出帖子:Spectrograms generated using Librosa don't look consistent with Kaldi?

然而,这些都不能帮助我解决我的问题。

代码语言:javascript
复制
import librosa
y, sr = librosa.load("path_to_my_wav_file")
librosa.feature.melspectrogram(y=y, sr=sr)
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 4))
librosa.display.specshow(librosa.power_to_db(y,                                              
ref=np.max), y_axis='mel', fmax=8000, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('Mel spectrogram')
plt.tight_layout()

谁能告诉我如何修复此代码,使其正确显示和保存的mel光谱图到jpg文件?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 10:51:58

哦,你的问题主要是关于如何将其保存为jpg?如果你只想显示图片,你只需要添加一行代码:plt.show()

如果你想保存一个jpg,没有轴,没有白边:

代码语言:javascript
复制
import os
import matplotlib
matplotlib.use('Agg') # No pictures displayed 
import pylab
import librosa
import librosa.display
import numpy as np

sig, fs = librosa.load('path_to_my_wav_file')   
# make pictures name 
save_path = 'test.jpg'

pylab.axis('off') # no axis
pylab.axes([0., 0., 1., 1.], frameon=False, xticks=[], yticks=[]) # Remove the white edge
S = librosa.feature.melspectrogram(y=sig, sr=fs)
librosa.display.specshow(librosa.power_to_db(S, ref=np.max))
pylab.savefig(save_path, bbox_inches=None, pad_inches=0)
pylab.close()
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46031397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档