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

如何识别电脑正在播放的音频?附Python实现参考代码

电脑端播放音频识别操作方案

你当前提供的代码默认采集麦克风输入的音频,要识别电脑自身播放的音频,需要先把系统播放的音频流转为音频输入源,再进行采集识别。

第一步:配置系统音频采集源

  • Windows系统:右键右下角音量图标→打开声音设置→进入声音控制面板→切换到「录制」标签页→右键空白区域勾选「显示禁用的设备」→找到「立体声混音(Stereo Mix)」设备,右键启用并设置为默认录制设备
  • Mac系统:安装第三方虚拟音频驱动(如BlackHole),安装完成后将系统输出设备设置为该虚拟驱动,同时将该虚拟驱动设置为系统输入设备
  • Linux系统:安装pavucontrol工具,在输入设备配置页将采集源切换为系统输出对应的monitor设备

第二步:查找对应音频设备的索引

运行以下代码获取所有可用音频输入设备的索引,找到刚才配置的立体声混音/虚拟音频设备对应的索引值:

import pyaudio

p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
    dev = p.get_device_info_by_index(i)
    print(f"索引{i}:{dev['name']},最大输入通道数:{dev['maxInputChannels']}")

第三步:调整优化识别代码

将刚才查到的设备索引填入代码中Microphone的参数里,同时可以增加降噪校准、指定识别语言的配置,调整后完整代码如下:

import speech_recognition
from speech_recognition import Recognizer, Microphone

r = Recognizer()
# 请把此处的2替换为你上一步查到的对应设备的索引
m = Microphone(device_index=2)

with m as source:
    # 环境噪声校准,提升识别准确率
    r.adjust_for_ambient_noise(source, duration=0.5)
    print("开始识别")
    audio = r.listen(source)
    try:
        # 识别中文需指定language参数为zh-CN,默认识别英文
        text = r.recognize_google(audio, language="zh-CN")
        print(f"识别结果:{text}")
    except Exception as e:
        print(f"识别失败:{str(e)}")

补充说明

  • 如果谷歌识别接口连接失败,可以替换为百度语音、科大讯飞等国内厂商的语音识别接口,调整对应识别逻辑即可
  • 若系统播放的音频包含背景音乐、杂音或者多人同时说话的情况,识别准确率会有所下降,可额外增加音频降噪、人声分离的预处理步骤优化效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:45:02