📄 角色声音不是说话人声音:KyaraBench 如何考角色一致性
英文题目:Character Identity is not Speaker Identity: KyaraBench and KyaraEmbed for Character Verification
标签:#说话人验证 | #对比学习 | #基准测试 | #数据集
评分:6.5/10 | 创新 1.4/2 | 技术严谨 1/1.5 | 实验充分 1.2/1.5 | 清晰度 0.8/1 | 影响力 0.8/1.5 | 开源 0/1.5 | 可复现 0.3/0.5 | 工程/实践 1/1.5
👥 作者与机构
- Joonyong Park:机构信息未在 arXiv HTML 中可靠披露
- Jerry Li:机构信息未在 arXiv HTML 中可靠披露
📌 核心摘要
配音角色在更换演员后仍被听众视为同一角色,而同一演员可以演出多个不同角色,现有说话人验证以自然人为身份单位,无法度量这两种混淆。论文构建角色验证基准KyaraBench,输入为音频片段,输出为两组音频是否属于同一角色的判定,难点在于跨配音演员正样本缺乏共同声纹线索,而同演员反例声纹高度相似。构建链路把Anim-400K的日英对齐片段经修复、跨集聚类、动漫人脸检测与角色肖像匹配、质量门限和人工视听核验,筛选为85个角色共986个日语片段和630个英语片段,再按固定随机种子抽成单语、多语、同演员等试次。编码器KyaraEmbed以动漫领域说话人嵌入为起点,先用86角色四语内配数据构成跨演员正例拉近同一角色,再把共用演员的跨剧角色绑定采样为难反例并以双边裕量推开,最后以前一步的批量角色片段为负例、用三语单说话人语料的跨语言对做语言对齐,经监督对比学习训练为192维音频嵌入,以束内均值池化后的余弦相似度评分。在KyaraBench跨配音条件XLing验证上KyaraEmbed的等错误率(Equal Error Rate,EER)为0.215,低于领域微调基线的0.271,也低于零样本ECAPA-TDNN的0.367。结论适用于已审核的动画配音验证与检索,同演员区分仍难且单语条件略有损失,原文未披露训练、推理或部署成本。
🔗 开源与复现资源
本次未形成可展示的已核验资源记录,开放状态尚未核实。
可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
配音角色验证的输入目标和必须保留的信息
这篇论文研究的输入是两段配音音频,目标是判断它们是否属于同一个虚构角色,而不是是否来自同一个现实演员。必须保留的信息是人工审核后的角色标签,系统在打分时只能听到音频,不能看到标签、画面或演员表。输出是一个相似度分数,验证时用余弦比较两个嵌入,检索时用日语查询在英语库中找同一角色。举例来说,同一个动画角色的日语原声和英语配音应判为相同,即使演员完全不同;同一个演员在两部作品里配的两个角色应判为不同,即使音色线索都指向同一人。论文的起点是现有说话人验证只量后者,因此在配音场景下会出现两种系统性混淆。
读这张图之前,先确认每侧面板固定的是角色还是演员,再看正确答案标注为相同还是不同,最后对照目标与冒充者的归属关系,这样才能把后文的试次构造一次看懂。
看图路径: 1. 先看左右两块面板分别固定的是角色还是演员;2. 再看每块面板下标注的正确答案是相同还是不同;3. 最后对照目标与冒充者的演员与角色关系
论文图 1。原论文 Figure 1::“Two cases of the speaker–character confusion.”。
左图是固定角色换演员,正确答案为相同;右图是固定演员换角色,正确答案为不同。目标行写的是同一角色,冒充者行写的是共享演员的不同角色,这种摆法直接对应后文跨配音条件和同演员条件的试次构造。理解这张图就能复述全文的任务切分:输入处理不变,变的是正样本和冒充者分别允许是谁。
角色验证 × 说话人验证: 说话人验证问的是两段录音是否来自同一个现实中的人,监督和答案都系在演员身上;角色验证问的是两段录音是否属于同一个虚构角色,答案系在人工审核的角色标签上,允许演员和语言变化。两者分工不同:前者在单人单声时有效,后者在配音更换演员或一人分饰多角时会把前者误导,因此需要搭配成对照,组合后才能同时看到把一个角色拆散和把多个角色合并这两类错误。
已有路线在输入目标监督上与本文有何不同
说话人验证路线以人为身份单位,VoxCeleb 和 VoxCeleb2 建立大规模野外验证,CN-Celeb 扩展到包含表演语音的类型,VoxMovies 测量演员演戏时验证性能下降多少。这些工作的输入也是语音对,目标都是判断是否为同一说话人,监督来自人的身份,运行阶段同样是嵌入加余弦打分。它们与本文的差异不在打分形式,而在身份定义:即使演员演得再像角色,答案仍系在演员身上,所以换演员的同一角色必然被判为不同。本文的角色验证把监督换成角色标签,输入仍是语音对,但正样本可以跨演员、冒充者可以是同演员,这是人级协议做不出的取样。
另一类相关资源是角色语音材料。Anim-400K 提供大规模日英对齐配音片段,但按单集做说话人区分而不命名角色;V2C 收集动画电影语音并带角色标签用于可视化语音克隆,但没有跨演员协议;自动选角研究说明表演声音之间的感知相似度可测,但没有受控冒充者。因此两类失效都无法在已有资源上打分。方法论上论文借鉴了 SUPERB 系列为每种声称能力配隔离协议的做法,以及跨挑战听音研究提供人类参考的做法,但把这套纪律首次用于说话人与角色的区分。
论文要解决的两个具体混淆是什么
第一个混淆是把一个配音角色拆成两个身份。当角色从日语换到英语配音时,演员变了,声学上的说话人身份不再共享,但观众仍感知为同一个角色。若系统只认说话人,它会把日语声和英语声判为不同,这就是跨演员条件要抓的漏检型错误。第二个混淆是把两个角色合并成一个身份。当同一个演员在不同剧中配不同角色时,所有声学线索都指向同一说话人,但答案应为不同角色。若系统只认说话人,它会把两个角色判为相同,这就是同演员条件要抓的误接受型错误。
论文强调单语同角色验证不够,因为同一语言内角色的片段同时也是同一演员的片段,跨演员正样本在单语内根本不存在;换语言又总是同时换演员,所以语言轴和演员轴也需要解耦。例子:只测日语内部的同一角色,等于同时在测同一演员,无法证明模型跨过了演员变化。
KyaraBench 从原始语料到可评分试次的总流程
KyaraBench 的总体流程是先从 Anim-400K 的对齐配音对出发,经过自动过滤得到候选身份,再经人工听看验证留下可发布集合,最后按固定规则抽出各条件的试次表。自动阶段先用 Sidon 修复广播混音噪声,再用一个公开的动画域说话人嵌入模型取质心,把单集内的角色分组跨集聚成跨集的身份,同一集内不同说话人标签永不相连。接着用视频帧做视觉命名:用开放的 YOLOv8 动画人脸检测器检出人脸,再用 CCIP 这类 CLIP 风格的角色图像编码器与公开角色肖像比对,至少三次匹配且一致率足够才通过。
之后做质量门:Whisper 转写错误率过高、UTMOS 分数过低、转写音高或说话人嵌入显示一剪两声、音高偏离自身音域 5 个半音以上都会被去掉或剪到主体段,其中 95 个发布片段带有区间标注。人工阶段让标注者边看源视频边对照参考肖像、名字和剧名,判断说话声是否属于图中角色,只有肯定或画外但声音吻合的才保留。最后每个身份在每种条件下至多贡献 12 个正样本对,冒充者按各条件对冒充者身份的约束抽取,用固定种子抽一次并随基准发布,保证所有系统在完全相同的试次上打分。
KyaraBench × 试次 × 语音包: KyaraBench 是评价规则和试次集合,试次是待比较的一对语音,语音包是把每侧用四个片段取平均嵌入后再算余弦的一组做法。KyaraBench 负责规定正样本和冒充者分别允许是谁,语音包负责把单片段的偶然起伏压平并让捆绑条件能包含对齐片段。两者搭配后,单片段条件测最难的跨演员泛化,捆绑条件测在更稳定输入下的同一能力,组合起来多了对采样稳定性的观察。
跨配音验证 × 同演员辨别: 跨配音验证固定角色而更换演员,正样本是同一角色的日语和英语配音,考的是换人后还能认出同一角色;同演员辨别固定演员而更换角色,冒充者是同一演员配的不同角色,考的是同声下还能分开不同角色。前者防把一个角色拆成两人,后者防把两人合成一人,两者搭配才覆盖图 1 左右两种混淆方向,缺一就会只看到一半失效。
试次条件如何规定谁能做正样本和冒充者
基准共设 6 种用法。Mono 是同角色同语言,正样本和冒充者都在同一语言内,这是唯一人级协议也能做的条件,用作参照基线。XLing 是同角色跨配音,正样本是同一角色的日语与英语,冒充者跨语言,专门测换演员后的同一性。Mono-VA 只加冒充者不加正样本,冒充者限定为共享演员的不同角色,打分时借用 Mono 的正样本,专门测同演员下的可分性。XLing-K 是捆绑的跨配音验证,每侧用 4 个片段取平均嵌入,冒充者不受限。
XLing-KP 同样捆绑但冒充者限定在目标中位音高两半音以内,用来排除只靠音高就能区分的捷径。检索是日语查询到英语库,库中有 53 个至少有 4 个英语片段的角色,每个查询用 8 个四片段包,随机猜中首位的概率为 0.019。
捆绑与单片段的区别不只是片段多:单片段跨配音正样本排除对齐的日英片段对,而每个捆绑条件约 79% 的正样本至少含 1 对这样的对齐对,因此捆绑结果不能直接当成单片段能力的放大版。音高匹配冒充者的作用是检验失败是否只是音高偏移,若基频统计量在该条件下接近随机,则说明同演员混淆不是单靠音高能解释的。
KyaraEmbed 用什么数据补齐缺失的对照
KyaraEmbed 是一个紧凑的纯音频编码器,采用 ECAPA-TDNN 结构输出 192 维,从公开的动画域说话人嵌入器微调而来,对外接口与说话人嵌入相同。训练数据的组织是为了解决三处缺失。第一,单语内角色片段同时是同一演员片段,跨演员正样本在单语内不存在,因此引入内部数据集提供 86 个角色、每角色 4 种语言各由不同演员录制,约 91 小时,让同一角色的片段天然跨演员。
第二,同演员冒充者在随机采样下极罕见,因此用演员表找回每个动画角色的日语演员,把共享演员但分属不同剧角色的跨剧对作为系紧对抽成难负样本,保证每批都含这种硬条件。第三,换语言总伴随换演员,无法单独看语言轴,因此引入 tri-jek 三语者语料,让同一说话人在语言变化而身份不变时提供对照。训练与评测的基准集合在片段、集、剧和角色身份上都不重叠,这是复述时必须记住的划分条件。
监督对比学习 × 跨演员间隔 × 同演员间隔: 监督对比学习负责把同角色拉近、不同角色推远,是基础的拉力结构;跨演员间隔要求同角色但不同演员的相似度还要再高一截,专门补跨配音正样本;同演员间隔要求不同角色但同演员的相似度再压低一截,专门补同演员冒充者。三者分工是通用身份结构加两端难例修正,组合后模型同时在换人不变性和同声可分性上被约束。
语言对齐项 × 三语者语料: 三语者语料提供同一说话人在语言变化而身份不变时的对照,这是其他角色语料给不了的,因为换语言通常同时换演员;语言对齐项用 InfoNCE 形式要求同一说话人的跨语言对得分高于同批角色片段,负责把语言变化与演员变化解耦。两者搭配的意义是先有干净的语言轴,再用损失把跨语言一致性写进表示,避免把语言差异误当成角色差异。
损失中三项各算什么代价更新哪里
基础目标是对角色身份做监督对比学习,每个角色的片段分布在多语言上,因此损失的拉力天然跨过演员。论文再加两个间隔:跨演员正样本要求相似度额外再高 0.05,同演员难对要求相似度再压低 0.10,形式上是在余弦上加减指示函数项。语言对齐项是每批加 8 对同一三语者在两种语言下的对子,用权重 0.3 的 InfoNCE 损失要求跨语言对的余弦打败同批角色片段的余弦,负样本固定为批内角色片段,目的是让同一说话人的跨语言一致性成立,同时与角色片段对比。
训练跑 1500 步 AdamW,学习率 10 的负 5 次方,每批 8 个角色加 4 个系紧演员对,每对四片段,温度 0.07。原文没有给出梯度是否截断或分层冻结的额外说明,只能按证据说更新的是从动画域嵌入器初始化后的编码器,监督分别来自角色标签、演员系紧关系和三语者跨语言对。消融中语言权重取 0 和 0.3、1.0 的对比表明该项是解决单语与跨语权衡的关键,但具体梯度路径没有超出上述损失描述的新证据。
基线人类参考和指标方向如何对齐
基线分 3 组。零样本组用公开现成 checkpoint,包括在 VoxCeleb 上训练的 ECAPA-TDNN、在 VoxCeleb2 上训练的 ReDimNet-b2、WavLM-base+ 的说话人验证头,以及 Qwen3-Omni 音频塔平均池化出的嵌入。域适配组是同一 ECAPA-TDNN 用 10,000 小时动画语音微调的版本,既作域匹配锚点,也作 KyaraEmbed 的初始化点。捷径组是基频统计量,用来检验音高一种线索能走多远。人类参考用两轮听音:48 名日语母语者在单语和跨语条件下评,30 名另一样本评更难的同演员条件,每人随机评 20 个混合试次,判断两声能否属于同一虚构角色并报告五点信心,每条目有 3 名独立标注,剧集识别自报率低于 7% 以排除先验知识偏差。机器在相同条目上的平衡错误率用各自余弦的等错误阈值算出,保证人机比的是同一批题。
指标方向是等错误率越低越好,检索首位召回率越高越好,同演员研究中的冒充者拒绝率越高越好,惩罚项是不同演员冒充者与同演员冒充者拒绝率之差,差越大说明被同演员坑得越惨。
等错误率 × 平衡错误率: 等错误率是在阈值上让误接受等于漏检时的误差,用于机器验证条件汇总,不用事先选工作阈值;平衡错误率是误接受率和误拒绝率的平均,用于汇总听音研究中人的二值判断。两者分工是机器侧阈值无关比较与人侧判断汇总,搭配后才能在相同试次子集上并排人的难度和机器的难度,组合后多了人机可比的参考点。
主比较在哪些条件下成立代价是什么
在主比较表中,说话人验证基线在 Mono 上尚可,但到跨演员和同演员条件误差明显上升,这正是基准要隔离的失效。KyaraEmbed 在跨配音、同演员、两种捆绑和检索上为表中最好,唯一让出的是 Mono,该条件本质是单演员说话人验证而非跨演员角色身份,因此让出符合任务分工。
下表比较的问题是捆绑正样本是否含对齐片段、冒充者是否限同剧时结论是否还成立,以及同演员冒充者相对普通冒充者难多少。公平条件是同一冒充者集合或同一正样本集合下的成对比较,指标方向为等错误率越低越好。
| 条件 | 指标 | KyaraEmbed 值 | 对照值 | 比较对象与限制 |
|---|---|---|---|---|
| XLing-K 捆绑无对齐对子集 | 等错误率 | .173 | .155 | 有对齐对子集,同一冒充者,约 79% 捆绑正样本含对齐对 |
| XLing 总体 | 等错误率 | .215 | .201 | 397 个同剧冒充者来自 16 剧,同一正样本,总体仍跨演员 |
| Mono-VA 同演员 | 等错误率 | 待模型表 | .288 | 3 个说话人验证基线下界,单语同演员冒充者 |
| Mono-VA 同演员 | 等错误率 | 待模型表 | .305 | 3 个说话人验证基线上界,同上,区间宽需看身份自助 |
其中.173 与.155 是 XLing-K 捆绑正样本的两个子集结果,无对齐对子集为.173,有对齐对子集为.155,两者共用同一冒充者集合。单片段跨配音正样本明确排除对齐日英片段,而每个捆绑条件约 79% 正样本至少含 1 对该片段,因此不能把.173/.155 当作单片段 XLing,也不能与总体 XLing 的.215、总体 XLing-K 的.159 混为一项。捆绑中含对齐片段的子集误差更低,说明对齐片段带来可利用的一致性,但这同时是限制,不能把捆绑的低误差直接推广到单片段。同剧冒充者把总体跨配音误差从 0.215 变为 0.201,变化不大,支持跨演员难主要来自换人而非是否同剧。未胜出项是 Mono,域微调和 ECAPA 在单语上更好,这是为换取跨语能力付出的小代价。
人类听音在相同题目上难在哪里
人类在基准设计的混淆点上同样犯错,这为难度提供了参考。跨配音时人的误差比单语基线显著上升,打包在人类所评子集上并未改善人或模型的平衡错误率。同演员冒充者更能误导人,同演员与不同演员冒充者的拒绝率之差经演员自助显著,特别在音高相近时。KyaraEmbed 的两类冒充者拒绝率差距比人小,但绝对拒绝率在两类上都低于人,说明它受同演员拖累相对小,但绝对分辨力仍不如熟悉度有限的人。
下表比较的问题是人类参考在什么样本量和偏差控制下成立,指标方向为误差越低越好、拒绝率越高越好,公平条件是人机评同一子集。
| 研究 | 听音人数 | 试次量 | 判断任务 | 偏差控制与结果方向 |
|---|---|---|---|---|
| 同演员 | 30 | 200 试次 | 同一虚构角色与否 | 每人 20 混合试次,共享演员更难拒绝 |
| 机器对照 | 多基线 | 相同子集 | 余弦阈值 2 值 | 人机条目级正确率相关跨配音仍为正 |
| 限制 | 有限熟悉度 | 子集非全表 | 仅已评条件 | 打包不改善平衡错误率,不可外推未评条件 |
该表的意义是结论成立条件:听众是日语母语者、对剧集不熟悉、每题多人评。若换成粉丝听众或允许利用剧情先验,误差可能完全不同。条目级上模型正确性与 3 位评分者准确率的相关在各已评条件下都明显大于零,而域微调模型只在单语对齐、跨配音接近零,这支持 KyaraEmbed 学到的难度结构更接近人,但相关不等于因果,也不能承诺误判率或延迟会改善。
从域微调到最终模型的每一步换来什么
消融按数据先行、条件再细化的梯子走。仅用内部数据集做监督对比的适配阶只小幅打开跨语轴却牺牲单语;加入动画语料的普通监督对比已拿到大部分捆绑和检索增益。在关闭语言项时,系紧采样与间隔的各种组合单语最好但交出大部分跨语增益,3 种变体彼此只差千分之几。加上权重 0.3 的语言对齐后,所有跨语角色条件改善而单语付出小代价。
配对自助确认无语言项家族单语显著更好、跨语显著更差。同演员条件沿同一路径从适配阶最差走到全配方最好,但区间宽,只能说排序而非决定性差距。
下面先看散点图的读法:横轴是单语误差,纵轴是跨配音误差,都是越小越好,虚线是经验前沿,灰点是 31 个微调配置,重点看已选模型是否落在前沿左下附近。
看图路径: 1. 先看横轴单语误差与纵轴跨配音误差的方向都是越小越好;2. 再找虚线前沿上位置靠左下的已选模型;3. 最后比较灰色多配置点与说话人验证基线点的分布
论文图 2。原论文 Figure 2::“Mono vs. XLing EER for 31 fine-tuned configurations from our ablations (grey), the domain fine-tuned model, the speaker-verification baselines, and our model.”。
图中可见 ECAPA 与 ReDimNet 在横轴左侧但纵轴偏高,WavLM 在横轴右侧,域微调点向左下移动而 KyaraEmbed 进一步下探纵轴,灰色配置点沿前沿散开,证实单语与跨语之间存在权衡而语言对齐项把权衡推向最终模型。选择标准是跨语、同演员与检索的联合排序,而非单看 Mono,这解释了为何接受小的单语代价。未评测的范围是语言权重 1.0 与 0.3 接近但检索略降,说明权重并非越大越好,具体最优只在该基准的该划分上成立。
结论的边界与容易误读的地方
论文结论的范围明确限于表演性的日本动画语音及其英语配音,不能推广到自然对话、歌声或其他语言对。训练与评测在片段、集、剧和角色上无重叠,但仍同属动画配音域,换域后是否保持需要另做验证。捆绑条件约 79% 含对齐片段,单片段条件排除对齐对,因此两类数字不能混读;把 0.173 与 0.155 理解成单片段跨配音是常见误读,它们是捆绑正样本按是否含对齐对切出的子集结果,总体跨配音与总体捆绑仍分别是 0.215 与 0.159 量级。百分点与相对百分比也不要混用,0.288 到 0.305 是误差本身而非相对提升。
基频捷径在音高匹配条件下接近随机,只能说失败不只是音高,不能说音高无用。人类参考只适用于对剧集不熟悉的听众,且打包在人评子集上未改善误差,不能推广为打包总是无用。作者资源在原文中称基准清单、评测代码和模型公开,但本次未发现可验证的来源绑定,因此复现时应以论文内的数据划分、试次表和超参为准,不要默认代码权重可直接下载可用。
复现训练配置需要核对哪些数据与超参
复现训练时先核对数据与优化配置是否与原文一致,公平条件是同划分同试次,指标方向沿用等错误率越低越好、检索越高越好。下表把原文连续句中给出的规模与设置整理成可核查清单。
| 模块 | 规模 | 关键设置 | 作用 | 限制与核查 |
|---|---|---|---|---|
| 内部角色集 | 86 角色约 91 小时 | 四语言四演员 | 提供跨演员正样本 | 需跨演员分布,不可单语替代 |
| 优化调度 | 1500 步 | 八角色四系紧对每对四片段 | 固定训练预算 | 步数少,种子与划分影响大 |
| 语言对齐 | 权重.3 | 每批 8 对三语者 | 解耦语言与演员 | 权重 1.0 检索略降,需按联合排序选 |
| 评估划分 | 无重叠 | 片段集剧角色均隔离 | 防泄漏 | 换域需重验,不可直接外推 |
按此表先确认内部集的跨演员分布、三语者对的语言轴、批量与温度的组合,以及训练评测在角色与剧集上无重叠。若内部集非公开或三语者语料需另行获取,应如实记录替代数据的差异。推理开销、延迟与帧率原文未报告,不能承诺实际部署成本,训练侧的重点是预算固定而划分影响大。
复现评分管道第一步做什么按什么顺序查
复现第一步是按论文的划分与试次表重建评分管道,而不是先训练。下表比较的问题是操作顺序如何保证结论可比,公平条件是同试次同打分函数,指标方向同上。
| 步骤 | 核查对象 | 执行动作 | 通过标准 |
|---|---|---|---|
| 第一步 | 试次表与划分 | 载入固定种子试次 | 正负对数量对齐 |
| 第二步 | 打分函数 | 包内平均再算余弦 | 单声道 16 kHz 输入可跑通 |
| 第三步 | 难度结构 | 对比跨语与同演员 | 跨演员更难成立 |
| 第四步 | 训练配置 | 核对批量与权重 | 与清单一致 |
| 第五步 | 适用边界 | 换域与同剧对比 | 声明限制 |
被测系统只需提供把音频变成嵌入向量的函数,加载器按单声道 16 kHz 喂入每个片段,试次分数是两侧余弦,包的一侧先对成员嵌入取平均再算余弦。验证用等错误率汇总,检索用首位召回率,不确定度按身份重采样。用现成说话人嵌入走一遍 Mono 与跨配音,若跨配音误差远高于单语且同演员冒充者更难拒绝,说明管道已复现基准的难度结构。话题从管道正确性转到适用边界时,关键是承认内部数据与听音规模的限制,再谈后续工作。
什么时候值得尝试还缺哪项验证
当任务是配音质检或角色声音设计,需要判断两声是否同属一个角色而不问是否为同一演员时,值得尝试这套基准与编码器思路;若任务只是单人单语的说话人确认,传统说话人验证已足够,不必引入角色监督。复现时先做评分管道与难度复查,再按数据梯子逐步加入动画语料、系紧采样与语言对齐,每步同时看单语与跨语而非只看一端。
还缺的验证包括非动画域、非日英对、粉丝听众下的人类参考,以及训练与推理成本的实测。论文的价值在于把角色与说话人的两向混淆变成可打分、可比人、可消融的问题,并给出在该划分上跨语与同演员同时改善的配方;其边界同样清楚:结论只在已评条件和有限听众下成立,捆绑与单片段、总体与子集数字不可互换,资源可用性需以可验证链接为准。
📎 论文与评分元数据
排名:前50% | 文档类型:数据集与基准 | arXiv 原文
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
评分规则:type-aware-v1
评分模型:muse-spark-1.3-contributor
评分请求协议:openai_responses