2017-09-04 90 views
1

내 소리에 대한 사용자 정의 파일 경로를 사용하여 librosa에서 멜 - 스펙트로 그램을 만드는 데 문제가 있습니다. https://librosa.github.io/librosa/generated/librosa.feature.melspectrogram.htmlLibrosa를 사용하여 멜 - 스펙트로 그램 플롯

을 그리고 난이 스택 오버 플로우 포스트 살펴 보았다 :

나는이 문서를 다음입니다 이 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() 

누가이 코드를 수정하여 멜 스펙트로 그램을 jpg 파일에 제대로 표시하고 저장하도록 할 수 있습니까? 감사! 당신이 jpg로 저장하려면 plt.show()

:

답변

2

오, 당신의 질문은 당신은 단지 코드의 라인을 추가 할 필요가 주로 그냥 사진을 표시 할 경우 JPG 로 저장하는 방법에 관한 것입니다 축 없음, 흰색 엣지 없음 :

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() 
+0

실제로이 해결책은 scikit.audiolab을 다운로드 할 수 없어 python3에서 작동하지 않습니다. 파이썬 3과 호환되도록 답변을 업데이트 해 주시겠습니까? –

+0

librosa.load()는 성능이 낮다고 생각하기 때문에 scikits.audiolab을 사용합니다. 괜찮 으면 사용하거나 wav 라이브러리를 읽을 수 있습니다. 그것은 wav 데이터를 읽는 것입니다 – zxf

+0

wavread를 librosa.load ("wav 파일의 경로")로 바꿀 때 ValueError 오류가 발생합니다 : 압축을 풀 수있는 값이 충분하지 않습니다 (예상 3, 획득 2) –