2017-11-12 2 views
0

나는 시간의 샘플 '에서 그래프의 x 축을 변경해야 enter image description herex 축을 샘플/프레임에서 시간으로 변경하는 방법은 무엇입니까?

나가이 절차를 사용하여 그래프를 작성 :

y, _ = librosa.load('sound/data/kea-song.mp3', 48000) 
y /= y.max() 

# compute the rmse 
e = librosa.feature.rmse(y=y)[0] 
e -= e.min()#what does this really do, guessing a kind of normalisation? 
e /= e.max() 
plt.plot(e) 
plt.show() 

I의 RMSE를 산출하지 않는 경우를, 이것은 x 축을 시간으로 변환합니다.

y, _ = librosa.load('sound/data/kea-song.mp3', 48000) 
plt.plot(np.arange(len(y))/48000, y) 

그러나 rmse 함수 후에 변환 방법을 모른다. 나는 그것이 프레임에 그룹화되어있는 y의 샘플과 관련이 있다고 생각하지만,이 프레임 (프레임 인 경우)을 시간으로 변환하는 방법을 생각해 낼 수는 없습니다!

어떻게해야합니까? 사전에 감사합니다 (: heres는

  • plt.plot (Y에 대한 플롯) : enter image description here

답변

2

나는이 중 하나를 테스트하지 않은,하지만 설명서를 읽고,이 기능 보인다 기본 프레임 길이가 2048 샘플이고 홉 길이가 512 샘플 인 프레임에서 FFT를 계산합니다.

즉, 원래 오디오에 len(y) 샘플이있는 경우 출력에 (len(y)-2048)//512 프레임이 있어야합니다. 첫 번째 프레임은 샘플에 있습니다. 0, 두 번째 샘플 512의 프레임 등. 이렇게 할 수 있습니다.

e_time = np.arange(len(e))*512/48000 
plt.plot(e_time, e) 
관련 문제