import pygame.time
from pygame.mixer import *
pre_init()
init(frequency=32000)
filename = 'speech.wav'
music.load(filename)
music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
pygame.mixer.init()
принимает параметр частота . А поскольку проигрыватель по умолчанию 22050
, воспроизведение будет замедленным, что будет звучать по-другому. Вы можете обойти это, изменив скорость вручную, или вы можете получить фактическую скорость из music.load()
, метаданные должны быть в файле.
В противном случае просто наберите ffmpeg -i speech.wav
, и вы увидите правильную частоту внизу.
Чтобы изменить частоту аудио-файлов на одинаковую частоту, вы можете использовать ffmpeg для перекодирования файлов. Теперь, я не волшебник с ffmpeg - но просто что-то вроде:
ffmpeg -i speech.wav -af asetrate="32000*1.38125,atempo=1/1.38125" output.wav
Или используйте Audacity или что-то, что другие рекомендуют: https://superuser.com/questions/292833/how-to-change-audio-frequency
Второй вариант изменить частоту на плеере - это вызвать pygame.mixer.quit()
после каждого мультимедийного файла и повторно запустить его с новой частотой, соответствующей вашему новому файлу. Или, наконец, прочитайте документы и посмотрите, возможно ли изменить частоту воспроизведения на уже инициализированном экземпляре микшера. Это за пределами моего знания, хотя. Я просто знаю, какова ваша изначальная корневая проблема:)