Bash / python中的Festival TTS viseme文件生成

时间:2016-03-27 09:33:47

标签: python bash festival

我目前正在开发一个在RPi上使用Festival TTS引擎的项目。

以前用过很多东西。我也用pyfestival来做基本的东西。我目前正在尝试为一段文本生成viseme文件。如果在Festival命令解释器中完成,这非常有效,我需要在bash或python中完全相同。

节> (设置!mytext(SayText" Hello word")) 节> (utt.save.segs mytext" hw_viseme_file")

已搜索此信息的高低,但已空白。有人可以举例说明如何从bash或Python调用上面两行代码吗?

非常感谢。

DP。

2 个答案:

答案 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。希望将来可以帮助某人。