我目前正在开发一个在RPi上使用Festival TTS引擎的项目。
以前用过很多东西。我也用pyfestival来做基本的东西。我目前正在尝试为一段文本生成viseme文件。如果在Festival命令解释器中完成,这非常有效,我需要在bash或python中完全相同。
节> (设置!mytext(SayText" Hello word")) 节> (utt.save.segs mytext" hw_viseme_file")
已搜索此信息的高低,但已空白。有人可以举例说明如何从bash或Python调用上面两行代码吗?
非常感谢。
DP。
答案 0 :(得分:0)
festival命令有一个--script选项,所以你应该可以从bash运行:
time = new Date($.now());
requestJSON = '{"Method":"GET","AppName":"Proline","ServiceURL":"http://localhost:8081/api/services/tags/","Properties":null,"Object":"","Timestamp":"'+time+'"}'
$.ajax({
type: "GET",
url: "http://localhost:8081/api/services/tags/",
data:JSON.stringify(requestJSON),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
});
生成 - visemes '包含您要执行的Festival命令(上面)。
从python中你可以调用这样的外部程序:
festival --script generate_visemes
也许要创建脚本文件,如下所示:
os.system("festival --script generate_visemes")
答案 1 :(得分:0)
最后解决了这个问题 - 相当参与。安装Festival TTS引擎时,以下在RPi上的Python 2.7中运行。
import os
#Simple example
bashcommand = "echo 'Hello World' | festival --tts"
os.system(bashcommand)
# This bash command takes the entered phrase and returns an audio .wav file and a text file of the visemes
while True:
phrase = raw_input("Enter phrase:")
bashcommand = "festival -b '(set! mytext (Utterance Text " + '"' + phrase + '"))' + "' '(utt.synth mytext)' '(utt.save.wave mytext " + '"my_wav.wav")' + "' '(utt.save.segs mytext " + '"textfile"' + ")'"
os.system(bashcommand)
您当然也可以从命令行运行bash。希望将来可以帮助某人。