BadPrototypeError: Objective-C expects 1 arguments, Python argument has 2 arguments
Asked Answered
C

0

6

I am working with the python module pyttsx for text to speech and when I run the code, I get this error:

     File "Practice_File.py", line 2, in <module>
     engine = pyttsx.init()
     File "/Library/Python/2.7/site-packages/pyttsx/__init__.py",
     line 39, in init
     eng = Engine(driverName, debug)
     File "/Library/Python/2.7/site-packages/pyttsx/engine.py", line
     45, in __init__
     self.proxy = driver.DriverProxy(weakref.proxy(self), driverName,
     debug)
     File "/Library/Python/2.7/site-packages/pyttsx/driver.py", line
     64, in __init__
     self._module = __import__(name, globals(), locals(), [driverName])
     File "/Library/Python/2.7/site-packages/pyttsx/drivers
     /nsss.py", line 26, in <module>
     class NSSpeechDriver(NSObject):
     objc.BadPrototypeError: Objective-C expects 1 arguments, Python
     argument has 2 arguments for <unbound selector initWithProxy of
     NSSpeechDriver at 0x107592e68>

Here is my python code:

    import pyttsx
    engine = pyttsx.init()
    engine.say('Good morning.')
    engine.runAndWait()

Any ideas on how to fix this issue? Thank you.

Conductivity answered 13/1, 2017 at 14:48 Comment(4)
I'm interested to know the outcome of this as i am facing similar issues.Suicide
I am not sure. The software for pyttsx has a bug in it, as in the python code it expects two arguments to be passed to it. I looked through the source code file for pyttsx but could not find anything. I ended up using the os python module to output a vocal version of the input. Here is the link: https://mcmap.net/q/239486/-how-to-160-make-python-speakConductivity
Right, "from os import system system('say '+text')" worked perfectly.Suicide
That is great! I think it is the only way to make the computer speak as I am not sure if pyttsx is being maintained at all.Conductivity

© 2022 - 2024 — McMap. All rights reserved.