代码之家  ›  专栏  ›  技术社区  ›  Sreehari R

使用Librosa绘制mel谱图

  •  3
  • Sreehari R  · 技术社区  · 8 年前

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

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

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

    然而,这些都没有帮助我解决我的问题。

    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文件吗?谢谢

    1 回复  |  直到 8 年前
        1
  •  12
  •   zxf    8 年前

    哦,你的问题主要是关于如何将其保存为jpg plt.show()

    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()
    
    推荐文章