2015-11-11 63 views
1

我想編寫一個腳本,它會在將它們打印到屏幕上時讀取單詞列表。pyttsx - 循環使runAndWait()中斷

import pyttsx 

engine = pyttsx.init() 
words = ["here","are","some","test","words"] 

for i in words: 
    engine.say(i) 
    print i 
    engine.runAndWait() 

但是,在運行上述內容時,除「this」以外的所有單詞都被縮短。我聽到類似於「這裏[停頓] ar-so- te- wo-」

如果我是unindent engine.runAndWait(),這些詞在循環完成後說。當我這樣做時,它們不會被切斷,但當然,它們在印刷的同時不會被說出來。

我運行Ubuntu 14.04.2

回答

2

你想要的是打印的話,怎麼樣使用回調,使用pyttsx.Engine.connect

import pyttsx 


def cb(name): 
    print(name) 

engine = pyttsx.init() 
engine.connect('started-utterance', cb) 
for word in ["here", "are", "some", "test", "words"]: 
    engine.say(word, name=word) 

engine.runAndWait()