[英]Sound issue using pyttsx3 and python in virtual enviroment
所以基本上我在虛擬環境中構建一個 python 虛擬助手軟件,我想使用 pyttsx3 將文本轉換為語音。 第一個問題是,如果我運行 pyttsx3.init() 我得到一個錯誤
o = self.data[key]()
KeyError: None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ".\__init__.py", line 3, in <module>
init_speech()
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\index.py", line 31, in init_speech
engine = pyttsx3.init()
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\venv\lib\site-packages\pyttsx3\__init__.py", line 46, in init
eng = Engine(driverName, debug)
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\venv\lib\site-packages\pyttsx3\engine.py", line 52, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\venv\lib\site-packages\pyttsx3\driver.py", line 75, in __init__
self._module = importlib.import_module(name)
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\venv\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\venv\lib\site-packages\pyttsx3\drivers\sapi5.py", line 3, in <module>
import win32com.client
File "C:\Users\DJETHA\eclipse-workspace\PythonFull\PythonProjects\Betax\venv\lib\site-packages\win32com\__init__.py", line 5, in <module>
import win32api, sys, os
經過研究,我發現使用 pyttsx3.init("dummy") 不會產生任何錯誤。 下一個問題是當我跑步時
engine =pyttsx3.init("dummy")
engine.say("hey")
engine.runAndWait()
我沒有聽到任何聲音或看到任何錯誤
我應該注意,如果我在虛擬環境之外的 pyttsx3.init 中使用沒有虛擬對象的上述代碼,則一切正常。
嘗試這個:
import pyttsx3
from pyttsx3.drivers import sapi5
engine = pyttsx3.init('sapi5')
engine.say('hey')
engine.runAndWait()
1 個月前我遇到了同樣的錯誤。 我犯的錯誤是我最初安裝了 python X36 版本。 這就是原因。 檢查 python 架構使用下面的代碼
src\4-4-project>python
>>import platform
>>platform.architecture()
如果 output 顯示 32 位而不是 64 位,則卸載 python X36 位並重新安裝 python X64。 不過不用擔心預裝的軟件包。 您只需通過以下代碼保存所有包
pip freeze > packages.txt
#or
python -m pip freeze> packages.txt
您可以通過以下代碼安裝 python x64bit 版本后重新安裝所有軟件包
python -m pip install -r packages.txt
在設置 python x64bit 版本並設置路徑后,以下代碼就足夠了。 不要忘記再次安裝軟件包。
import pyttsx3
engine = pyttsx3.init()
engine.say("hello world")
engine.runAndWait()
希望它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.