Python pocketsphinx 请求错误:缺少PocketSphinx模块:确保PocketSphinx设置正确。

25

我正在尝试制作一个Python应用程序,使用PyAudio、SpeechRecognition和PocketSphinx可以记录音频并将其转换为英文文本。我在Mac OS X El Capitan,版本10.11.2上运行。

这样的教程和其他教程一样,我下载了PyAudio 0.2.9版本,以及SpeechRecognition和PocketSphinx,然后安装到Conda环境中。我按照这个网站的说明,在我的OS X上使用brew install swig git python,希望它能够帮助。

这是我的代码:

# Load packages
import speech_recognition as sr
import sphinxbase
import pocketsphinx

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

# write audio to a WAV file
with open("microphone-results.wav", "wb") as f:
    f.write(audio.get_wav_data())

目前为止一切运作良好。我可以顺利地录制和播放我的WAV文件。但问题出在这里...

r = sr.Recognizer()
with sr.AudioFile('microphone-results.wav') as source:
    audio = r.record(source) # read the entire audio file

try:
    print("You said " +  r.recognize_sphinx(audio))
except LookupError:         # speech is unintelligible
    print("Could not understand audio")
当我运行这段代码时,我获得以下错误信息:RequestError: missing PocketSphinx module: ensure that PocketSphinx is set up correctly. 我已经在全局和虚拟conda环境中都安装了PocketSphinx和Sphinxbase,但是问题仍然存在。在Google / SO帖子上关于此错误的文档接近于零,所以我不确定出了什么问题。非常感谢您能提供任何帮助/建议。
以下是我在conda虚拟环境中安装的软件包及其版本列表:
# packages in environment at /Users/nathancheever/anaconda/envs/audio_2:
#
appnope                   0.1.0                    py27_0
backports-abc             0.4                       <pip>
backports.ssl-match-hostname 3.4.0.2                   <pip>
backports_abc             0.4                      py27_0
decorator                 4.0.9                    py27_0
freetype                  2.5.5                         0
ipykernel                 4.3.1                    py27_0
ipython                   4.1.2                    py27_2
ipython-genutils          0.1.0                     <pip>
ipython_genutils          0.1.0                    py27_0
ipywidgets                4.1.1                    py27_0
jinja2                    2.8                      py27_0
jsonschema                2.4.0                    py27_0
jupyter                   1.0.0                    py27_2
jupyter-client            4.2.2                     <pip>
jupyter-console           4.1.1                     <pip>
jupyter-core              4.1.0                     <pip>
jupyter_client            4.2.2                    py27_0
jupyter_console           4.1.1                    py27_0
jupyter_core              4.1.0                    py27_0
libpng                    1.6.17                        0
markupsafe                0.23                     py27_0
mistune                   0.7.2                    py27_1
nbconvert                 4.1.0                    py27_0
nbformat                  4.0.1                    py27_0
notebook                  4.1.0                    py27_2
openssl                   1.0.2g                        0
path.py                   8.1.2                    py27_1
pexpect                   4.0.1                    py27_0
pickleshare               0.5                      py27_0
pip                       8.1.1                    py27_1
ptyprocess                0.5                      py27_0
pyaudio                   0.2.9                     <pip>
pygments                  2.1.3                    py27_0
pyqt                      4.11.4                   py27_1
python                    2.7.11                        0
pyzmq                     15.2.0                   py27_0
qt                        4.8.7                         1
qtconsole                 4.2.1                    py27_0
readline                  6.2                           2
setuptools                20.6.7                   py27_0
simplegeneric             0.8.1                    py27_0
singledispatch            3.4.0.3                  py27_0
sip                       4.16.9                   py27_0
six                       1.10.0                   py27_0
speechrecognition         3.4.2                     <pip>
sphinxbase                0.8                       <pip>
sqlite                    3.9.2                         0
ssl_match_hostname        3.4.0.2                  py27_0
terminado                 0.5                      py27_1
tk                        8.5.18                        0
tornado                   4.3                      py27_0
traitlets                 4.2.1                    py27_0
wheel                     0.29.0                   py27_0
zlib                      1.2.8                         0

