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