Processing/java中文本到语音的长音节



我正在使用处理进行测试文本到语音程序。现在,它基本上就像一架钢琴,用来弹奏字母的音节,但当我按下,比如"u"键时,它就会循环播放音频文件。我希望程序根据我按住"u"键的时间长短来绘制音频的长度。

当我按住"u"键时,它会发出"uh uh uh uh uh uh uh uh uh uh uh uh"的声音

我想要的是当我按住"u"时发出"uuuuuuuuuuuuuuuuhh"的声音。

在处理中是否有一个功能可以让我像这样延长音频文件?如果没有,有没有办法在java或C中做到这一点?

我想你可以试着看看"颗粒合成"的一些基本概念。

如果你可以将核心声音分解成一个"颗粒"并将它们端到端放置(可能会有一些重叠的插值来帮助平滑它们),这可能对你想要做的事情来说"足够好"。要做到这一点,你可能需要足够的知识来编辑你的音频文件的PCM数据。

循环Java"Clip"可能不会工作,因为在连接处很可能会有单击或沉默。然而,我写了一个剪辑环,允许重叠-作为一个简单的混合器的一部分,我正在工作。欢迎您尝试使用它。http://www.java-gaming.org/topics/simple-audio-mixer-2nd-pass/27943/view.html。有帮助的关键工具是PFClipLooper。但是PFClipShooters可以很好地处理短声音,因为它们允许以不同的音调播放——允许一些粗略的变形。

您正在使用Audacity或其他DAW吗?你也许可以把你的声音编辑成很短的东西,可以在那里循环,形成一个很长的"uuuuuu"。对于长元音录音,您可以让该元音的回放检查由击键设置的布尔值。(您熟悉Java的回放代码吗?)当声音停止时,你必须写一个干净的音量锥度。而且,这种方法只适用于所记录元音的长度。

总的来说,这需要一些工作,这是肯定的。如果你正在寻找一个现有的图书馆,或"简单的方法",那么我不知道。我也不熟悉Processing的所有细节,也不知道使用Java库有多容易。它能利用libpd(纯数据)或csgrain或其他synth工具吗?这样的东西会比我头脑风暴的原始数据操作更精致。但也许我的建议会起作用。我想知道我的库是否可以从处理中调用?我从来没有测试过。包含源代码,以便您可以查看循环剪辑的逻辑,以及以不同速度播放的逻辑。

最新更新