我正在编写一个程序,我正在使用espeak
库来让它说话。问题是我已经编写了我的程序,但现在我想在开始时询问用户他是希望程序与他交谈还是仅仅依靠阅读。因此,如果他说是,则程序使用 using espeak
,但如果他说否,则程序不使用espeak
,所以我被困在 no 部分。
我想问一个问题并根据答案使用正确的函数,但问题是它是一个本地函数,所以当你使用espeak()
它说的函数时
NameError: name 'espeak' is not defined
这就是我想要的:
import os
ai_talk = False
# MAKE THE AI SPEAK, OR NOT
def speak_or_not():
global ai_talk
speak_or_n = input("Do you want me to speak or not?\nPS: input Y/N\n").casefold()
while not ai_talk:
if (speak_or_n == "y") or (speak_or_n == "yes"):
def espeak(text):
command = 'espeak -v +f2 -p25 '+'"'+text+'"'
os.system(command)
return
ai_talk = True
elif (speak_or_n == "n") or (speak_or_n == "no"):
def espeak(text):
return
ai_talk = True
else:
speak_or_n = input("You can only input Y/N").casefold()
return
speak_or_not()
print("Hello there! how are you doing?")
espeak("Hello there! how are you doing?")
那么有没有办法使该def espeak()
功能在全局范围内工作,以便我可以将它用于我的程序的其余部分?
(除了处理孔东西并粘贴在没有espeak
功能的no部分之外)