Я пытаюсь преобразовать текст в речь, используя pyttsx3 в Python. но я получаю ошибку, возможно, на driverName - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь преобразовать текст в речь, используя pyttsx3 в Python. но я получаю ошибку, возможно, на driverName.

Вот мой код

import pyttsx3
engine = pyttsx3.init()
engine.say("I will speak this text")
engine.runAndWait()

Вот вывод, который дает ошибку.

Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
============ RESTART: D:/abhi/My Program/text-to-speech(pyttsx3).py ============
Traceback (most recent call last):
  File "C:\Users\Laptop\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\__init__.py", line 20, in init
    eng = _activeEngines[driverName]
  File "C:\Users\Laptop\AppData\Local\Programs\Python\Python38\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 "D:/abhi/My Program/text-to-speech(pyttsx3).py", line 2, in <module>
    engine = pyttsx3.init()
  File "C:\Users\Laptop\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\__init__.py", line 22, in init
    eng = Engine(driverName, debug)
  File "C:\Users\Laptop\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\Laptop\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\driver.py", line 50, in __init__
    self._module = importlib.import_module(name)
  File "C:\Users\Laptop\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\Laptop\AppData\Local\Programs\Python\Python38\lib\site-packages\pyttsx3\drivers\sapi5.py", line 3, in <module>
    import win32com.client
  File "C:\Users\Laptop\AppData\Local\Programs\Python\Python38\lib\site-packages\win32com\__init__.py", line 5, in <module>
    import win32api, sys, os
ImportError: DLL load failed while importing win32api: The specified module could not be found.
>>>

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Я решил свою проблему. Во-первых! Я удалил Python-3.8 с панели управления и установил Python-3.7.2 (и добавил к пути во время установки).

Во-вторых, обновил setuptool с помощью cmd -> pip install --upgrade setuptools. после этого я установил SpeechRecognition, pyttsx3

и после этого я также установил PyAudio-0.2.11-cp37-cp37m-win_amd64.whl , используя файл whl (потому что для запуска этой программы необходим pyaudio).

Ссылка для скачивания whl файла-> Здесь .

Теперь эта программа работает.

0 голосов
/ 22 октября 2019

Ваш код не проблема.

Он может успешно работать на моей Windows 10, моя версия Python 3.7.3.

ImportError: Ошибка загрузки DLL при импорте win32api:Указанный модуль не может быть найден.

Ваш модуль win32api, кажется, установлен неправильно, используйте pip uninstall pywin32 для удаления и pip install pywin32 для повторной установки.

Вы также можете ссылаться на другие методы в ссылке для ее решения.

Для KeyError: None вы можете ссылаться на Python KeyError Exceptions и Как их обработать , чтобы сделать некоторыеобработка ошибок.

Наконец, пожалуйста, следуйте этой инструкции для преобразования текста в речь.

...