bash/python中的Festival TTS-viseme文件生成

2024-09-23 14:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

目前正在进行一个项目,在RPi上使用Festival TTS引擎。在

以前用过很多次。我也用pyfestival来做一些基本的事情。我正在尝试为一段文本生成viseme文件。如果在Festival命令解释器中完成这项工作,我需要做同样的工作,但在bash或python中。在

节日>;(套!我的文本(SayText“Hello word”)) 节日>(utt.save.segs我的文本“hw-viseme\u-file”)

我到处寻找这个信息,但还是一片空白。有人能举例说明如何从bash或Python调用上面的两行代码?在

非常感谢。在

DP。在


Tags: 文件项目引擎文本命令gtbash事情
2条回答

festival命令有一个脚本选项,因此您应该能够从bash运行如下内容:

festival  script generate_visemes

其中'generate visemes'包含要执行的节日命令(如上所示)。在

在python中,可以像这样调用外部程序:

^{pr2}$

可能要创建脚本文件,如下所示:

import os

ttsMessage = "Hello World"
ttsVisemeFile = "hw_viseme_file"

f = open('generate_visemes','w')
textParam = '(set! mytext(SayText "{0}"))\n'.format(ttsMessage)
visemeParam = '(utt.save.segs mytext "{0}")\n'.format(ttsVisemeFile)

f.write(textParam)
f.write(visemeParam)
f.close()

os.execute("festival  script generate_visemes")

最终解决了这个问题-是相当参与。安装Festival TTS引擎时,下面的代码将在RPi上的python2.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。希望将来能对别人有所帮助。在

相关问题 更多 >