CodexQA

行业与实践研究与基准测试

打断回应率 0.88,并行工具调用没超过纯文本:京东 JoyAI-Talker 的全双工评测

CodexQA 团队阅读约 7 分钟

打断场景 C_RESPOND 0.88,附和时误触发 0.01。语音工具调用只有 ACEBench 单工具到 98.56,并行项 44.32,低于纯文本的 61.36。没有线上成交。

本文目录

打断回应率 0.88,并行工具调用没超过纯文本:京东 JoyAI-Talker 的全双工评测

京东的技术报告 JoyAI-Talker: Full-Duplex Speech Interactive Large Model Built for Empathetic Voice Agents。页面版本是 arXiv 2608.01119v1,水印日期 2026 年 8 月 2 日。许可证是 CC BY-SA 4.0。单位标识是 JD.com。

JoyAI-Talker 是一套全双工语音对话系统。全双工在这里指人和模型可以重叠说话,模型要决定立刻让出话轮,还是继续把话说完。它拆成 Thinker、Talker 和 Joy-Duplex:Thinker 负责理解和规划,Talker 负责按指令出声音,Joy-Duplex 负责话轮状态。对照里反复出现的 Qwen3-Omni 是通义的语音多模态模型,配置为 32B 参数、推理时激活约 3B。JoyAI-Talker 配置为 48B,激活约 3B。文本工具调用对照另有 Qwen3.6,35B、激活约 3B,只走文本。

文本能力用贪心解码,GSM8K 没有超过对照

第 3.1 节用 OpenCompass 跑大部分基准,解码方式是贪心,为的是结果可复现。OpenCompass 是一套公开的大模型评测流水线。RULER 单独用官方仓库,上下文窗口 64K,和它自己的榜单设置对齐。RULER 测的是长上下文里能不能把信息用对。所有模型都走对话模板,带对话用的特殊 token。

表 1 报两个检查点。SFT 是监督微调,DPO 是直接偏好优化,用成对偏好把回答往指定风格上推。DPO 的知识项:MMLU-Redux 90.80,C-Eval 87.97,MMLU 88.57,CMMLU 86.18。推理项:MMLU-Pro 80.23,SuperGPQA 54.31,AGIEval 54.22。指令遵循:IFEval 83.70,IFBench 31.83。IFEval 是公开的指令遵循基准,整段提示里的约束要按评测器判定。长上下文 RULER(64K)76.88。STEM:MATH 94.62,MATH-500 94.58,GSM8K 95.60,GPQA 64.51。

同一张表里,Qwen3-Omni 的 GSM8K 是 95.98,高于 DPO 的 95.60,也高于 SFT 的 95.53。SFT 阶段还有两项低于对照:C-Eval 87.31 对 87.79,CMMLU 85.14 对 85.87。DPO 把这两项拉回到 87.97 和 86.18。文中把这条路径读成:语音和文本一起训之后,文本侧大部分还在,但不是每一项都升。

语音识别多数更低,有三项 DPO 略差于 SFT

第 3.2 节是语音到文本,23 项,覆盖识别、翻译、问答和副语言属性。表 2 的 ASR 越低越好。ASR 是自动语音识别,数字是词错误率一类的错误率。DPO:Aishell 1 为 0.86,Aishell 2 为 2.17,LibriSpeech clean 为 1.32、other 为 2.58,Wenetspeech net 为 4.46、meeting 为 5.88,Fleurs 中文 2.48、英文 3.05,GigaSpeech 9.39,Tedium 2.90。对照 Qwen3-Omni 在这些项上分别是 1.04、2.48、1.52、3.22、4.64、5.97、2.79、3.18、11.27、3.49。

SFT 并不总是更差。LibriSpeech other 上 SFT 是 2.55,DPO 是 2.58。Wenetspeech meeting 是 5.86 对 5.88。Tedium 是 2.85 对 2.90。翻译也不全是 DPO 更高。CoVoST2 英到中:SFT 51.29,DPO 50.37,对照 44.80。中到英则是对照 28.50,高于 SFT 的 27.89 和 DPO 的 27.95。FLEURS 英到中 SFT 43.99、DPO 43.84,都高于对照 41.83;中到英 SFT 27.66、DPO 27.32,对照 26.56。

