顺序播放两个音频文件,没有时间延迟

时间:2019-03-17 12:52:03

标签: python text-to-speech wav pyaudio mixing

我正在创建一个程序,将文本转换为语音(TTS)。

到目前为止,我所做的是将给定的单词拆分为音节,然后播放每个预先录制的音节。

例如:

  

输入:[电视]

     

输出:[电话- E - VI - SION ]

然后程序按顺序播放每种声音:

First:   play TEL.wav
Second:  play E.wav
Third:   play VI.wav
Fourth:  play SION.wav

我正在使用wavePyAudio来播放每个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之后使用交叉淡入淡出。

0 个答案:

没有答案