Я создаю программу для преобразования текста в речь (TTS
).
То, что я до сих пор делал, - это разбил данное слово на слоги, а затем проиграл все предварительно записанные слоги.
Например:
INPUT:[ТЕЛЕВИДЕНИЕ]
ВЫХОД: [ ТЕЛ - E - VI - SION ]
А затем программа воспроизводит каждый звук в следующем порядке:
First: play TEL.wav
Second: play E.wav
Third: play VI.wav
Fourth: play SION.wav
Я использую wave
и PyAudio
для воспроизведения каждого файла WAV:
wf = wave.open("sounds/%s.wav" %(ss), 'rb')
p = pyaudio.PyAudio()
stream = p.open(...)
data = wf.readframes(CHUNK)
stream.write(data)
... etc.
Теперь проблемазаключается в том, что во время воспроизведения существует задержка между каждым аудиофайлом, и произнесенное слово звучит неестественно.
Возможно ли смешивать эти аудиофайлы без создания нового файла и воспроизводить их с задержкой 0,2 с между каждым аудиофайлом?
Редактировать: я попробовал решение Нулмана, и оно работало лучше, чем просто вызывать новую wf для каждого звука.Я также попытался поставить кроссфейд, следуя этим инструкциям .