В настоящее время я пытаюсь внедрить отсроченную слуховую обратную связь в эту программу python, чтобы мы могли использовать ее для нашего старшего класса проектирования. Отсроченная аудио часть хороша, но когда дело доходит до исследования, задержанный эффект должен «увеличиваться», то есть начинаться с 0 мс и увеличиваться до желаемой величины, например 200 мс.
Вот устройства, которые я настроил (буфер начинается с 44, потому что это эквивалентно 1 мс задержки):
try:
streamIn = device.open(
format=paFloat32,
channels=self._CHANNELS,
rate=self._RATE,
input=True,
frames_per_buffer=44
)
streamOut = device.open(
format=paFloat32,
channels=self._CHANNELS,
rate=self._RATE,
output=True,
frames_per_buffer=44
)
И затем, когда дело доходит до потоковой передачи аудио, это это то, что у меня есть (буфер увеличивается на 44, потому что каждые 1 мс - это увеличение до 44 буфера):
delayDisplay = 1
count = 0
while self._streamIn.is_active():
if self._buffer < self._actualBuffer:
self._buffer = self._buffer + 44
delayDisplay = delayDisplay + 1
count = count + 1
self._trigger.emit(delayDisplay/1000)
audioData = self._streamIn.read(self._buffer)
self._streamOut.write(audioData)
В настоящее время он работает. Звук задерживается с возрастающей скоростью, но когда он достигает примерно 180 мс, звук начинает прерываться и становится очень прерывистым.
Кто-нибудь знает, как это исправить, если для этого есть решение?