英文题目:DiFlow-TTS: Compact and Low-Latency Zero-Shot Text-to-Speech with Discrete Flow Matching
会议身份:
conference:interspeech:2026:conference-paper-id:nguyen26d_interspeech
来源为官方会议 PDF;图片依据原页像素,表格数字依据原文引用。PDF 文字层不视为原始 TeX,未可靠恢复的结构不作推断。
标签:#流匹配 #高效推理 #零样本 #语音 #文本到语音
评分:6.6/10 | 创新 1.4/2 | 技术严谨 1.1/1.5 | 实验充分 1.1/1.5 | 清晰度 0.8/1 | 影响力 0.9/1.5 | 开源 0.0/1.5 | 可复现 0.3/0.5 | 工程/实践 1.0/1.5
排名:前50% | 文档类型:方法研究
👥 作者与机构
- Son Nguyen:机构信息未能从会议 PDF 纯文本可靠映射
- Thanh Tran:机构信息未能从会议 PDF 纯文本可靠映射
- Nghia Huynh:机构信息未能从会议 PDF 纯文本可靠映射
- Son Hy:机构信息未能从会议 PDF 纯文本可靠映射
- Van Nguyen:机构信息未能从会议 PDF 纯文本可靠映射
📌 核心摘要
零样本语音合成需用数秒参考音频复现未见说话人的音色与韵律,同时保证内容准确与低延迟。DiFlow-TTS先用冻结的预训练因子化编解码器(Factorized Codec,FACodec)将参考语音解耦为韵律、内容、声学离散单元与说话人嵌入,再由音素内容映射器(Phoneme-Content Mapper,PCM)将音素序列映射为内容单元与内容嵌入,最后由因子化离散流去噪器(Factorized Discrete Flow Denoiser,FDFD)以内容嵌入与参考韵律声学线索为条件并行生成韵律与声学单元,经解码器重建波形。该框架直接在离散空间学习概率速度场,源分布为全掩码序列,目标分布因子化为韵律与声学分布乘积,并以独立韵律头与声学头预测后验。与自回归逐步生成和连续扩散绑定训练采样配置不同,其离散并行去噪支持采样步数灵活调节。与连续流匹配相比,该离散因子化设计减少了声学细节耦合带来的推理开销。在LibriSpeech test-clean跨句合成、3秒提示音、128次函数评估下取得UTMOS 3.98、WER 0.05、F0准确率0.88与F0 RMSE 7.97,韵律与自然度领先同表基线,但SIM-O为0.45,明显低于MaskGCT的0.67与F5-TTS(100K小时)的0.66。该结论限于英语朗读干净提示音,噪声、多语言与长尾音色外推不足,小模型16步可在0.05秒级实时因子下保持可用质量。其适用边界受限于干净英语朗读,噪声与跨语言外推尚未验证,128步设置的延迟仍高于低步配置。
🔗 开源与复现资源
- 第三方资源:https://github.com/facebookresearch/libri-light — 链接可访问(HTTP 200) 可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
输入是什么,要输出什么,为什么零样本很难?
这篇论文研究的输入是两样东西,一段待合成的文本和一段只有几秒的参考语音,目标是输出一段读新文本但听起来像参考说话人的语音。初学者可以把任务想成 1 次跟随样本走完的流水线,文本决定说什么,参考语音决定用谁的声音和语气,模型必须在没有见过该说话人的情况下完成迁移。
难点在于 3 个属性纠缠在一起,语言内容决定音素顺序,韵律决定基频与能量起伏,音色与声学细节决定听感身份,如果直接把波形丢给模型,模型容易把内容说错或把音色学偏。论文选择先用预训练的因子化编解码器把波形拆成离散记号,韵律用 1 层码本,内容用 2 层码本,声学细节用 3 层码本,每层词表大小都是 1024,采样对应每秒 80 个记号,说话人身份另存为一个向量。这样语言骨架可以单独从文本得到,风格可以单独从提示音得到,合成时再拼回去。
神经音频编解码 × 残差向量量化: 神经音频编解码负责把连续波形压缩成可重建的离散符号,残差向量量化负责用多级码本逐级逼近残差以保真;二者搭配的原因是单级量化容量不足、多级残差可以分层保留细节,组合后 DiFlow-TTS 才能把语音拆成韵律 1 层、内容 2 层、声学 3 层共 6 层码本分别建模。
零样本的额外约束是低延迟与小模型,传统自回归方法逐个生成标记质量好但慢,扩散方法训练与采样耦合换配置就要重训,连续流方法在无界空间做密度估计容易产生伪影。论文因此提出直接在离散空间做流匹配,用掩码序列为起点、真实因子化序列为终点,中间按调度插值,学习一个能把掩码逐步恢复成真实的概率速度场。理解这一点后,后续所有模块都可以归为两类动作,要么提供干净的条件,要么执行带条件的去噪。
已有路线各解决了什么,又留下了什么限制?
第一条路线是基于语言模型的自回归合成,代表是 VALL-E 与 VoiceCraft,它们把神经编解码器的离散标记当作语言来建模,推理时从提示音的声学标记向后延续。优点是自然度与保真度得到验证,缺点是必须一步一步生成,长句延迟高。第二条路线是非自回归的扩散与连续流,代表是 NaturalSpeech 2 把离散标记当连续特征用扩散生成,NaturalSpeech 3 进一步把内容韵律声学拆开用多个扩散模型分别建模,F5-TTS 与 OZSpeech 用流匹配加速。
优点是可并行,但扩散的训练噪声表与采样配置紧耦合,改一步就要重训,连续流仍在高维无界空间优化。第 3 条路线是离散空间的迭代精炼,已在文本、蛋白质、图像与图上验证,核心是用马尔可夫链刻画生成动力学,但此前很少用于零样本语音合成。
自回归生成 × 非自回归生成: 自回归生成负责逐个按顺序预测下一个音频标记以保证连贯,适合语言模型式建模但延迟随长度累积;非自回归生成负责 1 次或少量迭代并行修正全序列以降低延迟;二者搭配的理由是零样本场景既要质量又要速度,组合意义在于 DiFlow-TTS 选择非自回归的离散流,用多步精炼替代逐点生成。
论文把自己定位为第四个位置,即把离散流匹配首次系统用于因子化语音码本。它沿用 FACodec 作为目标表示,理由有两点,一是该编解码器已在多说话人大语料上预训练,解耦相对可靠,二是它天然给出韵律内容声学 3 路,允许独立建模。与 NaturalSpeech 3 用多个扩散模型不同,DiFlow-TTS 用一个统一的去噪器加双头同时处理韵律与声学,与 OZSpeech 的单步连续流不同,它保留多步可选以换质量。这种对照说明论文不是简单换 backbone,而是把表示选择与生成机制一起改了。
论文把问题形式化成什么,可核对的成功标准是什么?
论文把零样本合成形式化为因子化码本上的条件标记预测。记目标序列为韵律序列与声学序列的拼接,源分布是全掩码序列,目标分布是韵律与声学独立相乘的联合分布,时间调度控制从源到目标的插值比例。训练时随机采样时间步与部分损坏序列,要求去噪器在给定多模态条件下恢复被掩码位置的真实标记,测试时从全掩码出发用离散求解器迭代恢复。
成功标准是多维的,自然度用 UTMOS 越高越好,内容准确率用词错误率越低越好,说话人相似度用余弦越高越好,韵律保真用基频与能量分档准确率越高越好、均方根误差越低越好,效率用实时率越低越好、参数量越小越好。主观上另有 30 名听众对自然度、可懂度与相似度打 1 到 5 分。这种多指标设计意味着不能只看一处变好,必须同时检查是否以相似度或延迟为代价。
方法全景:一个样本如何从文本和提示音变成波形?
沿一个样本走一遍最清楚。假设文本是要读的句子,提示音是 3 秒的参考语音。第一步语音分词器对提示音做编码,得到韵律标记、声学标记与说话人向量,内容路用零向量占位表示不迁移。第二步音素内容映射器把文本转成音素,经音素编码器、时长预测器与长度调节器展开到与语音标记等长的序列,再经内容预测器输出内容标记与内容嵌入。
第三步因子化离散流去噪器把提示的韵律声学嵌入、损坏的目标嵌入、内容嵌入拼成统一输入,经变换器主干与双头预测韵律与声学的后验分布,用离散求解器多步采样得到完整标记。第 4 步把生成的内容标记、韵律标记、声学标记连同提示的说话人向量送入编解码器解码器重建波形。整个过程语言来自文本,风格来自提示,生成在离散空间完成。
连续流匹配 × 离散流匹配: 连续流匹配负责在梅尔谱或连续特征空间学习从噪声到目标的速度场,优化在无界高维空间进行;离散流匹配负责直接在有限码本索引上定义掩码到真实的插值路径和概率速度;搭配原因是连续空间易出现分布外伪影而离散空间结构有限,组合后 DiFlow-TTS 避免了把离散标记先转连续再预测流量的迂回。
下图是论文的总览,左侧是条件来源,中间是去噪,右侧是解码,箭头方向即数据流向,初学者应先认清哪条线是内容、哪条线是风格。
看图路径: 1. 先从底部语音提示经编码器分出的三路箭头看风格来源;2. 再看底部文本经 PCM 分出的内容嵌入与内容标记两路去向;3. 最后看顶部声学与韵律预测如何汇入解码器合成波形
论文图 1。原论文 Figure 1:“Overview of DiFlow-TTS. A Codec Encoder decom- poses the speech prompt into a speaker embedding, prosody, and acoustic tokens for zero-shot style transfer, while the Phoneme-…”。
看完此图应能复述闭环,编码器只从提示音取风格,映射器只从文本取内容,去噪器同时产出韵律与声学,解码器只做重建不做选择。若把内容嵌入拿掉,去噪器将失去语言约束,若把说话人向量拿掉,韵律将缺少身份约束,这正是后文消融要验证的依赖。
两个核心组件内部做了什么计算?
音素内容映射器的计算分 4 步。音素编码器用 2 层前馈变换器把音素变成隐藏表示,时长预测器估计每个音素对应多少语音标记,训练用真实时长、推理用预测时长,长度调节器按整数对齐把音素表示上采样到长度为 L 的序列,内容预测器再用 2 层前馈变换器分层提取对应两个内容码本的表示,一路经投影得到内容嵌入,一路经内容头输出词表上的 logits。该模块同时承担对齐与语言建模,时长用对数域均方误差监督,内容标记用交叉熵监督。
因子化离散流去噪器的计算分 3 段。上下文建模把参考与损坏的韵律声学标记分别查表成向量,沿时间拼接,内容条件用映射器的内容嵌入而参考内容用零向量,再给每种属性加可学习的属性类型嵌入以区分身份,最后沿属性维拼接成统一嵌入。主干把统一嵌入沿属性展平投影后送入 12 层扩散变换器块,用说话人与时间步之和构成的全局向量做自适应层归一化调制,末端加长跳连并丢弃提示部分得到韵律声学隐藏表示。
因子化预测把该表示切成韵律与声学两部分,分别经韵律头与声学头输出各自词表上的分布,拼接即为对完整目标的后验估计。
音素内容映射器 × 因子化离散流去噪器: 音素内容映射器负责把音素序列按时长展开并预测内容码本与内容嵌入,提供语言骨架;因子化离散流去噪器负责以内容嵌入、提示韵律声学标记和说话人向量为条件,同时去噪韵律与声学流;搭配原因是内容不应从提示音拷贝而风格需要拷贝,组合后语言与风格解耦,克隆时只迁移后者。
下图是详细结构,左侧虚线框区分冻结与可训练,右侧展示掩码、提示与待生成的拼接方式,初学者应重点看属性嵌入相加与切分双头的位置。
看图路径: 1. 先看左上冻结的语音分词器与左下可训练的映射器颜色区分;2. 再看右下 DiT 块中说话人与时间步如何汇成全局条件;3. 最后看右上声学头与韵律头如何从同一主干分叉预测
论文图 2。原论文 Figure 2:“Detailed architecture of DiFlow-TTS. We formulate zero-shot TTS as token prediction over a factorized codec token space.”。
此图说明统一主干负责跨属性注意力,双头负责各自分布,属性嵌入是防止 3 路混淆的关键。若去掉属性嵌入,模型被迫把所有记号同等对待,容易纠缠,这与消融中自然度与韵律误差变差一致。
训练目标由哪三项组成,参数如何更新?
训练目标是三项加权和。第一项是时长损失,对预测与真实时长的对数做均方误差,权重为 0.5。第二项是内容损失,对内容预测器的 logits 与真实内容标记做交叉熵,权重为 1.0。第三项是因子化离散流去噪损失,对不同掩码比例下被掩码位置的后验做交叉熵,权重为 1.0。优化器用 AdamW,学习率 1×10−4,权重衰减 0.01,预热 200K 步,总训练 315K 步,批量 16,在 4 卡 A100 上完成。
语音分词器即 FACodec 在训练中冻结,只提供目标标记与说话人向量,映射器与去噪器可训练。调度采用时间平方函数,随时间单调从全掩码走向全真实。论文未报告梯度是否在编解码器处截断之外的细节,也未报告不同损失的梯度冲突处理,因此复现时应先按冻结编解码器、联合训练两模块实现,若出现内容与去噪互相干扰,再考虑分阶段预热。
推理时时长用预测值,内容嵌入来自映射器,去噪从全掩码出发按设定步数迭代,步数即函数求值次数,可按延迟需求在 4 到 128 之间选择。
数据、基线与指标的比较条件是否一致?
训练数据是 LibriTTS 的 470 小时子集,经去首尾静音、保留 1.0 到 16.6 秒且多于 3 个词的片段,16 kHz 采样,用 FACodec 以每秒 80 标记生成 1 层韵律、2 层内容、3 层声学共 6 层目标,用蒙特利尔强制对齐得到音素时长再乘以 80 换算成标记数。评估用 LibriSpeech test-clean 共 2.2 小时,每句 4 到 10 秒,做跨句任务,即同一说话人的一个样本做提示、另一个样本的文本做目标。
基线覆盖自回归的 VoiceCraft 与 VALL-E、连续流扩散的 NaturalSpeech 2 与 F5-TTS 与 OZSpeech、掩码生成的 MaskGCT,训练数据从 500 小时到 100K 小时不等,论文明确标注各基线是官方权重、复现或作者提供样本,因此数据量并不一致,比较时必须把数据效率单独讨论。指标方向为 UTMOS 越高越好,词错误率用 HuBERT-large 转写越低越好,说话人相似度用 WavLM-TDNN 余弦越高越好,韵律把基频与能量按均值分成高中低三档算准确率并另算均方根误差,延迟用单卡 A100 端到端实时率越低越好。主观另有 30 人打分。
下表整理训练配置,数字均来自原文连续描述,便于复现时一一核对。
| 配置项 | 优化器 | 学习率 | 批量 | 硬件与步数 | 损失权重 |
|---|---|---|---|---|---|
| DiFlow-TTS 训练 | AdamW | 1×10−4 | 16 | 4×A100,315K 步,200K 预热 | 时长 0.5,内容 1.0,去噪 1.0 |
| 映射器结构 | FFT | 隐藏 768 | 音素编码 2 层 | 时长预测器隐藏 256 | 丢弃 0.5 与 0.2 |
| 去噪器结构 | DiT 12 层 12 头 | 隐藏 768 | 旋转位置编码 | 说话人 256 维 | 调度为时间平方 |
上表说明训练预算中等,未用上 10000 小时数据,结构紧凑是后文小参数与低延迟的前提。模型参数不含编解码器,延迟测的是端到端含解码。
若要公平复现基线延迟,需同卡同批量同为端到端,否则实时率不可比。论文对 MaskGCT 注明需真实总时长推理,这一点在比较可懂度时要记住。
主结果在什么条件下成立,代价是什么?
主结果用 3 秒提示与 128 步评估。论文报告 DiFlow-TTS 在自然度与韵律上最强,内容错误率与 OZSpeech 并列最好,说话人相似度排第三。作者用有限解释说明相似度不占优可能源于 DiT 中简单的全局自适应归一化条件,未来可用上下文音色机制改进,这属于支持性解释而非已验证因果。值得强调的是训练数据效率,DiFlow-TTS 仅用 470 小时,约为其他基线的 1.1 倍小到 212.8 倍小,仍能在韵律误差上领先,这支持因子化离散建模在有限数据下捕捉细粒度起伏的能力。
主观听感上 DiFlow-TTS 在自然度可懂度相似度三项均领先,作者指出客观相似度用的嵌入余弦可能惩罚人耳不敏感的伪影,而人评更看重可感知的音高音色韵律,这解释了客观第三与主观第一的背离。
函数求值次数 × 实时率: 函数求值次数负责度量去噪网络被调用多少步,决定迭代精炼程度;实时率负责度量生成 1 秒语音需要的实际秒数,决定部署延迟;二者搭配的原因是步数越多质量趋好但延迟上升,组合意义在于 DiFlow-TTS 用 4 步、16 步、128 步三档给出可部署的质量延迟曲线而非单点。
延迟与体积方面,论文另给 4 步与 16 步的实用档,4 步时实时率约 0.03 秒,16 步约 0.05 到 0.07 秒,128 步约 0.39 秒。小变体把注意力头从 12 减到 8、层数从 12 减到 8,得到 122M 参数。原文称小变体 16 步在自然度可懂度相似度与韵律误差上具竞争力,比除 OZSpeech 外的基线快 5.2 到 34.0 倍,体积小 1.2 到 11.7 倍。下表用消融行的完整数字说明各部件的贡献,表前问题是去掉说话人、内容与属性条件后哪项指标最敏感,公平条件是同为 128 步同数据,指标方向为 UTMOS 与准确率越高越好、错误率越低越好。
| 条件 | UTMOS | WER | SIM-O | F0 准确率 | F0 均方根误差 |
|---|---|---|---|---|---|
| 完整 DiFlow-TTS | 3.978 | 0.048 | 0.454 | 0.884 | 7.972 |
| 去说话人嵌入 | 3.902 | 0.057 | 0.378 | 0.681 | 20.868 |
| 去内容嵌入 | 3.077 | 0.063 | 0.333 | 0.867 | 8.878 |
表后解释是主要收益与代价。去掉说话人后相似度从 0.454 掉到 0.378,基频准确率(%)从 0.884 掉到 0.681,均方根误差从 7.972 恶化到 20.868,说明韵律不仅依赖内容更依赖身份,没有身份条件会产生多余变化。去掉内容后自然度从 3.978 掉到 3.077,相似度也掉到 0.333,说明内容嵌入是语言约束与说话人适配的共同基础。未胜出项是去掉属性嵌入后 UTMOS 反而微升到 3.983,但词错误率(%)与韵律变差,说明属性嵌入提升保真但引入轻微冗余,不能单看自然度就断言无用。
步数、提示长度与噪声如何改变结论?
步数分析显示从 1 到 128 增加时 UTMOS 明显上升,32 步左右趋稳,64 步达优,之后边际改善小,但实时率随步数上升,128 步约 0.394 秒。因此 128 步是论文表 1 的最优质量档,4 步与 16 步是可部署档,用户应按延迟预算选档而非默认最大步数。属性嵌入的细粒度消融显示去掉韵律或声学任一属性嵌入都会降自然度并抬高对应误差,证明模型需要显式区分 3 路。下图是不同提示长度下 UTMOS 随步数的变化,导读是先看 3 条曲线的相对高度,再看每条随步数的斜率。
看图路径: 1. 先确认横轴是函数求值次数 16 到 128 纵轴是 UTMOS;2. 再比较 1 秒提示曲线与 3 秒 5 秒曲线的高度差距;3. 最后观察 32 到 64 之后曲线变平说明的收益递减
论文图 5。原论文 Figure 4:“UTMOS vs. NFE for different prompt durations.”。
图中可见 5 秒提示最高,3 秒次之,1 秒明显偏低,说明更长提示带来更好重建与更强敏感性。从 16 到 128 步 3 条曲线都上升,表明多步精炼对各种长度都有效,但 1 秒提示的天花板低,提示太短时加步数也补不回缺失的身份信息。噪声分析用加性噪声构造不同信噪比的提示,所有模型在 UTMOS 与词错误率上都随信噪比下降而恶化,但 DiFlow-TTS 在各噪声级保持最高 UTMOS,词错误率几乎不退化,与 OZSpeech 趋势相近,而其他基线掉得明显。这支持离散因子化在脏提示下仍能保语言内容,但论文只测了 LibriSpeech test-clean 的合成噪声,未测真实远场混响与多人重叠,因此不能推广到所有真实噪声。
哪些边界没有测,哪些推测尚未验证?
论文明确承认的局限是音色克隆质量未达预期,当前用全局自适应归一化注入说话人信息较为简单,未能捕捉局部音色细节。框架依赖 FACodec 的解耦,若解耦本身有偏,误差会传导到生成端。作者提出未来可换用把音色隐式编入量化器的编解码器,或把全局调制换成针对音色的上下文条件,以更好捕捉局部特征。未评测的边界包括非英语、长文本、跨语言克隆、真实噪声与远场,以及更长提示超过 5 秒是否继续提升。
未验证的推测是更大数据或更强说话人条件必然带来相似度反超,原文只说是有前景的方向,没有给出数据,因此应表述为可能与待验证。资源方面训练用 4 卡 A100,推理在单卡 80G 上测实时率,不同显卡与批量下数字会变,不能把 0.03 秒当成所有设备的承诺。总体趋势不等于每步都成立,例如步数从 64 到 128 的提升很小,个别样本可能波动。
要复现应先做什么,需要哪些信息条件?
复现先做三件事。第一是准备表示,先装好 FACodec 并冻结,用它对 LibriTTS 子集按 16 kHz、每秒 80 标记生成 6 层目标,用强制对齐得到音素时长并乘 80 换算,保留 1.0 到 16.6 秒的片段。第二是实现映射器,按音素编码 2 层、时长预测器隐藏 256 滤波 1024 核 3 丢弃 0.5、内容预测器同编码器结构、隐藏 768 实现,时长用对数均方误差、内容用交叉熵监督。第三是实现去噪器,按隐藏 768、12 层 12 头、旋转位置编码、前馈 4 倍宽实现,属性嵌入、零内容参考、提示拼接、展平投影、双头预测的顺序不能错,调度用时间平方,损失权重按 0.5、1.0、1.0 求和。
评估用 LibriSpeech test-clean 跨句协议,3 秒提示,报告 UTMOS、词错误率、相似度、韵律三档准确率与均方根误差、实时率。论文给出代码与权重的基线链接较多,但 DiFlow-TTS 自身是否公开需以正文声明为准,本次证据未给出可用仓库,因此应视为需自行实现。第三方资源中 Libri-Light 仓库当前可用,状态 200,可用于理解词错误率转写模型的预训练来源,但不是本方法的训练数据。
超参数中学习率、批量、步数、预热与权重已齐,缺的是随机种子、掩码采样分布细节与离散求解器伪代码,补做时应固定种子并记录不同步数的完整曲线。
何时值得尝试这个方法,如何一句话记住它?
当任务是零样本、资源受限、延迟敏感,且已有可靠的因子化解码器时,值得尝试把生成搬到离散空间并用双头同时处理韵律与声学。若追求极致音色相似或只有 1 秒极短提示,应先补更强的说话人条件或更长的提示,而不是一味加步数。若提示是真实噪声,应先做增强或用论文的噪声曲线做预期管理。一句话记住它是文本管说什么、提示管像谁、离散流管如何从掩码一步步恢复韵律与声学。
下表整理效率与体积的可运行对照,表前问题是在相近延迟下谁的质量更高,公平条件是同为 3 秒提示端到端,指标方向为实时率与参数越小越好、UTMOS 越高越好。
| 模型 | 参数量 | 函数求值次数 | 实时率 | UTMOS | 备注 |
|---|---|---|---|---|---|
| OZSpeech | 145M | 1 | 0.03 | 3.15 | 单步最快但自然度低 |
| DiFlow-TTS-Small | 122M | 16 | 0.05 | 3.89 | 小体积实用档 |
| DiFlow-TTS | 164M | 16 | 0.07 | 3.86 | 质量延迟均衡 |
表后解释是主要收益与代价。小变体 16 步比 OZSpeech 慢 0.02 秒,但自然度从 3.15 提到 3.89,代价是多 15 步计算。完整版 16 步进一步压低韵律误差,但参数与延迟略增。
未胜出项是 4 步档自然度仅 3.3 左右,说明单步或极少步并非本方法的优势区,若必须单步应选 OZSpeech 类设计。综合看,DiFlow-TTS 的价值不在单点第一,而在用小模型与可选步数给出一条可部署的曲线,这正是离散流值得继续研究的原因。
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
- 评分规则:type-aware-v1
- 评分模型:muse-spark-1.3-contributor
- 评分请求协议:openai_responses


