2016-11-16 75 views
0

我已经研究过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,但是当它没有工作,我认为这可能是因为我的根安装它。所以我卸载它并使用pip install --user SpeechRecognition而不是无用。 我也尝试添加PYTHONPATH,但我不知道我想要做什么。

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

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

+0

你如何执行脚本? – syntonym

+0

尝试在终端中输入>>> >>> speech_recognition as sr'。 –

+0

@syntonym我在python3 IDLE中编写代码并执行它。 –

回答

2

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

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

  • 配置IDLE使用你的终端
  • 使用的版本使用IDLE使用(并重新安装所有模块)的版本
  • 不使用IDLE运行脚本,改为使用python myscript.py

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

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

IDLE不幸的是它不是一个伟大的编辑器,我建议像记事本++,pycharm,vim或emacs的东西。

0

它看起来像包安装在其他版本的Python。

试着键入sudo python -m pip install SpeechRecognition

它为我工作。如果不这样做的最好的事情是:

  1. 转到repo
  2. 克隆它
  3. 安装它

尝试移动之前的第一个方法。

+0

我也试过这个,但它也不起作用。我认为问题不在于SpeechRecognition是否正确安装,因为它在终端中工作。 –

相关问题