当前位置: 首页 > article >正文

修复ubuntu下找不到音频设备的问题

出现问题的状态:

  • ALSA 已正确识别到 ZOOM H2n 设备(card 1)
  • sounddevice 库(依赖 PortAudio)未能正确枚举设备

修复方法:

1. 强制 sounddevice 使用 ALSA 后端
默认情况下,sounddevice 可能尝试通过 PulseAudio 访问设备,导致冲突。需强制使用 ALSA:
方法一:通过环境变量设置
在运行 Python 脚本前设置环境变量:

export SDL_AUDIODRIVER=alsa
export AUDIODEV=hw:1,0  # 对应你的 H2n 设备
python your_script.py

方法二:在代码中指定设备名称
修改音频流初始化代码,直接使用 ALSA 设备名称:

# 将 DEVICE_INDEX 替换为 ALSA 设备名称(如 'hw:1,0')
stream = sd.InputStream(device='hw:1,0', samplerate=RATE, channels=1, blocksize=CHUNK)

tips:但是我的sounddevice显示设备始终为空,指定也没用
2.修复 PortAudio/ALSA 兼容性(成功修复)
sounddevice 依赖 PortAudio 的 ALSA 支持,需确保系统已正确配置:
步骤 1:安装 PortAudio 的 ALSA 开发库

sudo apt install libasound2-dev portaudio19-dev

步骤 2:重新编译 sounddevice 的 PortAudio 后端(最终修复步骤)
如果问题持续,可能需要手动编译 PortAudio:

# 下载 PortAudio 源码
wget http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz
tar -xvf pa_stable_v190700_20210406.tgz
cd portaudio

# 配置并编译(强制启用 ALSA)
./configure --with-alsa
make
sudo make install

# 重新安装 sounddevice
pip uninstall -y sounddevice
pip install sounddevice --no-binary :all:

总结

import sounddevice as sd
print(sd.query_devices())  # 打印所有设备及其索引

用上面的代码输出始终为空,但是系统中又可以通过命令行录制音频,就怀疑是sounddevice的依赖有问题,重新编译安装依赖库,最终问题得以解决


http://www.kler.cn/a/580048.html

相关文章:

  • docker修改daemon.json文件后无法启动
  • Zemax 中的 CAD 文件性能比较
  • 隧道定向号角喇叭为隧道安全保驾护航
  • 腾讯元宝:AI 时代的快速论文阅读助手
  • Windows 图形显示驱动开发-WDDM 3.2-本机 GPU 围栏对象(五)
  • 深度学习与大模型基础-向量
  • LeetCode 解题思路 14(Hot 100)
  • 探讨消息队列系统:AWS SQS vs. Apache Kafka
  • 华为hcia——Datacom实验指南——三层交换和ARP的工作原理
  • 【Academy】Web 缓存中毒 ------ Web cache poisoning
  • 关于ModbusTCP/RTU协议转Ethernet/IP(CIP)协议的方案
  • 解锁 AI 量化新境界:Qbot 携手 iTick
  • 探索Java中的多态
  • HCIP第二讲作业
  • 目标检测YOLO实战应用案例100讲-基于毫米波雷达的多目标检测 (续)
  • ART-PI2 上手记录(一)
  • 【每日学点HarmonyOS Next知识】状态栏控制、片段按钮点击回调、绘制组件、取消按钮与输入框对齐、父调子组件方法
  • FPGA|Verilog-SPI驱动
  • 群晖DS223 Docker搭建为知笔记
  • LLM中的transformer结构学习(二 完结 Multi-Head Attention、Encoder、Decoder)