nateshmbhat / pyttsx3

Offline Text To Speech synthesis for python
Mozilla Public License 2.0
2.12k stars 332 forks source link

save_to_file doesn't work when using dummy driver #199

Open P4RZ1V4L-93 opened 3 years ago

P4RZ1V4L-93 commented 3 years ago

I'm trying to run pyttsx in replit.com and when using engine = pyttsx.init() it gives

Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/__init__.py", line 20, in init
    eng = _activeEngines[driverName]
  File "/usr/lib/python3.8/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 "main.py", line 7, in <module>
    engine = pyttsx3.init()
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/__init__.py", line 22, in init
    eng = Engine(driverName, debug)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/engine.py", line 30, in __init__
    self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/driver.py", line 50, in __init__
    self._module = importlib.import_module(name)
  File "/usr/lib/python3.8/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 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/drivers/espeak.py", line 9, in <module>
    from . import _espeak, toUtf8, fromUtf8
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/drivers/_espeak.py", line 18, in <module>
    dll = cdll.LoadLibrary('libespeak.so.1')
  File "/usr/lib/python3.8/ctypes/__init__.py", line 451, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.8/ctypes/__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libespeak.so.1: cannot open shared object file: No such file or directory

so i used engine = pyttsx3.init('dummy') engine.say('hello') works but when using engine.save_to_file('heelo' , 'hello.mp3') it gives error

Ignoring exception in command play:
Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "main.py", line 23, in play
    engine.save_to_file('hello', 'hello.mp3')
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/engine.py", line 119, in save_to_file
    self.proxy.save_to_file(text, filename, name)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pyttsx3/driver.py", line 162, in save_to_file
    self._push(self._driver.save_to_file, (text, filename), name)
AttributeError: 'DummyDriver' object has no attribute 'save_to_file'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'DummyDriver' object has no attribute 'save_to_file'
itsmedeepak commented 3 years ago

I'm facing same issue. please help

bqtd commented 2 years ago

You can install pyttsx3==2.71 to solve this problem, I did and succeeded

alisolanki commented 1 year ago

Facing the same issue, I have installed the latest version of pyttsx also tried downgrading it to pyttsx3==2.71 both didn't work