2016-08-12 21 views
1

This old thread, по-видимому, указывает, что pydub's AudioSegment._data может использоваться для того, чтобы как-то рассчитать высоту звука; к сожалению, это делается, используя метод, присвоенный нераскрытому классу Mpm. Тем не менее, если данные шага могут быть извлечены из AudioSegment._data, есть ли способ использовать pydub для смещения высоты или вниз AudioSegment? Если нет, есть ли другая библиотека для 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)