скорость воспроизведения звука Pygame - PullRequest
5 голосов
/ 29 января 2010

быстрый вопрос.

Я использую Pygame под Linux только для воспроизведения некоторых аудиофайлов. У меня есть некоторые файлы .wav, и я не могу воспроизвести их с нужной скоростью.

import pygame.mixer, sys, time

#plays too fast
pygame.mixer.init(44100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()

#plays too slow
pygame.mixer.init(22100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()

Я искал код ggogle, но все, кажется, в порядке, вызывая функцию init с параметрами по умолчанию Могут ли другие попробовать запустить этот скрипт и посмотреть, получат ли они такое же поведение или нет? Кто-нибудь знает, как это ускорить? Или настроить скорость для каждого файла?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 18 февраля 2017

У меня замедлилось воспроизведение некоторых звуковых дорожек mp3.Я обновил частоту микшера в соответствии с частотой дискретизации mp3, используя mutagen , например, так:

import pygame, mutagen.mp3

song_file = "your_music.mp3"

mp3 = mutagen.mp3.MP3(song_file)
pygame.mixer.init(frequency=mp3.info.sample_rate)

pygame.mixer.music.load(song_file)
pygame.mixer.music.play()

И это решило проблему.

2 голосов
/ 29 января 2010

Откройте ваш аудиофайл с помощью бесплатного аудио инструмента, такого как Audacity .Он скажет вам частоту дискретизации вашего медиа.Это также позволит вам перейти на другую частоту дискретизации, чтобы все ваши звуки могли быть одинаковыми.

1 голос
/ 06 сентября 2017

Для улучшения Крис Н, ответ . Вот пример использования библиотеки wave.

import wave
import pygame

file_path = '/path/to/sound.wav'
file_wav = wave.open(file_path)
frequency = file_wav.getframerate()
pygame.mixer.init(frequency=frequency)
pygame.mixer.music.load(file_path)
pygame.mixer.music.play()

Помните, что если вы хотите изменить frequency или любой другой параметр, используемый в pygame.mixer.init, вы должны сначала вызвать pygame.mixer.quit. Документация Pygame

1 голос
/ 29 января 2010

Я понял это ... Существует волновой модуль http://docs.python.org/library/wave.html, который может считывать частоту дискретизации для файлов WAV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...