Я пытался понять это более 2 часов, не уверен на 100%, но я думаю, что это связано с ошибкой в модуле sapi5.py, потому что у меня не установлены следующие голоса:
MSSAM = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\MSSam'
MSMARY = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\MSMary'
MSMIKE = 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\MSMike'
Я попытался добавить к приведенному выше списку, изменил первую запись на MSGeorge, попытался перейти на python 3.6 и 3.7, попытался использовать pyttsx3 2.71,
также попытался изменить реестр, чтобы добавить в MSGeorge, например, то, что вызывается в этом выпуске https://stackoverflow.com/questions/62756194/pyttsx3-module-is-not-showing-all-installed-voices
Я не думаю, что кто-то видел это раньше, учитывая, что я искал в Интернете и на YouTube, я ничего не мог найти, поэтому я думаю, что это что-то простое,
Я использую ПК с Windows 10 с Python 3.8.6 на pycharm,
Код:
import pyttsx3
engine = pyttsx3.init() # object creation
voices = engine.getProperty('voices')
print(voices)
Ошибка:
Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\__init__.py", line 20, in init
eng = _activeEngines[driverName]
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\weakref.py", line 131, in __getitem__
o = self.data[key]()
KeyError: None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/pythonProject/Jarvis/Jarvis.py", line 2, in <module>
engine = pyttsx3.init() # object creation
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\__init__.py", line 22, in init
eng = Engine(driverName, debug)
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\engine.py", line 30, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\driver.py", line 52, in __init__
self._driver = self._module.buildDriver(weakref.proxy(self))
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\drivers\sapi5.py", line 32, in buildDriver
return SAPI5Driver(proxy)
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\drivers\sapi5.py", line 49, in __init__
self.setProperty('voice', self.getProperty('voice'))
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\drivers\sapi5.py", line 102, in setProperty
token = self._tokenFromId(value)
File "C:\Users\user\PycharmProjects\venv\lib\site-packages\pyttsx3\drivers\sapi5.py", line 86, in _tokenFromId
raise ValueError('unknown voice id %s', id_)
ValueError: ('unknown voice id %s', 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_enGB_GeorgeM')