我正在创建一个程序,将文本转换为语音(TTS
)。
到目前为止,我所做的是将给定的单词拆分为音节,然后播放每个预先录制的音节。
例如:
输入:[电视]
输出:[电话- 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.2s的延迟播放它们?
编辑:我尝试了Nullman的解决方案,它比只对每种声音调用一个新的wf更好。 我还尝试过在these instructions之后使用交叉淡入淡出。