You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简单实现麦克风与Python的连接?

Python连接本地麦克风操作指南

我们以通用度最高的PyAudio库为例完成操作,也可根据需求替换为sounddevice等其他音频库。

第一步:安装依赖库

根据你的操作系统选择对应的安装方式:

  • Windows:直接执行pip install pyaudio,若提示安装失败,可搜索对应Python版本的PyAudio预编译包本地安装
  • macOS:先执行brew install portaudio安装依赖组件,再执行pip install pyaudio
  • Linux(Debian/Ubuntu系列):先执行sudo apt install portaudio19-dev安装依赖组件,再执行pip install pyaudio

第二步:查询麦克风设备ID

运行以下代码获取所有可用音频输入设备的ID,记下来你要使用的麦克风对应的ID:

import pyaudio

p = pyaudio.PyAudio()
# 遍历所有音频设备,筛选出支持输入的设备
for i in range(p.get_device_count()):
    dev_info = p.get_device_info_by_index(i)
    if dev_info.get('maxInputChannels') > 0:
        print(f"输入设备ID {i}: {dev_info.get('name')}")
p.terminate()

第三步:连接麦克风读取音频流

运行以下代码即可实现实时读取麦克风输入,注意将代码中的INPUT_DEVICE_ID替换为第二步查询到的对应ID:

import pyaudio

# 基础音频参数配置,可根据需求调整
FORMAT = pyaudio.paInt16  # 采样位深
CHANNELS = 1  # 单声道输入,双声道可改为2
RATE = 44100  # 采样率
CHUNK = 1024  # 每次读取的音频帧数量
INPUT_DEVICE_ID = 0  # 替换为你的麦克风设备ID

p = pyaudio.PyAudio()
# 打开麦克风输入流
stream = p.open(
    format=FORMAT,
    channels=CHANNELS,
    rate=RATE,
    input=True,
    input_device_index=INPUT_DEVICE_ID,
    frames_per_buffer=CHUNK
)

print("麦克风已连接,正在读取输入,按Ctrl+C停止")
try:
    while True:
        # 读取一帧音频数据,后续可直接对audio_data进行保存、识别、转码等处理
        audio_data = stream.read(CHUNK)
except KeyboardInterrupt:
    print("已停止读取麦克风")
finally:
    # 关闭流释放资源
    stream.stop_stream()
    stream.close()
    p.terminate()

常见问题排查

  • 运行时报输入设备访问错误:先检查系统隐私设置中是否给Python进程开放了麦克风权限,权限未开启会直接导致访问失败
  • 读取的音频有杂音:可调整CHUNK大小或者采样率参数适配你的设备
  • 不想用PyAudio:可以选择sounddevice库,安装更简便,直接执行pip install sounddevice soundfile即可使用,调用逻辑更简洁

内容的提问来源于stack exchange,提问作者JerryWill321

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:06:04