Как инициировать экземпляр pyttsx из класса?

Я хотел бы сделать экземпляр из pyttsx внутри класса и иметь функцию настроек для изменения скорости речи. Но init не работает должным образом, так как выдает следующее сообщение об ошибке:

AttributeError: TTSengine instance has no attribute 'say'

Из моих кодов:

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

1 ответ

У вашего класса нет функции "сказать". Ваш класс имеет в качестве переменной-члена движок pyttsx, поэтому должно работать следующее:

x = TTSengine()
x.engine.say('I am ok')
x.engine.runAndWait()
Другие вопросы по тегам