PythonでMP3再生(pygame)
前回の
の中で、pygame使った場合との比較が入っていなかったので補足しておきます。pygameは、snykAdvisorのスコアも高いです。
ファイル処理・再生 pygame.music
import time
from pygame import mixer
start_time = time.time()
# 処理をここに
mixer.init()
mixer.music.load("test.mp3")
mixer.music.play(loops=0)
while mixer.music.get_busy():
time.sleep(0.1)
end_time = time.time()
print(f"{end_time-start_time:.3f}秒")
1.153秒、1.157秒、1.155秒
え?なにこれ、速い。
前回のファイル処理soundfile 再生sounddeviceのテストコードも再度確認
import time
import sounddevice as sd
import soundfile as sf
start_time = time.time()
# 処理をここに
y, sr = sf.read("test.mp3")
sd.play(y, sr)
sd.wait()
end_time = time.time()
print(f"{end_time-start_time:.3f}秒")
1.320秒、1.276秒、1.288秒
これ、1.056秒分は音源ファイル自体の長さ(duration)だから、処理時間としては
pygame.music 0.097 0.101 0.099
soundfile sounddevice 0.264 0.220 0.232
・・pygame.musicが明らかに圧倒的に速いですね。
結論
ただ再生するだけなら(1.5倍速再生とかしなければ)pygame最強。
加工するならpydub +sounddevice 。