linux 下python代码获取音频文件
1. 安装pyaudio以及其他相关库
sudo apt-get install libasound2-dev python3-pyaudio libportaudio2
可能不全,需要再搜一搜确认一下
2. 找不到ALSA库
报错找不到alsa-lib的库:
ALSA lib conf.c:4004:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
原因是在conda环境下,会从当前python环境的依赖中查找alsa的库,但是实际上
在/usr/lib/下搜索libasound*
(py3810) ➜ lib find . -name "libasound*"./x86_64-linux-gnu/alsa-lib/libasound_module_pcm_jack.so
./x86_64-linux-gnu/alsa-lib/libasound_module_ctl_oss.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_speexrate_best.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_samplerate_best.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_speexrate.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_speexrate_medium.so
./x86_64-linux-gnu/alsa-lib/libasound_module_ctl_pulse.so
./x86_64-linux-gnu/alsa-lib/libasound_module_pcm_usb_stream.so
./x86_64-linux-gnu/alsa-lib/libasound_module_ctl_arcam_av.so
./x86_64-linux-gnu/alsa-lib/libasound_module_pcm_vdownmix.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_samplerate_medium.so
./x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so
./x86_64-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so
./x86_64-linux-gnu/alsa-lib/libasound_module_pcm_oss.so
./x86_64-linux-gnu/alsa-lib/libasound_module_pcm_upmix.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_samplerate_order.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_samplerate_linear.so
./x86_64-linux-gnu/alsa-lib/libasound_module_rate_samplerate.so
./x86_64-linux-gnu/libasound.so
./x86_64-linux-gnu/libasound.so.2
./x86_64-linux-gnu/libasound.so.2.0.0
一种解决方案是建立软链接
ln -s /usr/lib/x86_64-linux-gnu/alsa-lib /home/douhua2/anaconda3/envs/py3810/lib/alsa-lib