我正在尝试使用语音识别制作脚本。所以我有3个文件。 1个文件正在听我正在说的内容,然后将其打印到文件中。另一个脚本正在读取文件并根据文件的说法进行回答。 第三个脚本只是启动另外两个脚本
第一个脚本(stt.py):
import os
import pyttsx
import sys
from pocketsphinx import LiveSpeech, get_model_path
engine = pyttsx.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', 'english+f3')
f = open("test.out", 'w')
sys.stdout = f
model_path = get_model_path()
speech = LiveSpeech(
verbose=False,
sampling_rate=16000,
buffer_size=2048,
no_search=False,
full_utt=False,
hmm=os.path.join(model_path, 'en-us'),
lm=os.path.join(model_path, 'en-us.lm.bin'),
dic=os.path.join(model_path, 'cmudict-en-us.dict')
)
f = open("test.out", 'w')
sys.stdout = f
for phrase in speech:
print (phrase)
f.write ("end")
第2个脚本(speak.py):
import pyttsx
import sys
engine = pyttsx.init()
voices = engine.getProperty('voices')
f = open("test.out", 'w')
sys.stdout = f
volume = engine.getProperty('volume')
engine.setProperty('voice', 'english+f3')
engine.setProperty('volume', volume-0.10)
engine.say("good morning master, I'm Moas. How can I help you?")
engine.runAndWait
if 'start' in open('test.out').read():
engine.say("Hello Admin")
else:
engine.say("I did not understand")
engine.runAndWait()
第3个脚本(start.py)
execfile("speak.py")
execfile("stt.py")
所以当我开始“start.py” 它打开终端,说“早上好主人,即时通讯我怎么能帮助你,我不明白”。 然后它只是坐着等待什么。如果我只运行“speak.py”它就像上面那样说了然后关闭了。
我想要的文件是每隔10秒检查一次文件,看它是否已经改变,然后根据文件的说法进行回答。
有人有任何想法吗?
答案 0 :(得分:1)
我认为问题是您忘记了engine.runandwait