ドラム マシンのようなリズムを演奏する Python スクリプトを作成して遊んでいます。PyGame を使用してオーディオを処理しました。ただし、play を呼び出してから実際の音声を聞くまでの間に、許容できない大幅な遅延が発生します。
次のコードを対話型インタープリターに貼り付け、最後の行を何度も実行しました。
import pygame
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
s = pygame.mixer.Sound('snare.wav')
s.play(loops=0, maxtime=0, fade_ms=0)
Enter キーを押してから音声が聞こえるまでの時間は、私の推測では約 400 ミリ秒であり、実際に目立ち、受け入れられません。遅延は、VLC の再生ボタンをクリックしてオーディオが再生されるのを待った場合とほぼ同じです。
これを Windows と Ubuntu の両方で試しましたが、結果は同じでした。私のコンピュータは少し古いもので、Intel Core i3、2.53GHz ですが、これは問題にはならないと思います。
これについて何ができますか?
ループ内:
このコードは、同じ遅延を示しています。
for i in range(10):
print i
s.play(loops=0, maxtime=0, fade_ms=0)
sleep(2)