Я работаю над воспроизведением и записью звука одновременно в PyAudio, и я заставил его работать, но звук, который воспроизводится пользователю, очень прерывистый. Кроме того, я пытаюсь задержать звук обратно к ним с возрастающей скоростью для этого проекта, над которым я работаю, поэтому я чувствую, что это также может повлиять на звук. Это то, что я имею для определения двух аудиопотоков:
streamIn = device.open(
format=paFloat32,
channels=self._CHANNELS,
rate=self._RATE,
input=True,
frames_per_buffer=bufferSize
)
streamOut = device.open(
format=paFloat32,
channels=self._CHANNELS,
rate=self._RATE,
output=True,
frames_per_buffer=bufferSize
)
'bufferSize' - это значение, указанное пользователем, которое представляет желаемую задержку. Таким образом, размер буфера 44100 будет представлять 1000 мс (1 секунда) задержки для пользователя. Вот как я воспроизводю аудио одновременно (также там, где я думаю, что что-то не так):
while self._streamIn.is_active():
start = clock()
self._bufferSize += 44
if self._bufferSize > 44100: self._bufferSize = 44100
audioData = self._streamIn.read(self._bufferSize)
self._streamOut.write(audioData)
actualDelay = (self._bufferSize / 44) / 1000
print(actualDelay)
У меня значение self._bufferSize увеличивается на 44 на каждую итерацию, что составляет около 1 мс. Когда задержка достигает примерно 200 мс, в то время как l oop я думаю, что "замедляется", и звук, который слышит пользователь, становится действительно прерывистым и неузнаваемым. Я использую PyAudio, кто-нибудь знает, подойдет ли эта библиотека для этого или мне стоит посмотреть другую?
Быстрая заметка, я использовал код из этого репозитория: https://github.com/snovvcrash/daf-generator просто чтобы отдать ему должное за то, что я пытаюсь сделать