问答里 OpenBookQA、MMSU、SD-QA 的 DPO 分别是 94.73、84.65、75.77,高于对照的 93.19、81.82、73.96。AdvBench 两边的 DPO 和 SFT 都是 99.81,对照 99.62。AlpacaEval 是 1 到 5 或同量纲的打分项,对照 4.68,SFT 4.62,DPO 4.61,这里 DPO 最低。CommonEval 对照和 DPO 都是 4.53,SFT 4.51。

副语言三项,DPO 的性别 98.20、年龄 77.30、情绪 79.57。性别上 SFT 的 98.25 略高。对照分别是 97.59、65.20、77.00。年龄这项差距最大。

放进思维链之后,性别和情绪识别掉下去

第 3.3 节测的是 Persona-Adaptive Empathetic Response,也就是先听出说话人是谁、什么状态,再按这个人设回答。性别和年龄用 AIR-Bench 原标签。情绪用 MER2025,作者把 Track 1 从六类离散情绪改成「主情绪加心理状态描述」,所以情绪分不是原始赛道标签上的原样复现。

两种设置。Direct 只测听属性。CoT 是思维链,看对话生成过程中、中间推理步骤里有没有把这些属性写出来。表 3:JoyAI-Talker 的 Direct 是性别 98.2、年龄 77.3、情绪 79.6。CoT 变成 89.3、77.7、72.8。年龄略升,性别掉 8.9,情绪掉 6.8。Qwen3-Omni 只报了 Direct:97.59、65.2、77.0,没有 CoT 对照。

表 4 用 EchoMind 的三个英文子集:情绪、年龄、性别。裁判是 LLM-as-a-judge,也就是用另一个大模型按维度打分,范围 1 到 10。六个权重:基础逻辑 10%,知识一致 10%,多样 10%,内容逻辑 20%,互动 20%,共情 30%。加权分和共情分,JoyAI-Talker 对 Qwen3-Omni:情绪子集 9.38 / 8.28 对 8.91 / 7.71,年龄子集 9.08 / 7.49 对 8.91 / 7.03,性别子集 9.79 / 9.73 对 9.47 / 9.20。年龄子集的加权分只高 0.17,共情分高 0.46。文中没有给出裁判和人评的一致率,也没有写出这三个子集各有多少条。

四类重叠里,该停的停、不该停的不停

第 3.4 节用 Full-Duplex-Bench v1.5。这是一套测全双工模型怎么处理说话重叠的基准,四个场景:

用户打断:对方真的要抢话,例如「等一下,我想……」。模型应该马上让出,并接住新问题。C_RESPOND 越高越好。

用户附和:对方只是「嗯」「对」这种短反馈,不是要抢话。模型应该继续说。C_RESUME 越高越好。

对他人说话:对方在跟旁边的人说话,例如叫家人。模型要判断话不是对自己说的,把话轮留住。C_RESUME 越高越好,C_RESPOND 越低越好。

背景语音:远处说话或环境噪声。模型应继续当前回答。同样是 C_RESUME 高、C_RESPOND 低。

行为被分成四类。C_RESPOND 是让出并回应。C_RESUME 是忽略并继续。C_UNCERTAIN 是先确认对方在不在跟自己说话。C_UNKNOWN 是分不进去的行为。表 5 只展开了前两类。

Joy-Duplex 的四个场景:打断时 C_RESPOND 0.88、C_RESUME 0.07。附和时 C_RESPOND 0.01、C_RESUME 0.96。对他人说话时 0.17 和 0.72。背景语音时 0.10 和 0.85。

表上另外四列不能当成同一次重跑。Freeze-Omni、Moshi、GPT-4o 带星号,数字直接引自 Full-Duplex-Bench v1.5 原文。Gemini 3.1 Live 带剑号,是作者自己用当时的商业 Gemini Live API 测的。打断场景里,星号列的 C_RESPOND 分别是 0.72、0.50、0.78,Gemini 是 0.77。附和时 Moshi 的 C_RESUME 只有 0.06,GPT-4o 是 0.70,Gemini 0.95。对他人说话时 GPT-4o 的 C_RESPOND 是 0.91、C_RESUME 0.02,也就是星号结果里几乎逢声就接。背景语音同样,GPT-4o 的 C_RESPOND 0.93、C_RESUME 0.04。

