pyttsx3
과 함께 TTS (text-to-speech) 작업을하고 있습니다. 스레드 내에서 사용할 수 있다는 것을 깨달았습니다. (또는 잘못된 것을하고 있습니다.) 왜 그런지 알아?파이썬 스레드에서 pyttsx를 사용하는 방법
코드 예 :
from threading import Thread
import pyttsx3
def myfunc():
engine = pyttsx3.init()
engine.say("ok")
engine.runAndWait()
t = Thread(target=myfunc)
t.start()
오류 :
File "/usr/local/Cellar/python3/3.6.4/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/local/Cellar/python3/3.6.4/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "test.py", line 9, in myfunc
engine.runAndWait() #blocks
File "/usr/local/lib/python3.6/site-packages/pyttsx3/engine.py", line 188, in runAndWait
self.proxy.runAndWait()
File "/usr/local/lib/python3.6/site-packages/pyttsx3/driver.py", line 204, in runAndWait
self._driver.startLoop()
File "/usr/local/lib/python3.6/site-packages/pyttsx3/drivers/nsss.py", line 33, in startLoop
AppHelper.runConsoleEventLoop()
File "/usr/local/lib/python3.6/site-packages/PyObjCTools/AppHelper.py", line 241, in runConsoleEventLoop
nextfire = nextfire.earlierDate_(soon)
AttributeError: 'NoneType' object has no attribute 'earlierDate_'
스레드없이 pyttsx3를 실행할 수 있었습니까? 샘플 코드가 나를 위해 올바르게 실행됩니다. – eyllanesc
@eyllanesc 정말요? 물론 스레드 pyttsx3없이 물론 괜찮아요 –
흥미 롭군요. 어쩌면 그것은 OS 기반 일 것입니다 : 광산이 작동하지 않습니다. 그리고 OP와 저는 둘 다 Mac을 사용하고 있습니다. – rassar