📄 逐帧可流式传输的低码率语音压缩 StreamLSC
英文题目:Frame-Wise Streaming for Efficient Learned Speech Compression
评分:7.0/10 | 创新 1.5/2 | 技术严谨 1.2/1.5 | 实验充分 1.1/1.5 | 清晰度 0.8/1 | 影响力 1.1/1.5 | 开源 0/1.5 | 可复现 0.1/0.5 | 工程/实践 1.2/1.5
👥 作者与机构
- Yuhan Liu:机构信息未能在本次解析中与作者逐人可靠绑定
- Jun Xu:机构信息未能在本次解析中与作者逐人可靠绑定
- Fengxi Zhang:机构信息未能在本次解析中与作者逐人可靠绑定
- Zhengxue Cheng:机构信息未能在本次解析中与作者逐人可靠绑定
- Li Song:机构信息未能在本次解析中与作者逐人可靠绑定
📌 核心摘要
语音压缩的输入是连续语音波形,输出是码率尽可能低、重建感知质量尽可能高的比特流与重建语音,难点在于超低码率下保留细节的同时满足实时通信的逐帧因果要求。StreamLSC 把音频切成互不重叠的帧,每帧经短时傅里叶变换(Short-Time Fourier Transform,STFT)得到频域特征,再送入可流式主干网络提取隐表示。隐表示进入可流式熵模型,先由辅助特征预测高斯分布参数,再按通道分组做自回归熵编码形成部分比特流,解码端按帧重建并依靠显式状态传递保持帧间连续。与依赖整句上下文的离线熵模型和逐时刻独立量化的向量量化流式编码器不同,该设计同时保留长时建模能力和熵自适应比特分配。在 LibriTTS 上与 FunCodec 相比,论文报告平均节省 -51.37%(ViSQOL)和 -53.99%(PESQ)的 BD-RATE,对应 BD-ViSQOL 提高 0.2154、BD-PESQ 提高 0.5156。结论适用于 16 kHz 英语朗读语音的超低码率区间,跨语言、噪声和丢包条件尚未验证。原文披露模型量级为 149.2M 参数,在 RTX 4090 上实时率为 0.0539,原文未披露训练耗时与训练内存细节。
🔗 开源与复现资源
- 第三方资源:https://buhaneryu.github.io/Voice_Demo_Website/ — 链接可访问(HTTP 200)
可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
语音压缩要解决什么输入输出问题
这篇论文研究的是语音压缩,也就是把麦克风采集到的语音波形变成很短的比特流,再在接收端恢复出可懂且自然的语音。输入是连续语音,论文实验用 16 kHz 采样的朗读语音,输出一是可存储传输的比特流,二是解码重建的语音波形。评价时同时看两件事:用了多少比特每秒,以及重建语音在客观感知指标和人耳听感上保留了多少质量。传统做法如 Opus 和 EVS 在中等码率很高效,但在超低码率下靠手工设计的特征难以保持感知质量。
神经编解码器希望用端到端学习到的隐表示来突破这个瓶颈,特别是在实时通话、云端流式和卫星通信这类带宽受限且不能等待整句话说完的场景。流式的含义很具体:系统只能 1 帧 1 帧处理当前及过去的音频,不能偷看未来帧,这对网络结构和量化编码都提出了因果约束。
已有两条路线为什么难以兼得
论文把已有工作分成两条路线。第一条是基于码本的流式神经编码,例如 SoundStream、EnCodec 以及残差矢量量化及其变体。这类方法用多个学习码本表示信号,每一时刻独立量化,所以天然满足因果,容易做实时推理和多码率切换,但论文指出它们的率失真效率往往受限。已有人尝试因果卷积和滑动窗口注意力来支持实时,但长时上下文不足或离线训练与流式推理不一致,会带来质量下降。
第二条是基于熵模型的神经压缩,最早在图像压缩中用分层先验、超先验和自回归上下文提高熵估计精度,后来被引到语音编码。它的优点是估计隐变量概率分布后自适应分配比特,更接近信息论效率,但多数语音版本需要全序列上下文,不适合严格流式。论文要填的空缺就是一句话:如何在严格逐帧因果、长上下文建模和基于熵的比特分配三者之间同时成立。
残差矢量量化 × 熵编码: 残差矢量量化指用多层学习码本逐级量化残差的表示方式,每步量化独立进行所以天然满足因果;熵编码指先估计隐变量概率分布再按估计码长分配比特的方式,理论上更接近信息论界但常需全序列上下文。论文指出前者易部署但率失真效率受限,后者高效但难流式化,StreamLSC 就是要在保持因果的同时引入后者的效率。
严格逐帧因果难在哪里
严格逐帧因果要求编码当前帧时只能用当前帧和过去帧的信息。难点有三层。第一层是网络结构:普通归一化会在整条序列上算均值方差,普通卷积在边界补零或看到未来都会破坏因果或改变感受野,长距离注意力若允许全局交互则推理时无法逐帧递推。第二层是量化与熵编码:如果概率预测需要未来隐变量或整序列的超先验,就无法在发送端实时产生部分比特流。
第三层是训练与部署一致性:如果训练时用全序列、测试时硬切成帧,边界统计和感受野都会对不上,造成质量回落。论文提出的 StreamLSC 就是围绕这三层来改:主干全部改成基于状态的流式模块,熵模型改成帧级可流式的通道分组预测,并且保证离线训练与流式推理数值等价,这样可以用全序列加速训练,直接部署为逐帧推理而不用改参数。
StreamLSC 的整体流程是什么
从一个样本的旅程来看,输入语音先被切成互不重叠的帧,每帧做短时傅里叶变换得到频域特征,再送入可流式编码器得到隐表示。编码器输出记为 y,熵模型再从 y 提取辅助特征 z,用 z 预测每组通道的高斯参数均值与方差,然后对 y 做通道分组的自回归熵编码,形成当前帧的部分比特流。解码端按同样顺序恢复 y,再经可流式解码器与逆变换得到波形。关键是帧与帧之间靠显式状态传递保持一致,而不是等整句到齐再处理。
论文用 FS-CRM 块堆叠成多尺度编码器,块内包含因果卷积类模块和本身就可流的模块。下图把离线一次处理整句与逐帧处理做了并排对比,右边还展开了 FS-CRM 块内部的状态传递,红色表示因果卷积或其变体,绿色表示本身可流的组件,读图时重点看帧如何进出以及状态从哪里传到哪里。
这张总体结构图把离线整句处理与逐帧流式处理放在同一版式中对照,左侧区分整句输入输出与分帧输入输出,右侧展开编码器内部与状态传递,适合先建立输入变换、编码、熵编码 3 段分工再看细节。
看图路径: 1. 先看左上离线分支与左下逐帧分支的输入输出切分方式;2. 再看右上多尺度编码器中 FS-CRM 块重复堆叠的位置;3. 最后看右下帧 i-1 到帧 i 的状态与缓存箭头如何传递
论文图 2。原论文 Fig. 2::“Illustration of model architectures. (a) Previous non-streamable method.”。
从图中可见,离线分支把整段音频一次性变换为频域特征并生成完整比特流,而流式分支每帧独立生成部分比特流并通过状态传递保证连续性。右下放大的 FS-CRM 细节显示边界缓存与 RWKV 状态分别沿时间前向传递,当前帧只依赖缓存的历史信息,这正是后文 3 个流式组件要分别解决的边界感受野、帧内统计与长时状态问题。
帧内层归一化如何避免偷看未来
离线设计常用 GroupNorm,它在整条序列上统计均值方差,天然引入非因果依赖。论文提出的帧内层归一化把归一化范围限制在当前帧内部,对频率维与时间维一起求平均与方差,每帧独立计算,不保存也不使用过去帧的状态。这样做的好处是严格因果且无额外缓存延迟,同时在帧内聚合足够多的点来稳定激活,保留短时语音结构。代价是它放弃了跨帧的全局统计,理论上对需要长时平稳性的归一化效果可能不如全局统计,但论文认为在超低码率语音任务中保持因果与低延迟更重要。实现上它直接替换主干中的归一化层,不引入帧间缓存逻辑。
边界缓存因果卷积 × 帧内层归一化: 边界缓存因果卷积负责处理帧边界处的局部卷积感受野,它缓存上一帧末尾 K-1 个时间单元再与当前帧拼接做因果卷积;帧内层归一化负责稳定每帧内部的激活分布,它只在当前帧的频率与时间维度上求均值方差。二者搭配的原因是前者解决跨帧的上下文衔接,后者避免引入跨帧的非因果统计量,组合后卷积主干既保持完整感受野又保持严格因果。
边界缓存因果卷积如何补齐感受野
流式卷积的矛盾是既不能看未来,又要在帧边界处保持与离线卷积相同的感受野。论文的边界缓存因果卷积为核大小为 K 的因果卷积维护一个轻量缓存:处理当前帧之前,把上 1 帧末尾的 K-1 个时间单元取出来拼在当前帧前面再做卷积;处理完后再用当前帧末尾更新缓存。第 1 帧没有历史可用,初始化时用反射填充来与离线卷积对齐,之后各帧只依赖缓存,不再额外填充。
这种把边界上下文处理与主卷积分开的设计,可以直接套用到流式流水线中的任何标准卷积层,额外计算很小。下面两条公式分别对应拼接卷积与缓存更新,符号含义是当前帧输入、历史缓存与卷积输出之间的关系。
当前帧的拼接卷积形式如下,方括号表示把历史缓存与当前帧在时间维拼接后再送入因果卷积。
\[\tilde{y}_{t}=\text{Conv}\big([c_{t-1}^{\text{left}},y_{t}]\big).\]缓存更新规则是每次只保留当前帧末尾固定长度的历史,用于下 1 帧的边界拼接。
\[c_{t}^{\text{left}}=\text{last}_{K-1}(y_{t}).\]两式合起来说明状态就是那段固定长度的边界历史,递推时只前向传递,不引入未来信息,因此能做到与离线计算数值等价。
RWKV 如何用递推状态做长上下文
流式推理需要用有限上下文做高效的状态演化,而不是无限制的全局交互。论文采用 RWKV,它把注意力改写为显式状态更新:在时刻 t 用当前输入与上一时刻状态更新出新状态,状态中紧凑编码历史键值信息与残差,再通过时间混合与通道混合分解把复杂度从二次降为线性,同时保留长依赖能力。关键特性是两种数值等价的模式:训练用 GPT 模式并行算全序列并利用加速,推理用 RNN 模式逐帧递推传播状态,保证严格因果。
这种等价性让模型兼有变换器级的建模容量与循环网络式的流式效率。论文没有报告 RWKV 内部超参数的额外消融,因此状态维度与混合比例对质量的具体贡献在这篇证据中还不能拆分,只能说整体主干在保持因果下达到了与离线版本相当的率失真。
RWKV × RNN 模式 × GPT 模式: RWKV 指把注意力改写为显式状态更新的序列建模模块,通过时间混合与通道混合分解实现线性复杂度;GPT 模式指训练时并行处理全序列的加速计算方式,RNN 模式指推理时只用当前输入与上一状态递推更新的方式。二者数值等价所以可以训练用前者加速、部署用后者保证因果,组合后长时依赖建模与流式推理得以兼顾。
帧级可流式熵模型如何分配比特
在可流式主干之上,熵模型负责把编码器输出 y 压得更省。做法是从 y 提取辅助特征 z,再用 z 预测通道分组级别的高斯参数均值与方差,在这些参数条件下对 y 做通道分组自回归编码。因为预测只依赖当前帧及已编码组的信息,不需要未来帧,所以满足因果且可逐帧产生比特流。论文强调这种超先验加通道分组自回归的组合减少了隐码内部冗余,在低码率下更能保留感知细节。需要区分的是,这里省比特的来源是更准的概率估计,而不是简单丢掉更多信号成分。
原文没有给出熵模型在各分组上码率占比的拆解,因此无法从证据中判断增益主要来自超先验还是分组自回归,只能把两者看作一个整体。
超先验 × 通道分组自回归编码: 超先验指从编码器输出 y 中再提取的辅助特征 z,用于预测每个通道组的高斯参数均值与方差;通道分组自回归编码指在给定这些参数条件下按通道组顺序对 y 做概率建模与熵编码。前者提供全局或组级的分布先验,后者利用已编码组的信息减少隐变量内部冗余,组合后在因果约束下仍能做较准确的自适应比特分配。
训练目标与两阶段对抗训练怎么做
训练采用率失真目标,同时优化重建与码率。具体损失包括时域重建损失、频域多尺度梅尔谱损失,以及使用生成对抗训练时的对抗损失,其中判别器反馈用来提高自然度并减少伪影,损失权重沿用作者先前工作。得益于分段与序列等价的设计,训练直接在全序列上进行以加速优化,得到的模型不改参数即可用于流式推理。论文还借鉴图像压缩做法采用 2 阶段对抗训练:第一阶段关闭判别器,只优化失真相关损失。
最后 10 个轮次才引入判别器做联合优化以提升自然度。这样前期省显存并可用更大批量,后期再补感知优化。消融显示 2 阶段在更低码率下取得相当或略好的质量,但这只是该数据集与该轮次划分下的结果,不能推广为 2 阶段在所有任务上必然更优。关于梯度具体经过哪些分支、哪些参数在第二阶段冻结,原文没有逐项说明,复现时应按代码核对而不能从名称猜测。
数据基线指标与流式输入如何对齐
所有实验在 LibriTTS 上按官方训练验证测试划分进行,以保证可比与可复现。对比基线包括传统编码 Opus、EVS,神经编码 Lyra-v2、EnCodec、FunCodec、DAC、BigCodec、SpeechTokenizer 以及作者自己的非流式版本。客观指标用 ViSQOL 与 PESQ,数值越高越好;主观用 MUSHRA,15 名评分者,对 1.1 kbps 的本方法与 FunCodec 2 kbps、EnCodec 6 与 12 kbps、Opus 6 kbps、Lyra 6 kbps 比较,听音素材选自测试集的 12 秒片段。流式输入对齐细节是推理先做短时傅里叶变换,跳长 160 样点,首段处理 1630 样点对应 16 kHz 下 80 毫秒帧,后续每帧新增 1280 样点并把上 1 帧末尾 350 样点前置,以保证跨帧变换一致。运行速度用实时系数衡量,即推理耗时除以音频时长,系数小于 1 表示快于实时,在 RTX 4090 上测得。
ViSQOL × PESQ × BD-RATE: ViSQOL 与 PESQ 都是本文用的客观感知质量指标,数值越高表示重建语音感知质量越好;BD-RATE 指在相同质量下比较两条率失真曲线所需的平均码率节省比例,负值表示省码率,BD-ViSQOL 与 BD-PESQ 则指在相同码率下质量的平均增益。三者搭配才能同时回答省了多少比特和质量高了多少,单看一点会误判。
客观率失真曲线说明了什么
论文报告的核心客观结论是流式模型与非流式版本表现相当,并在超低码率下超过多个基线。读曲线时要先确认横轴是每秒比特数,纵轴是 ViSQOL 或 PESQ 且越高越好,曲线越靠左上越好。下图左右两幅分别展示 ViSQOL 与 PESQ 随码率的变化,绿色本方法曲线在低码率段明显高于 FunCodec、EnCodec 与 SpeechTokenizer,与蓝色离线版本贴合,说明严格因果没有明显拖累效率。图中 DAC 与 BigCodec 个别点位置较高,但它们多为离线且配置不同,不能只看单点就下整体结论。
下面两幅率失真曲线分别对应两种客观指标,横轴覆盖从数百到上万比特每秒,适合观察低码率段的差距与高码率段的收敛,读图时先看低码率段的垂直差距再看达到同质量所需的水平码率差。
看图路径: 1. 先看横轴码率与纵轴 ViSQOL 和 PESQ 的方向都是越高越好;2. 再比较绿色本方法曲线与蓝色离线版本在各码率点的贴合程度;3. 最后看低码率段本方法相对 FunCodec 与 EnCodec 的位置
论文图 3。原论文 Fig. 3::“Objective evaluation results: ViSQOL and PESQ scores of the proposed model compared with baselines.”。
从像素可见,左图低码率段绿色本方法点高于红色 FunCodec 虚线与黄色 EnCodec 虚线,右图也有类似趋势,而灰色 Opus 在低码率段位置偏低。这支持论文关于低码率效率的判断,但具体节省多少需要看基于整条曲线的 BD 指标,而不是单点差值。
为量化整条曲线的平均差异,论文以 FunCodec 为比较对象报告 BD 指标。下表整理了比较问题、指标方向与数值含义,比较条件是同一 LibriTTS 测试集上的率失真曲线,BD-RATE 负值表示省码率,BD 质量增益正值表示质量更高。
| 比较对象 | 质量指标 | BD-RATE 节省 | BD 质量增益 | 结论方向 |
|---|---|---|---|---|
| FunCodec 离线模型 | ViSQOL 越高越好 | -51.37% | +0.2154 | 省约一半码率且同码率质量更高 |
| FunCodec 离线模型 | PESQ 越高越好 | -53.99% | +0.5156 | 省约一半码率且同码率质量更高 |
该表显示以 FunCodec 为基准时两个指标都有一致方向的增益,幅度上 PESQ 的节省与增益更大。限制是这组数字只在该数据集、该基线实现与该码率范围内成立,换数据集或换基线版本数字会变。论文还提到在 1000 bps 附近与 159M 参数的 BigCodec 可比,以及 DAC 整体指标不如本方法,但这些是曲线层面的描述,没有给出同等粒度的 BD 数值,因此不宜把它们与上表的精确百分比并列解读。
主观听感的补充证据放在下一小节,客观指标好不等于人耳一定觉得好,需要看 MUSHRA 条件是否一致。
主观听感在什么条件下成立
主观部分用 MUSHRA,圆心表示平均分,圆大小表示评分者差异。论文报告本方法平均 92.8 分,接近参考的 95.3 分,中位数 100 分,四分位区间为 89 到 100,分布比 FunCodec 与 EnCodec 更集中。对比条件是本方法仅 1.1 kbps,对手是 FunCodec 2 kbps、EnCodec 与 Lyra-v2 在 6 kbps 甚至 EnCodec 在 12 kbps,以及 Opus 在该测试中约 40.0 分。听音样本来自 LibriTTS 测试集的 6 条语音各截 12 秒,评分者 15 人,样本页链接在论文中给出为第三方演示页。下图把码率与听感分数放在同一平面,左上为好,红色箭头指向更优方向,读图时注意横轴是对数或线性跨度很大,低码率段的水平差距含金量更高。
这张气泡图横轴是码率纵轴是听感分数,气泡大小表示评分波动,适合检验超低码率下听感是否真能超过高码率基线,读图时先看左上角再看气泡大小。
看图路径: 1. 先看横轴码率与纵轴听感分数的方向;2. 再看左上角本方法圆点与其他基线圆点的位置关系;3. 最后注意圆点大小表示评分者间差异而非码率
论文图 1。原论文 Fig. 1::“Subjective evaluation results using MUSHRA.”。
从像素可见,左上角标注为本方法的浅色小圆点位置最高且最靠左,其右侧 FunCodec 圆点略低,中间 Lyra-v2 与 EnCodec 在约 6000 bps 处纵向分布,而 Opus 圆点明显偏低,右端 EnCodec 在约 12000 bps 处分数仍未超过左端本方法。这与正文报告的平均分排序一致。但必须强调成立条件: utterance 数量少、每段 12 秒、评分者 15 人,且只覆盖朗读语音,换成噪声、音乐或电话信道结果可能不同。自动指标与人工评价也不等价,不能用 ViSQOL 的提升直接承诺 MUSHRA 一定提升。
帧长与训练策略的代价是什么
消融要回答两个实际问题:帧做短会不会明显掉质量,2 阶段对抗训练是否真省码率。先看训练策略的对照,比较条件是同一测试集上的实际可运行策略,指标包括码率与两个客观分数,码率越低越好,分数越高越好。
| Training Strategy | Bitrate (bps) | ViSQOL | PESQ |
|---|---|---|---|
| Full GAN Training | 3529.00 | 4.4500 | 3.1800 |
| Two-stage GAN Training | 3377.29 | 4.5398 | 3.1780 |
上表比较全程对抗训练与 2 阶段对抗训练,前者码率为 3529.00 bps、ViSQOL 为 4.4500、PESQ 为 3.1800,后者码率为 3377.29 bps、ViSQOL 为 4.5398、PESQ 为 3.1780。可见 2 阶段在码率更低约 150 bps 的同时 ViSQOL 更高,PESQ 基本持平。论文推测原因是第一阶段不受对抗损失干扰,能更专注失真优化,且省显存后可用更大批量使训练更稳。但这仍是推测,没有梯度与批量大小的对照证据,不能当作因果结论。
帧长的影响用完整原表呈现,原表只有帧长与 ViSQOL 两行,列数虽少但能直接回答低延迟是否可行,表前后需要结合延迟代价来读。
| Frame length | 80 ms | 160 ms | 320 ms | 640 ms |
|---|---|---|---|---|
| ViSQOL | 4.8257 | 4.8283 | 4.8315 | 4.8319 |
该原表显示 80 ms、160 ms、320 ms、640 ms 对应的 ViSQOL 分别为 4.8257、4.8283、4.8315、4.8319,帧长增大质量单调微升,但 80 ms 与 640 ms 差距仅约 0.006,说明最短 80 ms 帧已能保持高重建质量。限制是该表只报告 ViSQOL,没有 PESQ、主观分与不同码率下的表现,也没有延迟与计算量的实测拆分,因此只能支持在该配置下短帧可用的判断,不能推广到所有码率与所有内容。论文另报告模型 149.2M 参数、实时系数 0.0539,快于实时但大于 FunCodec 与 EnCodec 的约 0.005 量级,小于 BigCodec 的约 0.015,说明长上下文与熵模型带来了额外开销,部署时要在质量与速度之间权衡。
哪些结论还不能推广
首先,未胜出与未评测的范围要说清。速度上本方法实时系数高于几个轻量卷积基线,参数量也达到 149.2M,说明效率提升伴随模型变大与推理变慢,不能说全面更优。其次,帧长消融只看 ViSQOL,缺少 PESQ 与主观验证;训练策略消融只在两个测试子集的合并结果上报告,没有分集差异与多次随机的波动。再次,客观曲线中 SpeechTokenizer 表现较差,论文解释是其第一层残差量化偏语义表示,不保留细粒度声学细节,这属于任务目标不同,不能理解为同条件下的胜负。
最后,所有主结果都基于 LibriTTS 朗读语音,没有报告噪声、混响、音乐或多说话人重叠下的表现,也没有误码与丢包等传输损伤测试,因此卫星与实时通信中的鲁棒性仍待验证。缺证据不代表方法有错,只是不能把趋势外推到每一类数据与每一步部署。
复现第一步要做什么
值得尝试的时机是需要在严格逐帧因果与超低码率下同时保证质量,且能接受百兆级模型与约 0.05 实时系数的开销。如果只能跑小模型或 CPU 实时,还需要补延迟与内存实测。复现第一步是按官方划分准备 LibriTTS,并在编码前复刻短时傅里叶变换对齐:跳长 160 样点,首帧 1630 样点对应 80 毫秒,后续每帧新增 1280 样点并前置上 1 帧末尾 350 样点,否则边界变换对不上会导致与离线结果不一致。第二步是先关判别器训失真目标,核对码率与 ViSQOL 是否接近 2 阶段表的量级,最后 10 轮再引入判别器。
关键超参数与信息条件要保留:帧长、跳长、缓存长度 K-1、归一化只在帧内统计、RWKV 训练用并行模式推理用递推模式。关于代码与权重,论文正文只给了一个第三方演示页链接用于试听样本,不能将其当作作者已开源代码或可下载权重的证据,三者要分开核实。
如何一句话复述方法与证据边界
合起来看,StreamLSC 的分工很清晰:边界缓存解决卷积在帧边界的历史拼接,帧内归一化解决统计量不能跨帧的问题,RWKV 递推状态解决长时依赖的因果建模,超先验加通道分组自回归解决帧级比特分配。四者组合后训练可用全序列加速,推理可逐帧输出部分比特流且数值等价。证据支持的是在 LibriTTS 与所列基线实现下,流式模型与离线版本相当,并相对 FunCodec 取得约一半码率的节省与 0.2154 与 0.5156 的质量增益,以及在小规模 MUSHRA 中以 1.1 kbps 超过更高码率基线。
代价是模型更大更慢,且结论目前只在朗读语音与给定码率范围内得到验证。初学者复述时抓住输入分帧、状态前传、分组熵编码这 3 步,再补上成立条件与代价,就不会夸大论文价值。
📎 论文与评分元数据
排名:前50% | 文档类型:方法研究 | arXiv 原文
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
评分规则:type-aware-v1
评分模型:muse-spark-1.3-contributor
评分请求协议:openai_responses

