pyttsx没有声音

时间:2016-04-02 01:36:15

标签: python python-3.x chatbot pyttsx

我只是在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()

当我运行此代码时,我听不到任何声音,但我可以看到终端上的聊天。我也想让它说出回应。我做错了什么?

1 个答案:

答案 0 :(得分:0)

engine.runAndWait在while(True):循环之外,因此在循环中断之前不太可能播放。

如果将其移动到循环中,并且声音不稳定,请测试以下代码:

tblUsers

我对pyttsx的经验是需要输入少量文本,否则文本会被中断。我不确定为什么会这样,但是自己截断句子并说几句话应该适合你的目的:

import pyttsx
engine = pyttsx.init()
engine.say("Oh, hello!")

但是你需要解析文本并以保持消息完整的方式截断它。