2017-01-04 3 views
0

Je voudrais faire une instance de pyttsx à l'intérieur d'une classe et avoir une fonction de paramètres pour changer le débit de la parole. Mais la initialisation ne fonctionne pas correctement car il donne le message d'erreur suivant:Comment initialiser une instance de pyttsx depuis une classe?

AttributeError: TTSengine instance has no attribute 'say' 

De mes 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() 

Répondre

1

Votre classe elle-même ne dispose pas d'une fonction par exemple. Votre classe a un moteur pyttsx en tant que variable membre, donc ce qui suit devrait fonctionner:

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