鱼C论坛

 找回密码
 立即注册
查看: 3150|回复: 9

[已解决]使用 pyttsx3转语音 出现Type异常

[复制链接]
发表于 2020-2-16 14:26:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
出现的这个异常百度了很久都没有找到解决方法 重装也不行 类型错误 但是 试了很多别的类型 也是不行

代码:
import pyttsx3
text = 'text one'
voice = pyttsx3.init()
voice.say(text)
voice.runAndWait()
最佳答案
2020-2-16 16:28:33
admintest166 发表于 2020-2-16 16:27
我好像发现 python3.7.6 在运行voise=pyttsx3.init()的时候就报错了
但是用3.7.3却没有任何问题  会不会 ...

应该是吧,不过用 PyWin32 可以
11.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-16 14:27:04 | 显示全部楼层
错误代码
Traceback (most recent call last):
  File "F:\python\lib\site-packages\pyttsx3\__init__.py", line 20, in init
    eng = _activeEngines[driverName]
  File "F:\python\lib\weakref.py", line 137, in __getitem__
    o = self.data[key]()
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\python\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' (F:\python\lib\site-packages\comtypes\gen\__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\python\lib\ctypes\__init__.py", line 121, in WINFUNCTYPE
    return _win_functype_cache[(restype, argtypes, flags)]
KeyError: (<class 'ctypes.HRESULT'>, (<class 'ctypes.c_long'>, <class 'comtypes.automation.tagVARIANT'>, <class 'comtypes.automation.tagVARIANT'>, <class 'ctypes.c_long'>, <class 'ctypes.c_long'>), 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:/Python代码存放/py.py", line 5, in <module>
    voice = pyttsx3.init()
  File "F:\python\lib\site-packages\pyttsx3\__init__.py", line 22, in init
    eng = Engine(driverName, debug)
  File "F:\python\lib\site-packages\pyttsx3\engine.py", line 30, in __init__
    self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
  File "F:\python\lib\site-packages\pyttsx3\driver.py", line 50, in __init__
    self._module = importlib.import_module(name)
  File "F:\python\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "F:\python\lib\site-packages\pyttsx3\drivers\sapi5.py", line 6, in <module>
    engine = comtypes.client.CreateObject("SAPI.SpVoice")
  File "F:\python\lib\site-packages\comtypes\client\__init__.py", line 250, in CreateObject
    return _manage(obj, clsid, interface=interface)
  File "F:\python\lib\site-packages\comtypes\client\__init__.py", line 188, in _manage
    obj = GetBestInterface(obj)
  File "F:\python\lib\site-packages\comtypes\client\__init__.py", line 110, in GetBestInterface
    mod = GetModule(tlib)
  File "F:\python\lib\site-packages\comtypes\client\_generate.py", line 110, in GetModule
    mod = _CreateWrapper(tlib, pathname)
  File "F:\python\lib\site-packages\comtypes\client\_generate.py", line 184, in _CreateWrapper
    mod = _my_import(fullname)
  File "F:\python\lib\site-packages\comtypes\client\_generate.py", line 24, in _my_import
    return __import__(fullname, globals(), locals(), ['DUMMY'])
  File "F:\python\lib\site-packages\comtypes\gen\_C866CA3A_32F7_11D2_9602_00C04F8EE628_0_5_4.py", line 128, in <module>
    ( ['out', 'retval'], POINTER(SpeechWordPronounceable), 'WordPronounceable' )),
  File "F:\python\lib\site-packages\comtypes\__init__.py", line 329, in __setattr__
    self._make_methods(value)
  File "F:\python\lib\site-packages\comtypes\__init__.py", line 698, in _make_methods
    prototype = WINFUNCTYPE(restype, *argtypes)
  File "F:\python\lib\ctypes\__init__.py", line 123, in WINFUNCTYPE
    class WinFunctionType(_CFuncPtr):
TypeError: item 2 in _argtypes_ passes a union by value, which is unsupported.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:47:55 | 显示全部楼层
import pyttsx3
text = '你好'
voice = pyttsx3.init("dummy")
voice.say(text)
voice.runAndWait()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 15:52:50 | 显示全部楼层

没有报错 但是没有任何返回 也没有任何声音
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-16 16:03:22 | 显示全部楼层
admintest166 发表于 2020-2-16 15:52
没有报错 但是没有任何返回 也没有任何声音

那就用这段代码(先安装 Pywin32 库):
import win32com.client
text = "Hello"    # 要播报的文本
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak(text)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 16:12:27 | 显示全部楼层
这个Pywin32 库可以正常使用 就是pyttsx3 不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 16:27:58 | 显示全部楼层
zltzlt 发表于 2020-2-16 16:03
那就用这段代码(先安装 Pywin32 库):

我好像发现 python3.7.6 在运行voise=pyttsx3.init()的时候就报错了
但是用3.7.3却没有任何问题  会不会是3.7.6不支持pyttsx3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 16:28:33 | 显示全部楼层    本楼为最佳答案   
admintest166 发表于 2020-2-16 16:27
我好像发现 python3.7.6 在运行voise=pyttsx3.init()的时候就报错了
但是用3.7.3却没有任何问题  会不会 ...

应该是吧,不过用 PyWin32 可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-11 16:13:25 | 显示全部楼层
请问楼主这个问题解决了吗我用pyttsx3也是和你一样的报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-11 16:16:15 | 显示全部楼层
4280099 发表于 2021-4-11 16:13
请问楼主这个问题解决了吗我用pyttsx3也是和你一样的报错

这是输入的代码
import pyttsx3
engine=pyttsx3.init()
engine.say('Sally sells seashells by the seashore.')
engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表