簡體   English   中英

如何解決“沒有可用的 package espeak”。 嘗試在 AWS ec2 linux 上安裝 speak 時出錯?

[英]How to solve “No package espeak available.” error when trying to install speak on AWS ec2 linux?

相同的代碼在我的本地機器(Windows)上運行,但是在安裝 Pyttsx3 后在 AWS Linux 上運行相同的代碼時,它不起作用。

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

這是示例代碼。 我是 AWS 和 LINUX 的新手。

這是錯誤:

Traceback (most recent call last):
  File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/__init__.py", line 20, in init
    eng = _activeEngines[driverName]
  File "/usr/lib64/python3.6/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 "<stdin>", line 1, in <module>
  File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/__init__.py", line 22, in init
    eng = Engine(driverName, debug)
  File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/engine.py", line 30, in __init__
    self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
  File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/driver.py", line 50, in __init__
    self._module = importlib.import_module(name)
  File "/usr/lib64/python3.6/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 "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/drivers/espeak.py", line 9, in <module>
    from . import _espeak, toUtf8, fromUtf8
  File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/drivers/_espeak.py", line 18, in <module>
    dll = cdll.LoadLibrary('libespeak.so.1')
  File "/usr/lib64/python3.6/ctypes/__init__.py", line 421, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib64/python3.6/ctypes/__init__.py", line 343, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libespeak.so.1: cannot open shared object file: No such file or directory
    

編輯:這個OSError:libespeak.so.1:錯誤是因為機器上沒有安裝espeak引擎(正如其他Stackoverflow帖子所建議的那樣),有沒有比sudo yum install espeak安裝espeak的方法?

我已經在主機操作系統Amazon Linux 2的亞馬遜ec2實例上測試了以下命令,並且還測試了成功運行的示例 python 代碼。

如果您的主機系統是Amazon Linux 2 ,那么您可以使用以下命令安裝espeak

   __|  __|_  )
   _|  (     /   Amazon Linux 2 AMI
  ___|\___|___|

[ec2-user@aws ~]$ rpm -E %{rhel}
7                                            --> as you can see here its based on RHEL 7

[ec2-user@aws ~]$ yum list espeak
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Available Packages
espeak.i686                                                            1.47.11-4.amzn2.0.2                                                          amzn2-core
espeak.x86_64                                                          1.47.11-4.amzn2.0.2                                                          amzn2-core

在這里,您可以看到espeak package 在 Amazon Linux 上可用。 因此,您需要使用以下命令安裝它:

ec2-user@aws ~]$ sudo yum -y install espeak
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
--> Running transaction check
---> Package espeak.x86_64 0:1.47.11-4.amzn2.0.2 will be installed
--> Processing Dependency: libpulse.so.0(PULSE_0)(64bit) for package: espeak-1.47.11-4.amzn2.0.2.x86_64
--> Processing Dependency: libpulse.so.0()(64bit) for package: espeak-1.47.11-4.amzn2.0.2.x86_64
--> Running transaction check
---> Package pulseaudio-libs.x86_64 0:10.0-3.amzn2.0.3 will be installed
--> Processing Dependency: libsndfile.so.1(libsndfile.so.1.0)(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libxcb.so.1()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libsndfile.so.1()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libasyncns.so.0()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libXtst.so.6()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libX11-xcb.so.1()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
...

或者

yum localinstall http://mirror.centos.org/centos/7/os/x86_64/Packages/espeak-1.47.11-4.el7.x86_64.rpm

它將安裝 package espeak

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM