FLAC转换实用程序不可用 - 请考虑安装FLAC命令行应用程序

时间:2018-04-09 16:52:36

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

我在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已安装但仍未被识别。 我很乐意为此提供一些帮助。

2 个答案:

答案 0 :(得分:2)

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未被接收。

答案 1 :(得分:0)

如果你有python发现flac的问题并且你已经安装了自制的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 如果你这样做它可能工作正常。