英文:
How do I make ALSA library available to PyAudio?
问题
我正在尝试构建一个使用SpeechRecognition包录制用户麦克风语音的Python应用程序。
我在联想X1 Carbon上使用Ubuntu 23.04。我在一个conda环境中使用Python 3.11进行开发(尽管我在3.9中进行了测试,问题相同)。
我已将libasound2-dev和pyaudio安装到我的系统中:
$ sudo apt install libasound2-dev
$ sudo apt install python3-pyaudio
并在我的conda环境中安装了pyaudio和speech_recognition:
$ conda activate my_env
$ conda install pyaudio
$ conda install speech_recognition
当我尝试从shell执行SpeechRecognition包时,我收到以下标准错误信息:
$ python3 -m speech_recognition
ALSA lib conf.c:4005:(snd_config_hooks_call) 无法打开共享库libasound_module_conf_pulse.so(/home/me/miniconda3/envs/py3.9/lib/alsa-lib/libasound_module_conf_pulse.so: 没有此文件或目录)
ALSA lib control.c:1529:(snd_ctl_open_noupdate) 无效的CTL hw:0
我检查并确认/home/me/miniconda3/envs/py3.9/lib/alsa-lib/
不存在。
然而,列出我的conda环境包时显示如下:
$ conda list alsa
# Name Version Build Channel
alsa-lib 1.2.9 hd590300_0 conda-forge
pyalsaaudio 0.10.0 pypi_0 pypi
问题是pyaudio不知道在哪里找到alsa-lib吗?
英文:
I am trying to build a Python application that uses the SpeechRecognition package to record user's speech with a microphone.
I am using Ubuntu 23.04 on a Lenovo X1 Carbon. I am working in a conda environment with python 3.11 (although I've tested in 3.9 and have the same problem).
I have installed libasound2-dev and pyaudio to my system:
$ sudo apt install libasound2-dev
$ sudo apt install python3-pyaudio
And installed pyaudio and speech_recognition in my conda env:
$ conda activate my_env
$ conda install pyaudio
$ conda install speech_recognition
When I try to execute the SpeechRecognition package from the shell I get the following stderr:
$ python3 -m speech_recognition
ALSA lib conf.c:4005:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/home/me/miniconda3/envs/py3.9/lib/alsa-lib/libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib control.c:1529:(snd_ctl_open_noupdate) Invalid CTL hw:0
I checked and confirmed that /home/me/miniconda3/envs/py3.9/lib/alsa-lib/ does NOT exist.
However, listing my conda env packages shows the following:
$ conda list alsa
# Name Version Build Channel
alsa-lib 1.2.9 hd590300_0 conda-forge
pyalsaaudio 0.10.0 pypi_0 pypi
Is the issue that pyaudio doesn't know where to find alsa-lib?
答案1
得分: 0
不确定仅安装libasound-dev是否足够。还需要portaudio。
尝试运行以下命令:apt install libasound2-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg,然后pip install PyAudio。如果您已经尝试过这样做,请忽略。
英文:
not sure if libasound-dev alone is sufficient. portaudio is also required.
Try this, apt install libasound2-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg and then pip install PyAudio. If you have tried this, then kindly ignore.
答案2
得分: 0
以下是翻译好的部分:
Posting the solution I eventually found in case it helps others. It appears to be an issue with the SpeechRecognition conda package version or at least managing the package with conda. I tried installing with pip and the "cannot open shared library" error messages stopped occurring and I was able to record with my microphone.
英文:
Posting the solution I eventually found in case it helps others. It appears to be an issue with the SpeechRecognition conda package version or at least managing the package with conda. I tried installing with pip and the "cannot open shared library" error messages stopped occurring and I was able to record with my microphone.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论