我正在研究improving Festival on Emacs。当它读一个句子时,我需要更好地控制节日。基本上,我需要两件事:
理想情况下,Festival会输出一些数据结构,将偏移量/长度(通常是单词的开头/长度)与输出WAV文件(甚至是wav文件中的位置)链接起来。然后,我可以使用类似mplayer的内容来构建播放列表,并以某种方式告诉我何时播放下一个单词以及缓冲区中该单词的位置。
我也希望有一些简单的命令来改变正在阅读的内容的速度。但是,mplayer可以为我做到这一点,所以如果我能让#1工作,这不是什么大问题。
答案 0 :(得分:1)
参见手册here,特别是关于“text2wave”脚本的部分。我不清楚这是一个单独的可执行文件,还是只需要调用的方案脚本。在任何一种情况下,它看起来应该给你一些如何做到这一点的灵感。在我看来,您可以向此命令发送一个完整的缓冲区,这将生成一个.wav文件,然后您可以通过mplayer控制该文件。当然,这意味着你不会知道当前正在播放哪个句子,所以你可以输出每个句子作为.wav文件,然后在mplayer中排队(或重复调用mplayer)。如果text2wave是一个可执行文件,我不确定它是否可以在Windows上使用,但你应该能够用Festival的方案脚本完成同样的事情。
编辑:text2wave确实是一个脚本,但你应该能够轻松修改它以调用festival作为参数(path / to / festival --script text2wave)。我不知道Windows二进制文件是否包含这个,但它应该可以从主节日网站或* nix发行版中获得(它肯定在Ubuntu中)。