即使安装了模块也无法运行

时间:2016-11-16 12:24:03

标签: python linux pip speech-recognition cmusphinx

我已经研究过Python的语音识别,到目前为止它的工作非常好。 它提供了广泛的软件,但我将使用CMUSphinx,因为它可以脱机工作。 通过自己的程序CMUSphinx启动时,cmupshinx_continous已安装并正常运行。但是在尝试编写自己的Python脚本时,它找不到模块speech_recognition。这很奇怪,因为当我跑:

python -m speech_recognition

它完美无缺。但是当我开始我的剧本时:

import speech_recognition as sr

    # obtain audio from the microphone
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Say something!")
        audio = r.listen(source)

    # recognize speech using Sphinx
    try:
        print("Sphinx thinks you said " + r.recognize_sphinx(audio))
    except sr.UnknownValueError:
        print("Sphinx could not understand audio")
    except sr.RequestError as e:
        print("Sphinx error; {0}".format(e))

我收到错误消息,指出无法找到模块:speech_recognition。 使用时

pip install SpeechRecognition

我第一次使用sudo pip install但是当它没有工作时我认为可能是因为我在root中安装了它。所以我卸载它并使用pip install --user SpeechRecognition代替无济于事。 我也尝试添加PYTHONPATH的内容,但我不知道我试图做什么。

所以现在我非常困难。请记住,我对Linux和Python都非常陌生。

关于我可以尝试的任何想法?

2 个答案:

答案 0 :(得分:3)

几乎总是当你可以从一个点而不是另一个点(想到脚本/程序,终端/编辑器......)访问模块时,你有多个python版本,只在其中一个中安装了模块。

在你的情况下,IDLE使用与终端上不同的python版本。你有多种可能性:

  • 将IDLE配置为使用您在终端上使用的版本
  • 使用IDLE使用的版本(并重新安装所有模块)
  • 不要使用IDLE来运行脚本,而是使用python myscript.py

你提到IDLE是python3,通常在终端python中是python2。您可以尝试python --version来显示您使用的python版本。 python3可能是你在IDLE中使用的python,pip可能是pip3

因为库支持python3,我建议使用python3而不是python2。

遗憾的是,IDLE不是一个很棒的编辑器,我推荐其他东西,比如notepad ++,pycharm,vim或emacs。

答案 1 :(得分:0)

看起来这个包安装在python的其他版本中。

尝试输入sudo python -m pip install SpeechRecognition

它对我有用。如果不是最好的事情将是:

  1. 转到repo
  2. 克隆
  3. 安装
  4. 在继续之前尝试第一种方法。