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

使用sounddevice录制双声道扬声器音频时出现通道错误求助

问题分析

你指定的设备1是输出设备(0 in, 2 out),它没有输入通道,无法作为输入源录制音频,这才触发了「Invalid number of channels」错误。Mac默认没有内置立体声混音功能,要捕获扬声器输出,需要借助虚拟音频设备实现音频路由。


解决方案步骤

1. 安装虚拟音频设备(BlackHole)

用Homebrew快速安装双声道版本:

brew install blackhole-2ch

(无Homebrew可直接从其官方渠道下载DMG安装包)

2. 配置系统音频路由

  • 通过Spotlight搜索打开「音频 MIDI 设置」
  • 点击左下角+号,选择「创建多输出设备」
  • 在右侧面板勾选「MacBook Pro Speakers」和「BlackHole 2ch」
  • 右键点击新建的多输出设备,选择「使用此设备作为声音输出」

这样系统音频会同时输出到扬声器和BlackHole,BlackHole即可作为输入设备捕获音频。

3. 修改代码指定正确输入设备

运行sd.query_devices()找到BlackHole的设备索引(会显示2个输入通道),然后调整代码:

import sounddevice as sd
from scipy.io.wavfile import write

fs = 44100  # 使用标准整数采样率,避免浮点数潜在问题
seconds = 3  # 录制时长

# 替换为你的BlackHole设备索引,示例为3
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2, device=3)
sd.wait()  # 等待录制完成
write('output.wav', int(fs), myrecording)  # 保存WAV文件

额外注意事项

  • 若不需要实时听声音,可直接将BlackHole设为系统默认输出,但日常使用建议切换回原扬声器设备。
  • 原代码中fs = 44100/2的浮点数采样率可能引发兼容问题,建议使用标准整数采样率(如44100、48000)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:56:02