我在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已安装但仍未被识别。 我很乐意为此提供一些帮助。
答案 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 如果你这样做它可能工作正常。