며칠 전에 a sounddevice 라이브러리를 Python 2.7.5에 설치했습니다. 내 사운드 컨트롤러에 키를 누른 후 사운드 배열을 만들고 그 위에 몇 가지 효과를 추가하려고합니다. 그러나 나는 내 코드가 쓸모 만드는 0.1 ~ 0.2 초 거대한 지연을 얻을 :파이어 폭스에서 사운드 장치를 사용하여 사운드 배열을 조작하는 동안 대기 시간이 너무 길어졌습니다
import numpy as np
import sounddevice as sd
import time
import math
#we're making a sound array with a 5 seconds length noisy sound and playing it:
duration=5
framerate = 44100
array=0.02*np.random.uniform(-1, 1, framerate*duration)
sd.play(array, framerate)
t=time.time()
while(True):
signal=raw_input("push ENTER to hear a beep")
start_iter=int(framerate*(time.time()-t))
end_iter=min(start_iter+framerate/4, len(array))
#we're trying to change our data array and play a beep signal of 0.25 second after each ENTER press instantly
for i in range(start_iter, end_iter):
array[i]=0.05*math.sin(440*2*math.pi*i/44100.)
if end_iter==len(array): break #safe exit of a process after 5 seconds has passed
는 간단하게하기 위해, 내 소리 배열은 시끄러운 소리 내 효과는 440Hz로 경고음으로 구성되어 있습니다. 나는 파이 게임 라이브러리를 사용하여 가능할 수있는 MIDI 입력 대신 raw_input()을 사용했습니다 (Python 3.x에서는 "input"). 내 코드는 작동하지만 Enter 키를 누를 때마다 신호음이 울리기 전에 짧은 지연 시간이 들립니다. 삭제할 수 있습니까? 그렇지 않은 경우 지연없이 라이브 사운드 스트림을 재생할 수있는 다른 라이브러리가 있습니까?