2017-01-04 3 views
0

Ich möchte eine Instanz von pyttsx innerhalb einer Klasse machen und eine Einstellungsfunktion haben, um die Sprechgeschwindigkeit zu ändern. Aber der init funktioniert nicht richtig, wie es die folgende Fehlermeldung gibt:Wie initiiere ich eine Instanz von pyttsx innerhalb einer Klasse?

AttributeError: TTSengine instance has no attribute 'say' 

Aus meinen Codes:

import pyttsx 

class TTSengine(): 
    def __init__(self): 
     self.engine = pyttsx.init() 
    def settings(self): 
     self.rate = self.engine.getProperty('rate') 
     self.engine.setProperty('rate', self.rate-50) 

y = pyttsx.init() 
print y 
y.say('I am ok') 
y.runAndWait() 

x = TTSengine() 
print x 
x.say('I am ok') 
x.runAndWait() 

Antwort

1

Ihre Klasse selbst nicht mitreden Funktion. Ihre Klasse hat eine pyttsx-Engine als Membervariable, daher sollte Folgendes funktionieren:

x = TTSengine() 
x.engine.say('I am ok') 
x.engine.runAndWait() 
Verwandte Themen