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

e0bqpujr  于 2022-12-20  发布在  Python
关注(0)|答案(3)|浏览(329)

我正在用python3.6.3编写一个简单的语音识别程序,下面是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)

当我运行它时,我得到这个错误:
错误:FLAC转换实用程序不可用-请考虑通过运行'apt-get install flac或操作系统的等效命令来安装FLAC命令行应用程序
令人惊讶的是,我已经使用Brew安装了Flac。我使用终端检查了Flac安装,如下所示:$哪个flac /usr/本地/bin/flac
这表明flac已经安装,但仍然没有被识别。我将很高兴有一些帮助这一点。

unftdfkk

unftdfkk1#

speech_recognition模块中的逻辑首先在$PATH中查找flac可执行文件。在命令行上仔细检查flac是否可用:

$ which flac

如果你已经安装了flac和homebrew,那么这应该会告诉你类似/usr/local/bin/flac的信息。如果是这样,确保这个$PATH环境变量暴露给你正在运行的Python程序。一个调试技巧可以帮助你,在你的程序中添加以下代码行:

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

这会给予你一个更明确的线索,为什么flac没有被选中。

yv5phkfx

yv5phkfx2#

如果你有一个问题与python寻找flac和你已经有flac安装与homebrew,那么这意味着flac可能是位于这个目录/usr/local/bin,而python正在寻找它在这个目录usr/bin或usr/sbin.首先检查如果flac是安装通过运行brew list flac.如果它是安装,你将必须运行这个命令在终端:
sudo ln -s /usr/local/bin/flac /usr/bin.或者sudo ln -s /usr/local/bin/flac /usr/sbin如果你这样做的话它可能会工作得很好。

wtlkbnrh

wtlkbnrh3#

我在Windows上遇到了同样的问题。

print("shutil_which gives location: %s" % (sr.shutil_which('flac')))

正在返回None
我必须修改语音识别库中的__init__.py

flac_converter = shutil_which("flac")  # check for installed version first

flac_converter = shutil_which("flac.exe")  # check for installed version first

才能成功。

相关问题