📄 关系合成:用参考结构重组检索声音的拟音生成方法
标签:#音频生成 | #检索增强 | #信号处理 | #环境声
评分:6.8/10 | 创新 1.5/2 | 技术严谨 1.2/1.5 | 实验充分 1.2/1.5 | 清晰度 0.8/1 | 影响力 0.8/1.5 | 开源 0/1.5 | 可复现 0.3/0.5 | 工程/实践 1/1.5
👥 作者与机构
- Keren Shao:机构信息未在 arXiv HTML 中可靠披露
- Ayaka Kawano:机构信息未在 arXiv HTML 中可靠披露
- Shlomo Dubnov:机构信息未在 arXiv HTML 中可靠披露
📌 核心摘要
任务输入是检索到的源音频 S、独立的时间参考 R 与文本提示 P,输出是新音频 Y,要求 Y 的事件类声学身份接近 S,时间组织接近 R,且 Y 中不持续残留 S 或 R 的局部波形。难点在于源与参考可能来自不同声学空间,直接逐点匹配会迫使局部切片对齐,细粒度易破坏衔接,粗粒度又牺牲时间自由度并留下长段复制。方法先把 S 与 R 切成 180 ms、跳长 100 ms 的颗粒,用手工声学嵌入表示颗粒,再由关系方法 M 选出与参考等长的源颗粒序列并叠加成载体 X_M,最后把 X_M 与 P 一起送入预训练生成器得到 Y。关系压力来自三类循环结构中的一种与有向幅度运动的组合,前者规定哪些时刻应相似或相异,后者规定幅度升降的相对强弱与方向,求解器在源自相似度上实现这些关系。相对直接用源载体的对照,在 248 个三元组的 Stable Audio 3 Small-SFX 评测中因子神谕把参考起始点 F1 从 0.322 提高到 0.343,把参考包络 L1 从 0.095 降到 0.086,同时源端 2 秒最佳匹配相似度从 0.353 降到 0.299。结论限于同类源、人声模仿参考与所用生成器设置,循环结构与幅度运动的相对贡献随变体变化,原文未披露训练、推理或部署成本。
🔗 开源与复现资源
- 第三方资源:https://smoothken.github.io/relational_synth_demo/ — 链接可访问(HTTP 200)
可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
拟音任务要同时回答什么是什么和何时发生
刚接触音频生成的读者可以先把拟音理解成给画面配脚步声、关门声、动物叫声这类环境音效。导演既关心听起来像什么材质和事件,也关心每一下落在什么时刻、节奏多密、多强多弱。论文把前者记为声学身份,后者记为时间组织。检索增强生成给这类任务带来新的材料:一方面文本很难描述清楚某种水声的颗粒感,检索到的真实录音可以补足;另一方面如果把检索录音直接喂给神经网络,网络容易把整段波形抄进输出,听感上像换了个底噪的复制。作者资源页面展示了试听例子,当前可用,但这只说明例子可听,不代表代码或权重已公开。
检索源音频 × 参考音频: 检索源音频指提供声音是什么的已有录音,负责音色和事件类别;参考音频指提供何时如何发生的另一段录音,负责人声模仿给出的节奏和起止。两者分工后,合成不需要把参考的音色搬过来,也不需要把源的时间照抄,从而把声音身份和时间组织解耦。
本篇的输入是两个独立音频。源记为 S,是与目标同类的环境声,提供可选的声学材料;参考记为 R,在实验里是人声模仿,提供时间结构;文本提示 P 说明类别。输出是新的音频 Y。
目标是 Y 听起来像 S 那类事件,时间起伏像 R,但 Y 里不应长期出现 S 或 R 的原波形片段。教学例子:假设 S 是一段狗吠录音,R 是人用嘴模仿的汪汪节奏,理想输出是狗吠音色但按人模仿的节奏重新排列,而不是把人声或原狗吠整段搬运。
已有路线为什么会在粒度和复制之间两难
相关路线有两条。一条是时间事件控制和人声模仿控制,明确把事件类别和时间分开给,但通常需要专门的控制接口。另一条是检索增强的音频生成,把检索音频直接作为条件注入生成器,声学细节丰富,但容易出现持续性复制。拼接合成是第三条老路线,它不直接注入波形,而是从源里挑小段再拼接,天然不容易整段复制。
拼接合成 × 关系合成: 拼接合成指从源音频里挑选短颗粒再拼接成新的载体;关系合成仍保留这种挑选和拼接,但把逐点匹配参考内容改成匹配参考内部的时间关系。两者搭配后,颗粒选择既保留源的声学连续性,又受参考的非局部结构约束,多了在不复制波形的前提下迁移时间型的能力。
论文指出的粒度两难是:如果用很细的颗粒做逐点匹配,自由度够,能跟上参考的时间,但要把环境声和人声这种声学空间不同的局部切片硬比,起止和拼接会别扭,也看不见更大的重复结构;如果用较长的片段,源内部连续性好,有利于保住音色,但逐帧自由度下降,且更长的连续源片段会存活下来,不利于抑制复制。关系合成就是为了松动这个此消彼长的权衡而提出的。
论文把目标写成哪三个可测要求
论文把期望形式化为声学身份接近源、时间组织接近参考、与两者之间的持续局部复制都很小。声学身份用事件类别和音色衡量,时间组织用包络和 onset 节奏衡量,持续复制用局部最匹配片段的相似度做诊断。注意声学比较在评测时是对目标 T 而非对源 S,因为目标与源同类但录音不同,直接追源相似度会奖励复制行为。
\[\mathcal{A}(Y)\approx\mathcal{A}(S),\qquad\mathcal{T}(Y)\approx\mathcal{T}(R),\qquad\Pi(Y,S),\Pi(Y,R)\ \text{small}.\]这个公式只是目标声明,不是可直接优化的损失。真正的优化对象是后文的关系损失、有向幅度运动损失和拼接过渡正则三部分。理解这一点很重要:后文所有图和表都是看这 3 个要求是否同时成立,而不是只看某一个指标最低。
整体流程如何从两段输入得到最终输出
方法记为 M,核心变量是在每个参考时刻 t 选择哪个源颗粒。源和参考都先切成 180 毫秒、跳 100 毫秒的颗粒,记源颗粒为 s1 到 sM,参考颗粒为 r1 到 rN。选择路径记为 x,xt 表示第 t 个参考时刻用第几个源颗粒实现。把选出的源颗粒按顺序重叠相加,就得到载体 XM。载体再与文本提示一起条件预训练生成器 G,得到神经输出 Y。
在实验里 R 是与目标同类的人声模仿,S 是同类的环境声,P 是写明类别的写实环境声提示。图 1 把这条链路画得很清楚,左侧是两路输入,中间是选择机制,右侧是载体经生成器到输出。
载体 × 神经输出: 载体指由源颗粒按选择路径重叠相加得到的中间音频,只含源的材料但按参考结构重排;神经输出指载体与文本提示共同条件预训练生成器后得到的最终音频。载体负责隔离参考波形不直接进入生成器,神经输出负责把颗粒拼接痕迹平滑并补足真实感。
下面这段是读图说明,先沿从左到右的箭头看主路径,再对比中间虚线框内逐点基线与黄色框内关系方法的连线方式有何不同,重点看权重是连在参考时刻之间还是连在参考与源之间。
看图路径: 1. 先看左侧参考与源两条输入,再看中间逐点基线与关系方法的连线差异;2. 注意关系分支中参考时刻之间先连权重,再映射到源颗粒的选择;3. 最后沿合成载体到神经生成器再到神经输出的主箭头看信息流向
论文图 1。原论文 Figure 1::“Relational synthesis pipeline. Reference R specifies temporal relations while source S supplies selectable acoustic material.”。
图中左侧蓝色为参考 R 波形,橙色为源 S 波形。中间左侧虚线框是逐点拼接基线,每个参考颗粒用竖直箭头直接找一个源颗粒,跨域距离决定选择。中间右侧黄色框是关系方法,参考颗粒之间先用弧线连出带权重的关系,源颗粒的选择用虚线箭头实现这些关系,而不直接比较参考与源的音色。右侧橙色为合成载体波形,绿色为经文本提示和神经生成器后的最终输出。教学例子:参考有三下强弱为弱强弱,关系方法先记下第一和第三下应该相似且都弱于第二下,再去源里找 3 个满足同样关系的狗吠颗粒,而不是找 3 个音色像人声的颗粒。
颗粒用什么声学特征表示
所有变体共享同一套启发式声学嵌入。每个颗粒先算平均梅尔倒谱系数及其差分、8 维粗包络和对数均方根能量,再做标准化和单位化,得到向量 z。余弦相似度 kappa 衡量两个颗粒的相似程度,源内部相似度记为 kappaS,参考内部相似度记为 kappaR。这套特征是手工声学特征,论文说明可以用自监督嵌入替换,但本篇没有做,留作未来工作。它的作用是给后文的关系损失提供域内可比的度量,避免跨人声与环境声直接比绝对值。
\[z=\phi(g)=\operatorname{norm}[\overline{\mathrm{MFCC}},\overline{\Delta\mathrm{MFCC}},\mathrm{Env}_{8},\log RMS],\]需要提醒新生:这个嵌入只用于决定哪些时刻该相似,不直接决定输出音质,最终音质还受拼接和神经生成器影响。
上下文递归图如何给出稠密关系
上下文递归图是最直接的关系结构。音频自相似矩阵中重复轨迹表现为对角线附近的路径,因此不能只看单帧对是否相似,而要看周围上下文是否以相似方式演化。做法是以半径 r 取局部对角加权平均,权重按指数衰减,得到上下文递归显著性 Gamma。对每个时刻 t 去掉近邻后取显著性最高的 K 个作为正边,取最低的 K 个作为负边,权重分别与 Gamma 的 p 次方和 1 减 Gamma 的 p 次方成正比。实验用半径 4、衰减尺度 2、每时刻 8 条边、幂 2。关系损失要求正边两端的源选择相似度接近 1,负边两端的源选择相似度不超过 margin,margin 取 0.55,负边权重 0.35。
\[\Gamma_{R}(t,u)=\frac{\sum_{\delta=-r}^{r}e^{-|\delta|/\sigma}\kappa_{R}(t+\delta,u+\delta)}{\sum_{\delta=-r}^{r}e^{-|\delta|/\sigma}}.\]上下文递归图 × 因子预言机: 上下文递归图用固定长度对角上下文度量参考中哪些时刻演化相似,给出稠密的正负关系;因子预言机先把连续特征量化为符号,再用最长重复后缀给出稀疏的可变长重复证据。两者都是为同一关系损失提供边和权重,前者覆盖面广,后者把压力集中在有非平凡重复的地方。
可以把该模块理解成稠密版的乐谱重复标记:它告诉求解器参考中第 t 秒和第 u 秒应该像或应该不像,但不告诉具体用什么音色实现,音色由源内部相似度自行组织。
因子预言机和可变马尔可夫预言机如何给出稀疏可变长关系
因子预言机提供稀疏可变长的视角。每个时刻的后缀链接指向能识别以该时刻结尾的最长重复后缀的时刻,重复上下文越长,关系证据越强。由于预言机需要符号序列,而音频嵌入是连续的,论文先用贪心样例聚类把参考嵌入量化为符号,阈值取 0.8。当最长重复后缀长度不小于 3 时,才为该时刻建立一条指向后缀链接时刻的正边,权重按长度相对第 90 百分位的比值饱和后再取幂。负边仍沿用上下文递归图的构造。
可变马尔可夫预言机把聚类阈值的选择放到预言机构造内部,用信息率最大化在 0.05 到 1 之间以 0.05 步长搜索最优阈值。为了公平比较,论文让它与因子预言机使用同样的正负边和权重定义,以隔离贪心聚类与联合聚类的影响。论文明确三者是平行关系模型,不是逐级改进,不预设可变马尔可夫一定优于因子预言机。因子预言机把压力集中在有非平凡重复的地方,适合节奏型清晰的人声模仿;上下文递归图覆盖更均匀,适合重复不那么规整的参考。
有向幅度运动如何迁移强弱方向而不抄绝对响度
相似图很难区分响度上升和下降,因为两段包络可能形状相似但方向相反。有向幅度运动补上这一块。做法是对每个滞后 h 计算对数响度差,再换算成分位数坐标。分位数接近 1 表示该时刻在参考中是异常强的上升,接近 0 表示异常强的下降,接近 0.5 表示平常运动。实验用滞后集合 1、4、16、32,覆盖多时间尺度。
合成要求源中被选颗粒之间的幅度变化,在源自身经验分布下的分位数,接近参考在该时刻的分位数,容差取 0.1。关键是只匹配相对极端程度,不匹配绝对响度值,因此人声很轻、环境声很响也不会被强行拉平。
\[\mathcal{L}_{\mathrm{dam}}=\frac{1}{|H|}\sum_{h\in H}\sum_{t}\left[\left|q_{h}^{S}(x_{t},x_{t+h})-q_{h}^{R}(t)\right|-\varepsilon\right]_{+}^{2}.\]有向幅度运动 × 递归结构: 递归结构管哪些时刻应该相似或相异,但分不清上升和下降;有向幅度运动管多尺度上相对变响还是变轻的方向和强度。两者搭配后,相似性约束负责重复格局,幅度方向约束负责包络起伏,组合起来才能同时迁移节奏型和强弱走向。
教学例子:参考在第 2 秒有一个从轻到重的渐强,源里狗吠整体更响,有向幅度运动只要求选出的两颗狗吠颗粒之间也是相对渐强,而不要求它们与人声一样轻。
没有训练时求解器实际在算什么
本篇没有训练任何神经网络,也没有引入额外的条件网络。预训练生成器取 Stable Audio 3 Small-SFX,生成步数固定为 8,每个三元组生成 3 个种子。载体构造是一个非局部离散优化,总损失等于关系损失加有向幅度运动损失加拼接过渡正则,过渡正则包括梅尔倒谱边界兼容和对连续、重复、复用的偏好,有向幅度运动系数取 1。由于相互作用图是带环的非局部图,不能用维特比递推。求解用 8 个并行重启、12 轮随机顺序坐标下降,每轮添加冈贝尔(Gumbel)扰动,温度从 0.08 线性降到 0,保留最低代价解。
该搜索不保证全局最优。需要区分清楚:参数冻结不等于输出确定,生成器本身仍有随机种子,坐标下降也有随机顺序和扰动。未报告的是拼接正则各项的具体权重和重叠相加的窗函数细节,复现时只能按常规拼接实现补齐并注明差异。
数据划分采样和指标如何保证比较公平
数据用 ESC-50 及其人声模仿子集 ESC-50-Voice,后者为 31 类环境声提供人声模仿作为参考 R。ESC-50 每类分 5 折,第 1 折每类 2 个目标用于调条件强度,第 2 折每类 8 个作为评测目标,源 S 从同类第 3 到 5 折无放回独立采样。同类采样相当于理想检索,把合成与检索质量隔离开。最终评测为 31 乘 8 共 248 个三元组,均为 5 秒单声道 22.05 千赫音频。文本提示固定为写实类别环境声。
条件包括纯文本、无源载体的直接参考、等响度混合、直接用源、块打乱源、基于梅尔最近邻的逐点拼接,以及 3 种关系合成,关系合成默认都开有向幅度运动。初始化噪声在第 1 折上扫 0.25、0.5、0.75,选中 0.5 用于第 2 折评测。指标分 5 组:时间用平滑响度包络 L1 和 50 毫秒 onset F1,声学用对数梅尔余弦、CLAP 音频余弦和 PANN 散度,泄漏用 2 秒最佳匹配对数梅尔余弦和 CLAP 音频余弦,提示对齐用 CLAP 图文余弦,分布用 PANN Inception 分数和 3 种弗雷歇距离。配对指标先对每个三元组的 3 个种子平均再聚合,集合指标在全集上计算。
泄漏相似度是诊断量,高不好,但越小越好并不是目标,数值优胜者不加粗强调。
主结果是否同时改善时间保住音色并抑制复制
要回答的核心问题是只给源材料时,参考的关系信息能否改善时间组织。下表聚焦源载体条件之间的中心比较,列方向按原文箭头理解,泄漏列数值低只具诊断意义。表前说明:比较对象限定为同样只能看到源的载体条件,直接暴露参考波形的条件只作对照;指标包括参考包络误差、参考 onset、目标声学和源局部复现。
| 条件 | 参考包络 L1 越低越好 | 参考 onset 越高越好 | 目标 CLAP 越高越好 | 源 2 秒复现诊断越低越不复制 | PANN 散度越低越好 | 变化定性 |
|---|---|---|---|---|---|---|
| Raw 直接用源 | 0.095 | 0.322 | 0.552 | 0.353 | 1.865 | 基线 |
| FO 关系合成 | 0.086 | 0.343 | 0.551 | 0.299 | 1.737 | 时间升声学保泄漏降 |
| Shuffle 打乱 | 0.098 | 0.319 | 0.547 | 0.299 | 1.733 | 时间无增益 |
| Pointwise 逐点 | 0.101 | 0.335 | 0.523 | 0.286 | 2.011 | 时间弱声学降 |
| CRG 关系合成 | 0.097 | 0.343 | 0.515 | 0.307 | 2.110 | 时间升声学弱 |
| VMO 关系合成 | 0.087 | 0.341 | 0.543 | 0.300 | 1.764 | 时间升声学稳 |
上表把原文连续句中的关键数字整理为可读形式,原始数值与单位以表后来源记录中的逐字引文为准,未胜出项如逐点拼接和打乱源予以保留以显示公平性。FO 相对直接用源把参考包络误差从 0.095 降到 0.086,参考 onset 从 0.322 升到 0.343,配对置信区间均不含零;目标 CLAP 基本保持从 0.552 到 0.551,对数梅尔相似从 0.923 微升到 0.925,提示对齐从 0.234 到 0.237,PANN 散度从 1.865 改善到 1.737,说明时间增益没有把事件身份拉向人声。
泄漏方面源 2 秒复现从 0.353 降到 0.299,而参考复现保持在 0.144 附近,与直接用源的 0.137 和打乱的 0.137 接近,远低于直接暴露参考的 0.365,说明改善的时间不需要把参考波形送入生成器,源也没有被局部重放。分布上 FO 的 VGGish 距离从 7.53 到 7.29、PANN 距离从 47.34 到 45.66,CLAP 距离从 0.354 到 0.365 略升,Inception 从 9.34 到 8.70 略降,论文将其视为边界而非优化目标。
下面是读图说明,该图是域外例子,用尺八作源、座头鲸叫声作参考,重点看直接用源是否整段复制、逐点拼接是否跟不上包络、FO 是否拼出参考的强弱位置。
看图路径: 1. 逐行对比源、参考、直接用源、逐点拼接与 FO 五条波形包络;2. 重点看两个红色框内参考的凸起在各条件中是否出现;3. 观察 FO 行是否用源的材料拼出了参考的强弱位置而非照抄源
论文图 2。原论文 Figure 2::“Out-of-dataset example with shakuhachi source S and humpback-whale reference R.”。
图中自上而下五行为源、参考、直接用源、逐点拼接与 FO 波形,横轴为时间。源有 5 个离散乐句,参考有多组强弱交替的鲸声脉冲。直接用源一行基本复现源的长衰减形态;逐点拼接一行碎裂严重,未跟上参考包络;FO 一行在红色框标记处出现与参考对应的凸起,且颗粒来自源的重组。
红色框标出两处对应的包络结构,表明 FO 迁移的是相对位置和强弱,而非照抄任一波形。该图为单样本展示,不能推广为全集统计结论。
拿掉有向幅度运动后时间增益还剩多少
消融在每个关系结构内部开关有向幅度运动,其他结构不变,回答幅度方向约束是否互补。下表比较 3 组配对,数值越低越好的包络误差与越高越好的 onset 同向变化才算时间增益成立,声学与泄漏列用于看代价。
| 结构配对 | 包络误差 LR 越低越好 | onset OR 越高越好 | 时间是否提升 | 声学提示是否保持 | 泄漏与分布备注 |
|---|---|---|---|---|---|
| CRG 无幅度 | 0.110 | 0.328 | 基线 | 基线 | 基线 |
| CRG 有幅度 | 0.097 | 0.343 | 提升 | 保持或改善 | 参考复现从 0.141 升到 0.151 有升 |
| FO 无幅度 | 0.096 | 0.320 | 基线 | 基线 | 基线 |
| FO 有幅度 | 0.086 | 0.343 | 提升 | 保持或改善 | 泄漏变化小 |
| VMO 无幅度 | 0.096 | 0.324 | 基线 | 基线 | 基线 |
| VMO 有幅度 | 0.087 | 0.341 | 提升 | 保持或改善 | 泄漏变化小 |
上表数字来自原文连续句,有向幅度运动使 3 组包络误差分别从 0.110 到 0.097、0.096 到 0.086、0.096 到 0.087,onset 分别从 0.328 到 0.343、0.320 到 0.343、0.324 到 0.341,6 个时间差值的配对置信区间均不含零。声学与提示对齐总体保持或改善,泄漏变化相对小但并非单调下降,CRG 的参考 2 秒复现从 0.141 升到 0.151,差 0.010,有升有降,且泄漏是诊断量,不能按越小越好来排名。集合层效果 mixed,说明幅度约束主要减少声学与时间的权衡,而不强迫跨域包络绝对值相等。未胜出的是无幅度版本在部分分布距离上可能略好,这与主结果中分布只是边界的定位一致。
哪些结论有边界哪些还没测
首先是适用条件。源与参考在评测里是同类配对,源采样是理想检索,隔离了检索错误;跨类迁移如尺八与鲸声只在图 2 单例展示,没有统计指标,不能当作跨类一定成立。其次是对照范围。直接参考条件时间更强,但它能看到参考波形,与只能看到源的中心比较信息条件不同,不能写成同条件胜负。
逐点拼接用的是梅尔最近邻实现,只代表该实现,不代表所有逐点方法。再次是求解与成本。离散搜索不保证全局最优,并行重启和退火只能改善;论文未报告运行时间、内存和输出帧率,不能承诺延迟或成本改善。最后是指标局限。
泄漏是诊断量,最小化它本身不是目标;分布指标是集合量,单组好坏推不到每组;自动指标不等于人工听感,论文没有人工评价,误判率也没有测量。
复现第一步先做什么需要哪些超参数
复现先从数据与载体做起,不需要训练。按 ESC-50 划分取第 2 折目标、第 3 到 5 折同类源、对应人声模仿作参考,统一切 5 秒 22.05 千赫,再切 180 毫秒颗粒、100 毫秒跳。实现共享嵌入的梅尔均值、差分均值、8 维粗包络和对数能量标准化,然后按论文参数实现三选一的关系结构:上下文用半径 4、衰减 2、每时刻 8 边、幂 2;因子预言机量化阈值 0.8、最短重复 3、90 百分位饱和;可变马尔可夫在 0.05 到 1 以 0.05 步长搜信息率最优阈值。
有向幅度运动用滞后 1、4、16、32、分位容差 0.1,关系负边权重 0.35、margin0.55、幅度系数 1。求解用 8 重启 12 轮随机坐标下降,温度 0.08 线性退火。载体经重叠相加后,以 0.5 初始化噪声、8 步、3 种子调用 Stable Audio 3 Small-SFX 并按原文聚合。代码开源、权重可下载、系统可运行是三件事:本篇未报告代码开源,生成器权重是第三方预训练,载体加生成器的链路可运行但需自行实现求解器。还需补的验证是真实检索而非理想同类源下的表现,以及人工听感与延迟测量。
什么时候值得尝试还缺哪项验证
当已有检索录音能提供音色、另有一段节奏参考能提供时间型,且不希望任一段波形被整段复制时,值得尝试关系合成,尤其是 FO 这种在时间、声学和泄漏三者间最稳的实现。复现第一步是先实现颗粒切分与共享嵌入,再实现任一种关系图与有向幅度运动,最后接固定参数的预训练生成器。还缺的验证是跨类与真实检索噪声下的统计结果,以及把手工嵌入换成自监督嵌入后关系是否依然成立。
常见误解是把分布指标的轻微升降当成方法优劣的主证据,原文明确它们只是边界;另一个误解是把直接参考更强的时间分数当成关系方法失败,实际上两者信息条件不同;还有人会把无幅度版本在个别距离上的数值好当成幅度无用,但配对时间增益的置信区间均不含零,且声学并未被交易掉。
总体看,论文支持的是在给定同类理想检索和固定生成器下,用域内关系代替跨域逐点距离可以同时改善时间对齐、保持类别声学并降低源局部复现,超出该条件的推广仍待验证。
📎 论文与评分元数据
排名:前50% | 文档类型:方法研究 | arXiv 原文
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
评分规则:type-aware-v1
评分模型:muse-spark-1.3-contributor
评分请求协议:openai_responses

