我只是用Python创建一个聊天机器人。它工作得很好,但是我想把pyttsx添加到这个聊天机器人中,这样它就可以说出它的输出。 我的代码是
import aiml
import sys
import pyttsx
engine = pyttsx.init()
# Create a Kernel object.
kern = aiml.Kernel()
brainLoaded = False
forceReload = False
while not brainLoaded:
if forceReload or (len(sys.argv) >= 2 and sys.argv[1] == "reload"):
kern.bootstrap(learnFiles="std-startup.xml", commands="load aiml b")
brainLoaded = True
kern.saveBrain("standard.brn")
else:
try:
kern.bootstrap(brainFile = "standard.brn")
brainLoaded = True
except:
forceReload = True
print "\nINTERACTIVE MODE (ctrl-c to exit)"
while(True):
hea = kern.respond(raw_input("> "))
print hea
engine.say (hea)
engine.runAndWait()
当我运行这个代码时,我没有听到任何声音,但我可以看到终端上的聊天。我也希望它能说出回应。我做错什么了?在
在引擎。运行并等待在while(True):循环之外,因此在循环中断之前不太可能播放它。在
如果您将其移动到循环中,并且声音不稳定,请测试以下代码:
我对pyttsx的经验是,它需要输入少量的文本,否则文本被中断。我不知道确切的原因,但你自己删掉句子,说出几个短语,应该适合你的目的:
^{pr2}$但您需要解析文本并以保持消息完整性的方式截断它。在
相关问题 更多 >
编程相关推荐