我想編寫一個程序,該程序允許我使用計算機鍵盤播放示例聲音,而且幾乎沒有延遲。使用聲音設備模塊從命令行播放聲音樣本時的等待時間過長
我的程序:
import numpy as np
import sounddevice as sd
import soundfile as sf
import msvcrt
sd.default.latency = 'low'
samplesarray = []
def load_samples(num):
filename='sample'+str(num)+'.wav'
data, fs = sf.read(filename, dtype='float32')
sd.default.samplerate = fs
samplesarray.append(data)
return
numberofsamples=3
for i in range(numberofsamples):
load_samples(i+1)
def play_session():
while 0==0:
key = int(msvcrt.getch())
sd.play(samplesarray[key-1])
return
play_session()
程序文件夾中包含一個編號命名sample1.wav,sample2.wav等「一個炮打響」短樣本,例如踢鼓或圈套。在這個例子中,爲了簡單,只有三個被加載。 我可以在終端中啓動我當前的程序,並在我的鍵上播放樣本「映射」,這正是我想要的。 唯一的問題是延遲:雖然不是很大,但它是明顯的。
對於實時播放樣本,理想的延遲應該幾乎不可察覺(數十毫秒的順序)。
我怎麼能做到這一點?
你可能是指*毫秒*秒? – Matthias