AgentScope Realtime 语音智能体用蓝牙耳机收不到声音怎么排查?

发布时间:2026/9/12 23:54:50
AgentScope Realtime 语音智能体用蓝牙耳机收不到声音怎么排查? AgentScope Realtime 语音智能体用蓝牙耳机收不到声音怎么排查【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope在 AgentScope 的 Realtime 语音示例中,如果你同时用一副蓝牙耳机接麦克风和扬声器,会出现智能体明明在回答,耳机里却完全没有声音的现象。官方示例文档(examples/realtime/README.md)的 Tips 里专门说明了这一问题的原因,并给出了按设备索引拆分输入、输出的解决办法。本文按文档内容梳理排查路径,适用环境是运行examples/realtime/local_mic.py的本地声卡方案(基于sounddevice/PortAudio),文档中描述的免提档位切换行为以 macOS 为准。运行这个示例的前提,文档中明确列出:Python 3.11 或更高版本;安装了 realtime 扩展:pip install agentscope[realtime];sounddevice依赖 PortAudio:macOS 和 Windows 自带,Debian/Ubuntu 上需要apt install libportaudio2;一个可访问 realtime 模型的 DashScope API key(export DASHSCOPE_API_KEYsk-...)。先分清两种不同的现象文档描述了两种容易混淆的音频问题,排查前先确认自己遇到的是哪一种:完全没声音(本文主题):蓝牙耳机的麦克风能收音,但智能体的回复听不见。回复中途被切断:智能体自己打断自己。用外放扬声器时,麦克风会拾取智能体自己的声音,服务端的 VAD 判定用户开始说话,于是把回复截断。文档说明LocalAudioTransport不做回声消除(浏览器会做),所以官方建议直接Use headphones——换成耳机即可。如果你的现象是第 2 种(有声音但被截断),按文档说法解决办法就是改用耳机;本文只针对第 1 种收不到声音。为什么蓝牙耳机会没声音examples/realtime/README.md 的 Tips 原文说明:不要把麦克风和扬声器两个方向都走同一副蓝牙耳机(Do not route both directions through one Bluetooth headset)。文档给出的原因是:macOS 会在 AirPods 及类似设备同时用于输入和输出时,把它们切到 hands-free(免提)档位,而 PortAudio 在这种设备上分离的输入/输出流常常产生不出声音。这与示例的实现方式一致:查看 LocalAudioTransport 实现 可以看到,它通过sounddevice分别打开一个InputStream和一个OutputStream,各自绑定一个设备(input_device/output_device,不设置时各自用sounddevice的默认设备)。两路流都指向同一副蓝牙耳机时,就会落在文档描述的免提档位问题上。解决方法:把麦克风和扬声器拆到两个设备文档给出的操作路径是:从python -m sounddevice列出设备,按索引分别指定输入和输出设备,例如耳机麦克风配内置扬声器。第 1 步:列出设备,记下两个索引python -m sounddevice在输出中找到你蓝牙耳机麦克风对应的输入设备索引,以及另一个输出设备(如内置扬声器)的索引。第 2 步:用环境变量指定设备后启动示例export DASHSCOPE_API_KEYsk-... REALTIME_INPUT_DEVICE3 REALTIME_OUTPUT_DEVICE2 python examples/realtime/local_mic.py文档示例中的3(输入)和2(输出)只是示例索引,必须替换为你在python -m sounddevice里查到的实际值。默认模型是qwen-audio-3.0-realtime-plus;如果要用其他 realtime 模型,通过REALTIME_MODEL指定,凭证里列出的模型都能用,未知名字会打印可用列表。两个环境变量的取值逻辑,可以从 local_mic.py 的_device()函数确认:值如果是数字字符串就按设备索引解析,否则按设备名匹配;不设置时传None,使用sounddevice的默认设备。所以输入设备索引、输出设备索引或设备名都可以。可选分支:改用有线耳机。如果不想拆分设备,文档的总体建议是使用耳机(headphones)。蓝牙耳机的问题根源是同时双向使用时被切到免提档位,换成有线耳机走耳机即可,这是文档 Tips 中给出的常规做法。如何验证已经修好启动后终端先打印[模型名] listening... (Ctrl-C to quit)(见 local_mic.py 的print),表示模型已解析、音频通道已打开,开始等待你说话;说话时终端打印[you] ...,你应当能立刻从指定的输出设备听到智能体的回复,不再需要等;文档说明每轮回复结束都会输出一行诊断信息:本轮如何结束、模型首个音频字节的时延(ttfb)、用户端到端等待(e2e),以及当前上下文中智能体消息的最终内容。看到这行诊断且音频正常播出,说明拆分设备已生效;Ctrl-C退出。一个容易误判为没声音的已知行为如果你是在长时间不说话之后发现没有响应,文档说明这与设备无关:DashScope 在约三分钟内没有响应时会关闭会话,示例会记录这件事并继续保持麦克风打开;你下一次说话时会自动重连模型,并把此前的转录追加到 system prompt 中,让模型保持上下文。这是文档描述的预期行为,不是耳机故障。小结与边界文档描述的免提档位切换针对 macOS 上的 AirPods 及类似设备;其他平台上同一现象的原因文档未作说明,排查时仍可从输入/输出是否走同一副蓝牙耳机入手,用REALTIME_INPUT_DEVICE/REALTIME_OUTPUT_DEVICE拆分开来;LocalAudioTransport不提供回声消除,外放扬声器场景下回复被自己打断是文档明确列出的预期现象,官方给出的对策是使用耳机;模型上下文长度限制(按轮数计)与文本输入支持范围等限制见 Realtime 示例说明,与本文的收不到声音排查无关,此处不展开。【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询