見出し画像

PythonでMP3再生(pygame)

前回の

の中で、pygame使った場合との比較が入っていなかったので補足しておきます。pygameは、snykAdvisorのスコアも高いです。

https://snyk.io/advisor/python/pygame より

ファイル処理・再生 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 。

いいなと思ったら応援しよう!