Я пытаюсь воспроизвести распознанный текст напрямую на динамики, не сохраняя его на диск. Я нашел библиотеку io с функцией BytesIO, поэтому я сохраняю распознанный текст из библиотеки gTTS в BytesIO и пытаюсь воспроизвести его через PyAudio.
Я попытался сохранить массив BytesIO на диск и воспроизвести его через VLC, и он работает. Но когда я запускаю свой скрипт, я слышу звук, похожий на «bzzzz». Я новичок в pyaudio & gtts, поэтому я действительно не знаю, что я делаю неправильно.
def speak(self, convertToAudio):
audioOutput = self.convertToAudio(convertToAudio) # returns BytesIO array with text-speech audio
#TEST AUDIO FILE:
#with open("D:\\test.mp3", "wb") as f:
# f.write(audioOutput.getvalue())
print(audioOutput)
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(2), channels=1, rate=24000, output=True, frames_per_buffer=1024)
stream.write(audioOutput.getvalue())
stream.stop_stream()
stream.close()
p.terminate()
return