Я пытаюсь найти лучший способ воспроизведения звука на python без загрузки каких-либо звуковых файлов (например, используя временные файлы с tempfile
). Это для функции speak
с использованием gTTS
;Я уже придумал решение сохранить голосовой файл в объекте NamedTemporaryFile
. Проблема в том, что я пытался играть в нее.
from gtts import gTTS
from tempfile import TemporaryFile
def speak(text, lang = 'en'):
gTTS(text = text, lang = lang).write_to_fp(voice := TemporaryFile())
#Play voice
voice.close()
Мне просто нужно что-то заменить #Play voice
здесь, вот решение, которое я попробовал:
from gtts import gTTS
from tempfile import NamedTemporaryFile
from playsound import playsound
def speak(text, lang = 'en'):
gTTS(text = text, lang = lang).write_to_fp(voice := NamedTemporaryFile())
playsound(voice.name)
voice.close()
Это возвращаетошибка: The specified device is not open or is not recognized by MCI.
Примечание. Решение НЕ ДОЛЖНО использовать какой-либо из вышеперечисленных модулей, кроме gTTS. Пока функция speak
может использоваться многократно и без сохранения каких-либо файлов, она достаточно хороша.