在Java-TTS应用程序中尽可能流畅地播放ogg语音

在Java-TTS应用程序中尽可能流畅地播放ogg语音,java,text-to-speech,smooth-streaming,Java,Text To Speech,Smooth Streaming,我正在用Java为我自己的语言开发一个文本到语音(TTS)(这是一个以前没有开发过的最终项目,因此我不能使用内置类) 我能识别输入文本的双音 对于播放,我在输入文本分析完成后将双音置于数组中。在此基础上,我根据数组中的双音(一个接一个)播放音频文件(ogg格式) 我想问的是,你觉得这种演奏独立双音的方法怎么样? 现在,我在播放我正在试图消除的每个音频片段之间有(很大)差距。有什么想法吗?在双音合成中,通常在手机中间最稳定的位置拆分双音,然后以这种方式将它们缝合在一起。因此,例如,合成“相遇”一词

我正在用Java为我自己的语言开发一个文本到语音(TTS)(这是一个以前没有开发过的最终项目,因此我不能使用内置类)

我能识别输入文本的双音

对于播放,我在输入文本分析完成后将双音置于数组中。在此基础上,我根据数组中的双音(一个接一个)播放音频文件(ogg格式)

我想问的是,你觉得这种演奏独立双音的方法怎么样?
现在,我在播放我正在试图消除的每个音频片段之间有(很大)差距。有什么想法吗?

在双音合成中,通常在手机中间最稳定的位置拆分双音,然后以这种方式将它们缝合在一起。因此,例如,合成“相遇”一词,我将从<<代码> My/<代码>电话(以ARPABET符号)开始,然后在 I/<代码>中间剪断,并拼接成<代码> Y-DX双音节,其中两个电话被分成两半,等等。以
ix ng
双音结束,其中
ng
已完成


为了做到这一点,您需要知道每个.ogg中对应于连续电话中间的时间索引,或者停止和释放之间的间隔。

我的问题是播放这些双音,我如何以平滑的方式播放它们,并且它们之间没有间隔??因此,我的建议是先播放第二个电话中间的一个索引,然后立即从第二个电话开始第二个。(你可以通过淡入淡出的方式使过渡变得平稳一点,但基本的想法是拼接中间电话)好主意,但你能给我举个简单的例子说明如何做到这一点吗?不幸的是,这个想法来自于一本教科书(Jurafsky&Martin),似乎无法在网上搜索到。如果是我,我会尝试在音频编辑程序中将手机缝合在一起,这样我就可以仔细地对齐波形;一旦听起来不错,我就会尝试找出如何在代码中重现相同的东西。