正文把没接住的打断归到一个保守取舍:语义拒绝 token <|reject|> 在声音含糊时优先避免误触发。所以 0.88 不是 1,剩下的未响应被写成这种门控的代价,而不是漏测。

语音工具调用只在单工具一项上最好

第 3.5 节是语音函数调用。表 6 三列:纯文本 Qwen3.6、Qwen3-Omni、JoyAI-Talker。Speech-ACEBench 是语音版的智能体工具调用评测,Single 是一次调用一个工具,Parallel 是要并行多个。Speech-BFCL 是语音版的 Berkeley Function Calling Leaderboard,看函数名和参数对不对。Speech-SmartInteract 是另一套语音交互里的工具调用集。原文没有在这节写出每套的条数。

Speech-ACEBench Single:96.63、92.79、98.56,JoyAI-Talker 最高。Parallel:61.36、38.63、44.32,纯文本最高,JoyAI-Talker 比纯文本低 17.04,只比 Qwen3-Omni 高 5.69。Speech-BFCL Single:94.81、92.21、89.62,JoyAI-Talker 最低。Parallel:78.76、84.68、78.72,Qwen3-Omni 最高,JoyAI-Talker 和纯文本几乎打平,还低 0.04。Speech-SmartInteract:83.08、75.90、80.39,仍是纯文本最高。

文中的概括是:ACEBench 的单工具项最好,BFCL 和 SmartInteract 上「有竞争力」。表内更具体的读法是,并行调用和 BFCL 单工具并没有从文本模型迁过来。作者把单工具上的提升归因于两块数据:文本域的智能体监督微调,加上面向语音的工具调用数据。表 6 没有分开这两块的消融。

限制写了三件还没做完的事

第 5 节写了三条。第一,感知还停在语音和说话人属性上,没有一般音频事件能力。警报、音乐、非语音噪声里的场景信息,这版不管。第二,大规模强化学习还在做。没有这一阶段时,复杂多约束指令和语音驱动的工具调用会相对受限。这和表 6 里并行项、BFCL 单工具没有超过纯文本是同一方向的缺口,但原文没有把某一格直接算成「缺 RL 的因果」。第三,Joy-Duplex 是可插拔的状态模块,不是端到端双流。作者认为双流有机会把话轮延迟做低、让输入输出真正同时走,这一版还没有把两种结构的延迟并排测完。

这些数不能被读成什么

0.88 只是 Full-Duplex-Bench v1.5 的用户打断场景里,Joy-Duplex 的 C_RESPOND。另外 0.07 仍被分成继续说。未响应的部分,原文归因于拒绝 token 偏保守,不是已经消掉的误差。

表 5 的星号列不是京东在同一套服务上重跑的。Gemini 3.1 Live 是商业 API 自测,和本地 Joy-Duplex 的硬件、解码、系统提示都不在表里。不能把 0.88 对 0.77 写成同机对比。

表 1 的 GSM8K、表 2 的中到英翻译和 AlpacaEval,DPO 没有高于对照。识别上还有三项 DPO 略差于自己的 SFT。CoT 设置里性别从 98.2 掉到 89.3,情绪从 79.6 掉到 72.8,说明听得准不等于写进推理链之后还在。

表 4 的共情分是 LLM 裁判的 1 到 10,权重是作者定的,情绪标签经过改写。没有人评一致率,也没有子集样本量。

表 6 不能概括成「语音工具调用全面超过文本模型」。五格里只有 ACEBench Single 是 JoyAI-Talker 最高。并行两格和 BFCL Single、SmartInteract 都不是。激活参数都约 3B,但总参数是 48B 对 35B 和 32B,不是同尺寸。

原文没有给出线上对话时长、打断误触的线上比例,也没有成交或留存。0.88 和 98.56 都是离线基准上的点,不是京东语音客服已经上线的结果。

出处:京东,JoyAI 团队(JD.com),JoyAI-Talker: Full-Duplex Speech Interactive Large Model Built for Empathetic Voice Agents,2026-08-02,https://arxiv.org/abs/2608.01119v1

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误