【问题标题】:FLAC conversion utility not available - consider installing the FLAC command line applicationFLAC 转换实用程序不可用 - 考虑安装 FLAC 命令行应用程序
【发布时间】:2018-04-11 21:23:47
【问题描述】:

我正在python3.6.3中制作一个简单的speech_recognition程序 这是python代码:

import speech_recognition as sr
import os

r = sr.Recognizer()
r.energy_threshold = 10000
with sr.Microphone() as source:
    print('Say something')
    audio = r.listen(source)
    print("Done")


try:
    text = r.recognize_google(audio)
    print(text)
    os.system("say '"+'I think you said,'+text+'!'+"'")

except Exception as e:
    print(e)

当我运行它时,我得到了这个错误:

OSError:FLAC 转换实用程序不可用 - 考虑通过运行 `apt-get install flac 或您的操作系统的等效程序来安装 FLAC 命令行应用程序

令人惊讶的是我已经使用 brew 安装了 flac。 我使用这样的终端检查了 flac 安装: $哪个flac /usr/local/bin/flac

这表明 flac 已安装但仍未被识别。 我很高兴能在这方面得到一些帮助。

【问题讨论】:

    标签: python python-3.x speech-recognition


    【解决方案1】:

    speech_recognition 模块中的逻辑是looking first for a flac executable in your $PATH。在命令行上仔细检查flac 是否可用:

    $ which flac
    

    这应该告诉您类似 /usr/local/bin/flac 的信息,如果您按照您的说法安装了带有自制软件的 flac。如果是这样,请确保此 $PATH 环境变量暴露给您正在运行的 Python 程序。一个帮助调试的技巧,在你的程序中加入这些行:

    path = os.getenv('PATH')
    print("Path is: %s" % (path,))
    print("shutil_which gives location: %s" % (sr.shutil_which('flac'))
    

    这将为您提供关于为什么 flac 没有被接收的更明确的线索。

    【讨论】:

    • 谢谢乔希,我得到了这个结果路径是:/usr/bin:/bin:/usr/sbin:/sbin shutil_which 给出位置:无。你能告诉我如何解决这个问题。我是 python 新手,我没有解决方案
    • Python 在你运行时继承你的PATH。如果你在 PATH 不完整的地方启动它,你可以运行 PATH=/usr/local/bin:$PATH python3 /path/to/your/script.py 或在 Python 中操作 os.environ
    • 查看@tripleee 的评论——如果你通过自制软件安装了flac,它应该在/usr/local/bin/ 目录下,所以只要确保你使用PATH 环境变量运行你的程序包括这个目录,正如@tripleee 的命令所示。仔细检查您是否确实通过自制软件安装了flacbrew list flac
    • 谢谢大家。现在我按照 Tripleee 所说的做了,并且成功了。但是有没有办法让我进入 /usr/local/bin 目录或者让 python 在它的当前目录中查找它
    【解决方案2】:

    如果您在 python 查找 flac 时遇到问题,并且您已经使用 homebrew 安装了 flac,那么这意味着 flac 可能位于此目录 /usr/local/bin 中,而 python 正在此目录中查找它 usr/bin 或 usr/sbin。 首先通过运行 brew list flac 检查是否安装了 flac。 如果已安装,则必须在终端中运行此命令:

    sudo ln -s /usr/local/bin/flac /usr/bin.或者 sudo ln -s /usr/local/bin/flac /usr/sbin 如果你这样做,它可能会正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多