Воспроизведение аудио PyAudio очень прерывистое - PullRequest
0 голосов
/ 23 февраля 2020

Я работаю над воспроизведением и записью звука одновременно в 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 просто чтобы отдать ему должное за то, что я пытаюсь сделать

...