【问题标题】:RuntimeError: Binary 'sox' could not be foundRuntimeError:找不到二进制“sox”
【发布时间】:2019-04-29 07:54:39
【问题描述】:

我正在玩谷歌语音库如下:

from google_speech import Speech

# say "Hello World"
text = "Hello World"
lang = "en"
speech = Speech(text, lang)
speech.play()

收到此错误:

RuntimeError                          

    Traceback (most recent call last)
<ipython-input-2-4daa3294f636> in <module>()
----> 1 from google_speech import Speech
      2 
      3 # say "Hello World"
      4 text = "Hello World"
      5 lang = "en"

D:\soft\Ins\anac\lib\site-packages\google_speech\__init__.py in <module>()
    321 
    322 # check deps
--> 323 bin_dep.check_bin_dependency(("sox",))
    324 
    325 

D:\soft\Ins\anac\lib\site-packages\google_speech\bin_dep.py in check_bin_dependency(bins)
      5   for bin in bins:
      6     if shutil.which(bin) is None:
----> 7       raise RuntimeError("Binary '%s' could not be found" % (bin))

RuntimeError: Binary 'sox' could not be found

我在 Windows 上工作,我做了所有说明:

如果您还没有,请为 Python 3 安装 pip 安装谷歌语音:pip3 install google_speech 安装 SoX,支持 MP3。在 Ubuntu 和其他 Debian 衍生产品上:sudo apt-get install sox libsox-fmt-mp3。 Windows 用户可以在 SoX 网站上下载二进制文件,安装后还需要将 libmad DLL 复制到安装 SoX 的目录中,并将该目录添加到 PATH 环境变量中。

【问题讨论】:

  • 重置解决了问题!

标签: python windows speech-recognition sox


【解决方案1】:

您可以在其 sourceforge 下载页面上找到 SoX 的二进制文件和安装程序: Get it from here

将 SoX 添加到您的路径

首先,找到安装 SoX 的目录。默认情况下,这可能是 C:\Program Files (x86)\sox-14-4-1 或 C:\Program Files\sox-14-4-1

需要将此目录添加到您的 PATH 环境变量中。按 Windows 键并键入 cmd.exe(在 Vista 或更高版本上)打开命令提示符,或者从开始菜单中选择“运行”并键入 cmd(在早期版本上)。

在命令提示符中键入路径,它应该返回您的 PATH 变量(PATH= 后跟目录列表)。要将 SoX 临时添加到 PATH 变量中,请键入以下命令(如有必要,将 C:\Program Files (x86)\sox-14-4-1 替换为您的 SoX 目录):

set PATH=%PATH%;C:\Program Files (x86)\sox-14-4-1

再次键入路径,它应该返回与以前相同的目录列表,但在最后添加了字符串 ;C:\Program Files (x86)\sox-14-4-1。如果它返回任何其他内容(例如,如果它只返回 SoX 目录),请不要继续下一步(关闭命令提示符窗口并重新开始)。如果它返回相同的列表加上 SoX,您可以使用 setx 命令而不是 set 来永久添加 SoX:

setx PATH %PATH%;C:\Program Files (x86)\sox-14-4-1

在 Windows XP 上,您需要先安装 Windows XP SP2 支持工具,然后才能执行此操作。 检查成功

要检查这是否有效,请打开一个新的命令提示符并键入 sox。如果成功,它将返回有关使用 SoX 的信息,否则应返回“sox is not Recognized”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 2013-10-05
    • 2013-03-24
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    相关资源
    最近更新 更多