2017-12-30 71 views
1

librosa package을 사용하여 0.25에서 1 초의 샘플을 스트레치하는 방법을 알아내는 데 도움이 필요합니다. 난 librosa.effects.time _stretch 그렇게 할 수있는 함수이지만 신호를 스트레칭 대신, 뭔가 다른 일을한다고 가정합니다. 어떤 또는 다른 librosa 또는 numpy 함수 (또는 pydub)를 적용하는 올바른 방법은 무엇입니까?파이썬 | librosa : 더 많은 포인트를 추가하여 시간에 따라 신호를 늘리는 방법

여기는 16KHz 샘플링 속도를 사용하는 시도입니다. 즉, 0.25K 시간에 4K 샘플이 제공됩니다. 출력으로 샘플링 속도를 일정하게 유지하면서 1 초 동안 16K 샘플이 필요합니다. 다음 플롯을 수득

import numpy as np, librosa 
x = np.sin(np.linspace(-np.pi, np.pi, 4000)) # wav sample 
y = librosa.effects.time_stretch(x, rate=4000/16000) 
plt.plot(x) # plotted in blue 
plt.plot(y) # plotted in orange 

는 :

enter image description here

특히 사인파 신호는 연신되지 않았다. 나는 sin()을 예제로 사용하고있다. 분석 기능이 알려지지 않은 음성 오디오 WAV 파일을 스트레칭하려는 의도입니다.

답변

1

나는 time_stretch가 오디오의 피치를 보존하기 위해 일부 처리를 적용한다고 생각합니다. 당신이 원하는 것은이 플롯을 제공하는 아마

y = librosa.core.resample(x, 4000, 16000) 

입니다 :

enter image description here

+0

감사합니다. 나는 그것을 시도 할 것이다. 나는 스트레칭을하면 피치가 낮아질 것이라고 생각했다. 당신의 음모가 16K 포인트의 새로운 표본 크기로, 내가 바라는 바를 보여주고있는 것 같습니다. –