信息已经说明了问题,您需要删除旧的sphinxbase并安装pocketsphinx包。 - Nikolay Shmyrev
6个回答

18

编译Pocketsphinx需要以下库:

sudo apt-get install -qq python python-dev python-pip build-essential swig libpulse-dev

之后安装pocketsphinx很简单:

sudo pip install pocketsphinx


11

正如@Nikolay Shmyrev所提到的那样,您可以简单地

pip install pocketsphinx

解决问题


5

我也想做同样的事情,但遇到了困难

# Make sure we have up-to-date versions of pip, setuptools and wheel:
$ pip install --upgrade pip setuptools wheel

$ pip install --upgrade pocketsphinx

来自pocketsphinx文档https://pypi.python.org/pypi/pocketsphinx

错误信息为

错误: 命令 'gcc' 执行失败,退出状态为 1

我正在使用Mac系统,需要安装Xcode命令行工具。在命令行中执行以下命令:

xcode-select --install

然后pip安装成功了。
r.recognize_sphinx(audio)

工作


3

同样的问题

sudo apt-get install libasound2-dev

我已经解决了它。

Python 3.6 Ubuntu 18.04.4 LTS


0

最近我遇到了这个问题。为了对error: command 'swig' failed: No such file or directory和OP原始的RequestError: missing PocketSphinx module: ensure that PocketSphinx is set up correctly.进行更新澄清,我做了以下修复:

我通过运行以下命令来解决这个问题:

# First I wanted to make sure pip/setuptools/wheel was up to date
$ pip install --upgrade pip setuptools wheel

# then installing swig
$ sudo apt-get install swig

# and finally to ensure most recent release of PocketSphinx
$ pip install --upgrade pocketsphinx

-1

我也遇到了类似的问题。问题在于没有安装pocketsphinx。但是当我尝试显式安装它时,它会输出以下内容:

Installing collected packages: pocketsphinx
    Running setup.py install for pocketsphinx ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-54lpsfk9/pocketsphinx_4a1855908d0d459d9da4cb55a9fa821d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-54lpsfk9/pocketsphinx_4a1855908d0d459d9da4cb55a9fa821d/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-hun5knqg/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/pocketsphinx                                                              
         cwd: /tmp/pip-install-54lpsfk9/pocketsphinx_4a1855908d0d459d9da4cb55a9fa821d/                                              
    Complete output (6 lines):                                                                                                      
    running install                                                                                                                 
    running build_ext                                                                                                               
    building 'sphinxbase._sphinxbase' extension                                                                                     
    swigging deps/sphinxbase/swig/sphinxbase.i to deps/sphinxbase/swig/sphinxbase_wrap.c                                            
    swig -python -modern -threads -Ideps/sphinxbase/include -Ideps/sphinxbase/include/sphinxbase -Ideps/sphinxbase/include/android -Ideps/sphinxbase/swig -outdir sphinxbase -o deps/sphinxbase/swig/sphinxbase_wrap.c deps/sphinxbase/swig/sphinxbase.i                
    error: command 'swig' failed: No such file or directory                                                                         
    ----------------------------------------                                                                                        
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-54lpsfk9/pocketsphinx_4a1855908d0d459d9da4cb55a9fa821d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-54lpsfk9/pocketsphinx_4a1855908d0d459d9da4cb55a9fa821d/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-hun5knqg/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/pocketsphinx Check the logs for full command output. 

通过查找错误,我发现了这个问题:error: command 'swig' failed: No such file or directory。追溯一下发现它用于构建某些软件包扩展;我可以推断出它是一些sphinxbase扩展。基本上,安装swig解决了我的问题。
Python版本:3.9 pocketsphinx版本:0.1.15 speechrecognition版本:3.8.1 setuptools版本:57.0.0 swig版本:4.0.2-2 操作系统:Manjaro Linux
如果这些有关系的话。

你得到的错误信息并不像你解决问题的方式那样重要。请提供帮助你解决问题的安装命令。你只是说“安装了swig”,请更详细地说明。此外,尽管特定版本号可能不太重要,但它们并不真正重要;你可以将它们删除。请参见[答案]获取更多信息。 - Sylvester Kruin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接