Прямой вывод gTTS через PyAudio - PullRequest
0 голосов
/ 11 января 2019

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

...