Воспроизведение записанного звука в файле python не работает - PullRequest
1 голос
/ 24 марта 2020

Я использую sounddevice для записи и воспроизведения звука с python. Я использую очень простой код, который хорошо работает из интерпретатора python:

import sounddevice as sd
from time import sleep

fs = 44100
myrec = sd.rec(int(fs*3), samplerate=fs, channels=2)
sleep(3)
sd.play(myrec, fs)

Однако, когда я пытаюсь запустить этот код из файла python (или используя PyCharm) это просто не будет играть. Что не так с кодом, который делает это возможным?

1 Ответ

1 голос
/ 24 марта 2020

Проблема в том, что звуковое устройство воспроизводит звук в фоновом режиме. Когда сценарий заканчивается, он не будет ждать завершения воспроизведения. В Python интерпретаторе вы остаетесь в сеансе для прослушивания, но от сценария вам нужно явно его дождаться:

import sounddevice as sd
from time import sleep

fs = 44100
myrec = sd.rec(int(fs*3), samplerate=fs, channels=2)
sd.wait()
sd.play(myrec, fs)
sd.wait()
...