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

如何使用Python实现耳机/耳麦通话录音?

耳机/耳麦通话录制及Python实现方案

完全可以在使用耳机/耳麦时录制通话内容,但核心问题是捕获系统内部的音频流——默认的麦克风/扬声器只能录制外部或播放的声音,而通话的音频(包括你通过耳麦输入的声音和对方传来的声音)属于系统内部通路的音频,需要通过特定设备或工具捕获。

Python实现步骤

1. 系统音频捕获准备

首先需要让系统支持内部音频捕获:

  • Windows:启用「立体声混音」设备(打开声音设置 → 录制选项卡 → 右键勾选「显示禁用的设备」→ 启用「立体声混音」)
  • Mac:安装BlackHole或Soundflower虚拟声卡,将耳机输出路由到虚拟设备
  • Linux:使用PulseAudio的monitor源(通过pactl list sources命令找到对应的monitor设备)

2. 安装依赖库

用pip安装音频处理所需的库:

pip install sounddevice numpy wave

3. 录制脚本示例

以下脚本可捕获系统内部音频并保存为标准WAV文件:

import sounddevice as sd
import numpy as np
import wave

# 列出所有音频设备,找到系统音频捕获设备的ID(替换为你自己的设备ID)
print("可用音频设备:")
print(sd.query_devices())
device_id = 2  # 请替换为你的系统捕获设备ID

# 录制参数配置
sample_rate = 44100  # 标准音频采样率
channels = 2         # 立体声通道
duration = 60        # 录制时长(单位:秒)

# 开始录制
print("录制中...")
audio_data = sd.rec(
    frames=int(duration * sample_rate),
    samplerate=sample_rate,
    channels=channels,
    device=device_id
)
sd.wait()  # 等待录制完成

# 转换音频格式为WAV标准的16位整数
audio_data = np.int16(audio_data * 32767)

# 保存录制文件
with wave.open("call_recording.wav", "wb") as wav_file:
    wav_file.setnchannels(channels)
    wav_file.setsampwidth(2)
    wav_file.setframerate(sample_rate)
    wav_file.writeframes(audio_data.tobytes())

print("录制完成,文件已保存为 call_recording.wav")

额外说明

  • 如果需要同时录制你通过耳麦输入的声音和对方的声音,可通过虚拟声卡将麦克风输入与系统音频输出混音后再捕获;也可以在脚本中同时捕获两个设备的音频流,通过代码合并为一个文件。
  • 不同系统的音频设备ID存在差异,务必通过sd.query_devices()的输出找到正确的捕获设备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:38:37