'importing pyttsx3 in python3.8 and found an error
I downloaded pyttsx3 in command prompt I have a big error this the code:
import pyttsx3
engine = pyttsx3.init()
engine.say("I will speak this text")
engine.runAndWait()
output error:
''' = RESTART: C:\Users\RAMS\AppData\Local\Programs\Python\Python38\text t speech.py Traceback (most recent call last): File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3_init_.py", line 20, in init eng = _activeEngines[driverName] File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\weakref.py", line 131, in getitem o = self.datakey KeyError: None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\drivers\sapi5.py", line 3, in <module>
from comtypes.gen import SpeechLib # comtypes
ImportError: cannot import name 'SpeechLib' from 'comtypes.gen' (C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\gen\__init__.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 123, in WINFUNCTYPE
return _win_functype_cache[(restype, argtypes, flags)]
KeyError: (<class 'ctypes.HRESULT'>, (<class 'comtypes.automation.tagVARIANT'>, <class 'ctypes.wintypes.LP_c_long'>), 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\text t speech.py", line 2, in <module>
engine = pyttsx3.init()
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\__init__.py", line 22, in init
eng = Engine(driverName, debug)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\engine.py", line 30, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\driver.py", line 50, in __init__
self._module = importlib.import_module(name)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\drivers\sapi5.py", line 6, in <module>
engine = comtypes.client.CreateObject("SAPI.SpVoice")
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\client\__init__.py", line 250, in CreateObject
return _manage(obj, clsid, interface=interface)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\client\__init__.py", line 188, in _manage
obj = GetBestInterface(obj)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\client\__init__.py", line 110, in GetBestInterface
mod = GetModule(tlib)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\client\_generate.py", line 110, in GetModule
mod = _CreateWrapper(tlib, pathname)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\client\_generate.py", line 184, in _CreateWrapper
mod = _my_import(fullname)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\client\_generate.py", line 24, in _my_import
return __import__(fullname, globals(), locals(), ['DUMMY'])
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\gen\_C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.py", line 1467, in <module>
ISpeechBaseStream._methods_ = [
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\__init__.py", line 329, in __setattr__
self._make_methods(value)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\__init__.py", line 698, in _make_methods
prototype = WINFUNCTYPE(restype, *argtypes)
File "C:\Users\RAMS\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 125, in WINFUNCTYPE
class WinFunctionType(_CFuncPtr):
TypeError: item 1 in _argtypes_ passes a union by value, which is unsupported
''' this is the error I don't know why In command prompt pip install pyttsx3:
Requirement already satisfied: pyttsx3 in c:\users\rams\appdata\local\programs\p
ython\python38\lib\site-packages (2.90)
Requirement already satisfied: comtypes; platform_system == "Windows" in c:\user
s\rams\appdata\local\programs\python\python38\lib\site-packages (from pyttsx3) (
1.1.7)
Requirement already satisfied: pypiwin32; platform_system == "Windows" in c:\use
rs\rams\appdata\local\programs\python\python38\lib\site-packages (from pyttsx3)
(223)
Requirement already satisfied: pywin32; platform_system == "Windows" in c:\users
\rams\appdata\local\programs\python\python38\lib\site-packages (from pyttsx3) (2
28)
Solution 1:[1]
I had a similar error when trying to import pyttsx3. I downgraded to Python 3.7 and then it worked without issues.
Solution 2:[2]
Pyttsx3 isn't compatible with the newer python versions like 3.8 and most likely the upcoming 3.9. While I haven't tested with python 3.7, I recommend using 3.6 or 3.5 because these versions are compatible with the majority of libraries out there right now and are great for any big projects including Speech Recognition. I have done this and my python project featuring google SpeechRecognition works very well.
Solution 3:[3]
First, install Python version 3.6 or 3.5 in your system. Then, install this version pip install pyttsx3==2.86
. It will work!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | thomin |
Solution 2 | Redgar Tech |
Solution 3 | richardec |