【问题标题】:How to play a dynamic string with espeak in python如何在python中使用espeak播放动态字符串
【发布时间】:2014-07-18 04:08:34
【问题描述】:

我正在使用 espeak 库进行文本到语音的转换。我能够从字符串生成动态声音来执行此操作。

os.system('espeak "hello"')

这行得通。但我需要的是从字符串中生成声音。这就是我所做的

string='hello'
os.system('espeak string')

【问题讨论】:

标签: python raspberry-pi espeak


【解决方案1】:

只需将您想要说出的字符串插入到您的命令中。

>>> string = "Hello"
>>> os.system('espeak "{}"'.format(string))

如果您接受用户输入的字符串,您可以使用subprocess.Popen 函数。

>>> import subprocess
>>> p = subprocess.Popen(['espeak', string])

【讨论】:

  • 如果包含用户输入,请使用subprocess.Popen
  • @Blender:是的,我会这样做。但是,OP 使用了 os.system。没关系,我也会添加 Popen。
  • 我的意思是没有shell=Truesubprocess.check_call(['espeak', string])
  • @Blender:已修复。谢谢。
  • '"{}"'.format(string) 的结果将被转义。只需string 即可。
【解决方案2】:

为什么不使用 commands.getoutput() 呢?

import commands

def espeak(string):
    output = 'espeak "%s"' % string
    a = commands.getoutput(output)


espeak("Mario Balotelli") 

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2020-02-29
    • 2019-10-21
    • 1970-01-01
    相关资源
    最近更新 更多