pyttsx不发出声音

2024-06-12 07:38:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当我运行这个代码时,我没有听到任何声音,但我可以看到终端上的聊天。我也希望它能说出回应。我做错什么了?在


Tags: 代码importfalsetruesys机器人kernelengine
1条回答
网友
1楼 · 发布于 2024-06-12 07:38:56

在引擎。运行并等待在while(True):循环之外,因此在循环中断之前不太可能播放它。在

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

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

我对pyttsx的经验是,它需要输入少量的文本,否则文本被中断。我不知道确切的原因,但你自己删掉句子,说出几个短语,应该适合你的目的:

^{pr2}$

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

相关问题 更多 >