使用Python SoundDevice录制音频:如何指定USB麦克风及多设备选择?
关于sounddevice库录制音频的设备指定问题
你贴的这段代码用的是sounddevice(简称sd)库,它默认会使用系统设置的默认输入音频设备——如果你的USB麦克风已经被设为系统默认输入设备,就会录制它的声音;如果没设,就会用系统当前默认的其他麦克风(比如笔记本内置麦)。
如果要手动指定录制设备,按以下步骤操作:
查看所有可用音频设备
先运行这段代码,列出系统里所有的音频设备,找到你的USB麦克风对应的ID或名称:import sounddevice as sd print(sd.query_devices())输出里会显示每个设备的ID、名称、支持的输入/输出通道数,比如类似这样的条目:
2: USB Microphone, Core Audio (2 in, 0 out)在录制时指定设备
在sd.rec()函数里添加device参数,传入设备ID或者准确名称即可:- 用设备ID的示例:
duration = 10 # seconds fs = 44100 # 采样率,根据你的麦克风调整 myrecording = sd.rec(duration * fs, samplerate=fs, channels=2, device=2) sd.wait() # 必须加这个,等待录制完成 - 用设备名称的示例(注意名称要和查询到的完全一致):
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2, device="USB Microphone")
- 用设备ID的示例:
全局设置默认设备(可选)
如果不想每次录制都指定设备,可以全局设置默认输入设备,后续所有sd.rec()都会用这个设备:sd.default.device = 2 # 或者设备名称
最后补充:录制完成后,需要用soundfile库把录制的数据保存为wav文件,代码示例:
import soundfile as sf sf.write("my_recording.wav", myrecording, fs)
内容的提问来源于stack exchange,提问作者jukebox41188
相关产品推荐
相关产品推荐

