Python文本转语音并能读取变量内容

1 投票
2 回答
4994 浏览
提问于 2025-04-17 20:34

大家好,我正在尝试实现文本转语音的功能。我试过几个Python模块,比如pyttsx和system模块。

我想知道有没有办法让这两个模块读取一个变量的内容。

name = bob

import pyttsx
engine = pyttsx.init()
engine.say("my name is",name)
engine.runAndWait()

我上面尝试的方式不行,它只是读取了字符串,然后就结束了。有没有办法让这个模块同时读取字符串和变量呢?

system模块也是一样的情况。

from os import system
system("say hello my name is",name)

2 个回答

0

如果你在使用Mac电脑,可以试试这样做:

import subprocess
name = 'bob'
subprocess.call('say %s' %(name), shell=True)

这条命令会在终端窗口中执行 say bob,然后它会大声说出来。或者,正如用户2357112所说,你还可以这样做:

import os
name = 'bob'
os.system("say my name is %s" %(name))
3

你传递的参数不对。给say的第二个参数是用来给要说的话起个名字,而不是再加更多要说的内容。你需要把字符串连接起来,才能得到你想要的效果:

engine.say("my name is " + name, "saymyname")

同样,os.system只接受一个参数。你需要构建一个完整的字符串来传递给它:

os.system("say hello my name is " + name)

撰写回答