2016-08-12 53 views
1

This old thread은 pydub의 AudioSegment._data이 어떻게 든 소리의 음정을 계산하는 데 사용될 수 있다고 나타납니다. 불행히도, 그것은 공개되지 않은 Mpm 클래스에 할당 된 메소드를 사용하여 수행되는 것으로 보입니다. 그렇지만, 피치 데이터가 AudioSegment._data에서 추출 될 수 있다면, AudioSegment의 피치를 올리거나 내릴 때 pydub를 사용하는 방법이 있습니까? 그렇지 않다면 Python 2.7 용 라이브러리가 있습니까?pydub가 피치 변조를 지원합니까?

답변

0

예. 오늘이 문제를 해결하기 위해 약 6 시간을 보낸 후에 나는 그것을 작동 시켰습니다. 이 시도. 참고 처음에는 처음에는 터지는 소리와 함께 문제가 있었지만 그 원인은 특정 파일의 특성 때문이었습니다.

import os 
from pydub import AudioSegment 
from pydub.playback import play 


cwd = os.getcwd() 

wavepath = cwd+"\\Soundfiles\\CritHit.WAV" 

sound = AudioSegment.from_file(wavepath, format="wav") 

play(sound) 
print(sound.frame_rate) 

# shift the pitch down by half an octave (speed will decrease proportionally) 
octaves = -0.5 

new_sample_rate = int(sound.frame_rate * (2.0 ** octaves)) 

lowpitch_sound = sound._spawn(sound.raw_data, overrides={'frame_rate': new_sample_rate}) 

#Play pitch changed sound 
play(lowpitch_sound)