📄 用语音编码器里对语言敏感的维度直接发现语码转换
英文题目:Code-Switching Detection via Language-Selective Dimensions in Speech Foundation Models
标签:#语言识别 | #统计分析 | #代码转换 | #语音
评分:6.8/10 | 创新 1.3/2 | 技术严谨 1.2/1.5 | 实验充分 1.2/1.5 | 清晰度 0.8/1 | 影响力 1/1.5 | 开源 0/1.5 | 可复现 0.3/0.5 | 工程/实践 1/1.5
👥 作者与机构
- Jie Chi:机构信息未在 arXiv HTML 中可靠披露
- Zakaria Aldeneh:机构信息未在 arXiv HTML 中可靠披露
- Masha Fedzechkina:机构信息未在 arXiv HTML 中可靠披露
- Maureen de Seyssel:机构信息未在 arXiv HTML 中可靠披露
- Natalie Schluter:机构信息未在 arXiv HTML 中可靠披露
📌 核心摘要
多语言语料中同一句话内交替使用两种语言的现象常见但占比低,找出这类句子才能补充训练数据,直接转写后再判断语言在大规模筛选时成本高且依赖多语言识别质量。本文输入为待判定的语音 utterance,输出为是否包含语码转换的二值标签,难点在于只用单语语音建立语言证据,又要在未见过的语言对和朗读与会话两种风格下判断句内是否两种语言都出现。方法先在预训练语音编码器某一层用单语帧计算每维度的 Cohen’s d 值,挑出均值差异相对稳定的语言选择性维度并估计两语言质心;再把帧在质心连线方向上的投影转成逐帧语言分数,用 0.5 秒滑窗统计正负分数占比,两种语言都有足够多窗口超过阈值才判为转换。在 CS-FLEURS 的 14 个英语与其他语言组合的朗读语音上,Whisper-small 编码器第 8 层用 8 个针对语言对选择的维度达到平均 oracle F1 为 0.798,高于卷积网络基线的 0.776、HuBERT 线性基线的 0.751 和全层探针的 0.786,10% 标注数据校准后为 0.784;在会话 SEAME 合并开发集上为 0.734,低于 HuBERT 线性基线的 0.772。结论适用于有目标语言单语语音和小量标注转换语音可调阈值的筛选场景,尚未验证无标注野外音频挖掘效果,也未覆盖句内转换边界定位。原文未披露训练、推理或部署成本。
🔗 开源与复现资源
本次未形成可展示的已核验资源记录,开放状态尚未核实。
可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
多语语音里缺的是什么样的语码转换样本
这篇论文处理的是语音里的语码转换检测。输入是一整句语音波形,目标是输出一个二值判断:这句话里是否同时出现了两种语言。必须保留的信息是句内是否发生语言交替,而不是整句属于哪一种语言,也不是转写出每个词。
论文的动机是挖掘语料:多语语音库往往覆盖很多语言,但一句内混用两种语言的句子很少,例如迈阿密语料中只有 8% 的句子是语码转换,SEAME 中通过设计问题诱发也只报告 52%,因此想从更大的语音集合里把天然混用的句子找出来,再拿去做训练数据。作者把本文方法定位为较重挖掘流程之前的轻量预过滤器,而不是替代完整的人工校验或大模型流程。
读者需要先分清 2 个任务:整句的单语语种识别是判断一句话主要说什么语言,本文的语码转换检测是判断一句话里是否两种语言都出现过,后者需要句内的帧级证据。
已有路线为什么还需要直接从语音判断
论文回顾了 3 条相关路线。第一条是先转写再看文本里是否有语言交替,例如 CS-YODAS 用自动语音识别转写加 14,000,000,000 参数语言模型加双语人工反馈来挖掘,这条路线依赖多语转写的准确性,流程也较重。
第二条是为特定语言对训练语码转换检测器或帧级语言识别器,例如在 3 个英语加印度语言对上的句子级检测,或英语加普通话儿童指向言语上的卷积加门控循环网络,这类系统通常针对特定语言对和场景开发,换新语言对可能又需要标注的语码转换样本,而这正是挖掘开始前难以获得的东西。
第 3 条是语言日志,为语音的时间区域标注语言标签,例如从说话人日志改造的端到端方法,或在约 14.3 小时南非肥皂剧语音上微调表示的方法,以及 DISPLACE 挑战中的多语对话语音日志系统,这些工作说明语言边界可以从语音恢复,但也显示了标注语码转换数据和录音条件的作用。
本文与它们输入相同,都是语音波形,但目标和监督不同:本文只做整句是否转换的二值判断,维度选择只用单语语音,判决规则只用少量标注语码转换句来调阈值,因此不能把类别差异直接读成同条件下的优劣。
本文要解决的具体判断是什么
给定一个语言对,例如英语加西班牙语,输入是一句待测语音,输出是该句是否为语码转换句。约束是维度选择和语言质心估计都不能用语码转换语音,只能用单语语音;只有最后的判决阈值和窗口数可以用少量标注语码转换句来调。评测时报告的是句子级检测的 F1 值,F1 越高表示在查全和查准之间综合越好。论文在两个评测域上验证:CS-FLEURS 的朗读加合成语音中的朗读部分,共 14 个英语加其他语言的对。
SEAME 的自发普通话加英语对话语音,含普通话主导和新加坡英语主导两个官方开发集。这种设置对应挖掘场景:事先有大量单语语音,但语码转换标注很少,方法必须跨语言对和跨朗读到对话域都尽量可用。
方法总流程如何把单语信息变成整句判决
整体流程分三步。第一步用单语语音为每个语言对计算每个隐藏维度区分两种语言的程度,并据此选出一层和该层内的少量维度。第二步用另外的单语语音估计两种语言在所选维度上的质心,并构造它们之间的语言轴。第三步在测试时把每 1 帧投影到该轴得到语言分数,再用 0.5 秒滑窗、0.1 秒步长统计每个窗内正负分数帧的比例,如果既有足够多窗偏向语言 A,又有足够多窗偏向语言 B,则判为语码转换。
3 个预训练编码器都只取编码器残差流的隐藏状态做主要结果,前馈中间激活也试过但效果不如残差流。层选择用 SEAME 单语训练语音完成,避免为 FLEURS 跨对复现率而挑选层。维度数 K 取隐藏维度的约 1%,对 768 维模型取 8,对 1280 维的 MMS-1B 取 13。
怎样用单语语音量出哪个维度更区分语言
对一个语言对 A 和 B,记第 l 个 Transformer 块之后第 t 帧的隐藏状态为相应向量,分析的是它的各个坐标。直观想法是,如果某维度在语言 A 的帧上平均激活明显高于或低于语言 B,且各自语言内部波动不大,那么该维度就对语言敏感。论文用绝对标准化均值差 Cohen’s d 来排序,符号和输入在公式前已说明,计算目标是区分度相对帧内变化的大小。
\[d_{i}=\frac{|\mu_{i}^{A}-\mu_{i}^{B}|}{\sqrt{\left((\sigma_{i}^{A})^{2}+(\sigma_{i}^{B})^{2}\right)/2}},\]上式中分子是两语言均值的绝对差,分母是两组标准差平方平均再开方,分母小而分子大则得分高。实现上先对每一层算所有维度的该值,用每层最大值选出一层,每个编码器只保留一层,之后在该层内为每个语言对排序。原文明确不跨模型比较该数值的大小。选层时每个语言抽 300 句单语语音,三次独立抽样选出同一层,说明层选择对这次抽样是稳定的。
语码转换 × 语言选择性维度: 语码转换指一句话内部出现两种语言的交替,是本文要检测的对象;语言选择性维度指预训练语音编码器隐藏状态中对两种单语语音平均激活差异大的坐标,是本文用来表征语言信息的载体,二者搭配的意义在于不用转写文本,直接看这些维度在一句话的前后帧是否分别偏向两种语言,就能判断是否发生转换。
怎样衡量同一维度在很多语言对之间是否重复出现
一个维度对一个语言对敏感,不代表对别的语言对也敏感。论文在 FLEURS 的 15 种语言组成的 105 个语言对上,对选定层按上节得分排序,取前 1% 记为前 K 个。对维度 i 定义跨对复现率为它进入前 K 的语言对比例。
\[U_{i}=\frac{1}{|\mathcal{P}|}\sum_{(A,B)\in\mathcal{P}}\mathbb{I}\left[\operatorname{rank}_{A,B}(i)\leq K\right],\]其中集合是全部语言对,指示函数在该维度排名进入前 K 时为 1。报告的是所有维度中的最大值。由于是对全部维度取最大,随机情况下的最大值也会高于 K 除以维度数,因此用蒙特卡洛模拟估计偶然水平:每次为每对随机选 K 个维度并算最大复现率。结果是 Whisper-small 最常被选中的维度在 55.2% 的语言对中进入前 1%,mHuBERT-147 为 26.7%,MMS-1B 为 16.2%,对应随机水平约为 5.3% 和 5.5%。论文同时说明模型间目标、覆盖语言和训练数据都不同,不能把复现率高低归因于预训练的某一个方面。
Cohen’s d × 跨语言对复现率: Cohen’s d 指本文用来给每个维度排序的绝对标准化均值差,分子是两种语言均值之差的绝对值,分母是两组帧内标准差的合并,跨语言对复现率指某维度在多个语言对中都进入前 1% 的比例,前者负责在单个语言对内衡量区分度,后者负责衡量该区分维度是否在不同语言对之间重复出现,组合起来可以区分一对专用的维度和多对共用的维度。
帧级语言分数和滑窗判决具体怎么算
设已选维度集合为 K,用单语语音估计语言 A 和 B 的质心。把两质心之差限制在所选维度上并归一化为单位向量作为语言轴,中点投影作为偏置,每帧的语言分数是该帧在所选维度上的向量与轴的内积减去中点,正值指向 A 质心,负值指向 B 质心。原文给出的轴、中点和分数形式由代码显示,这里只展示分数这一步,符号含义与上文一致。
\[s_{t}=\mathbf{h}_{t}[\mathcal{K}]\cdot\mathbf{v}-c_{\mathrm{mid}},\]得到分数后,用 0.5 秒窗、0.1 秒步长滑过整句,在每个窗内算正分数帧占比和负分数帧占比,分别记为两种语言的局部证据。若至少有 n 个窗满足第一种语言占比不低于阈值,且至少有 n 个窗满足第二种语言占比不低于阈值,则判为语码转换,这些窗不需要连续。阈值在 0.05 到 0.95 之间以 0.05 步长搜索,n 在 1 到 5 之间搜索。举例来说,这相当于要求句子里既有一段较集中偏向一种语言的 0.5 秒片段,又有另一段较集中偏向另一种语言的片段,而不是整句平均偏向哪一边。
单语质心 × 语言轴: 单语质心指用单语语音在所选维度上估计出的每种语言的典型激活位置,语言轴指从语言 B 质心指向语言 A 质心的单位方向向量,二者分工是质心提供两种语言的参照点,语言轴提供一维比较方向,组合后每一帧只需向该轴投影并减去中点,就得到正负分别指向两种语言的帧级语言分数。
本文训练了什么,又冻结了什么
本文的选择维度方法本身不训练神经网络权重,3 个预训练语音编码器全程冻结,只做前向得到隐藏状态,再做统计计算:算均值方差得排序分,算质心和投影得分数,最后网格搜索两个判决参数。基线则需要训练:卷积网络是在 80 维对数梅尔特征上训练的 4 层 1 维卷积,每层 256 通道、核长 5,带批归一化和线性整流激活,用句子级语言标签和交叉熵加 Adam 训练 30 轮;HuBERT 线性分类器是在冻结的 HuBERT-base 平均池化表示上训练两类线性头,推理时逐帧应用。
全层探针是用同样流程在冻结的 Whisper-small 第 8 层 768 维表示上训练的线性头,用来检验用整层训练分类器是否比只用少量所选维度更好。基线在推理时同样输出帧级语言预测,并用同样的滑窗规则聚合成句子判决,因此判决规则的差异被控制住,差别主要来自帧级信号来源。需要说明的缺失项是原文未报告基线训练的硬件耗时和推理延迟,也未给出帧率与实际延迟的对应,不能从参数冻结推出系统输出确定或延迟更低。
数据、划分和两种调参方式如何对应挖掘条件
数据用 3 个语料。SEAME 约 192 小时新加坡和马来西亚自发普通话加英语语音,156 人,用单语训练句做维度选择、质心估计和基线训练,在两个官方开发集上评测。FLEURS 是 102 语言朗读语音,用英语加 14 个非英语语言的单语训练句做 105 对的复现分析和各对的维度选择、质心估计和基线训练。CS-FLEURS 覆盖 113 个语言对共 52 个语言,只评测其朗读部分的 14 个英语加其他语言对。关键划分是语码转换句不参与维度选择和质心估计,只用于调判决规则和算 F1。
调参分两种:oracle 是在整个评测集上选 F1 最高的参数,属于事后最优,用来显示上限;校准是模拟实际只有少量标注的情形,CS-FLEURS 上在随机 10% 评测句上选参、在剩余 90% 上评测,SEAME 上在 200 句标注语码转换训练句加等量单语句上选参、在开发集上评测,每种校准重复 200 次报告均值和标准差。基线训练时双语数量通过取较小者 subsample 来平衡,在 SEAME 上每语言留超 22000 句,而维度选择每语言只用 300 句,这是理解轻量含义的关键对照。
主结果在什么条件下成立,代价是什么
这张表比较 3 种编码器在成对专用维度与所有语言对共有维度下的句子级语码转换检出效果。这里 K 是所用维度数;CS-FLEURS 是朗读语料,SEAME_combined 是另一录音域,二者结果不能混为同一测试集。Oracle 是在评测集上选阈值与窗口参数的理想参考,Calibrated 是在少量标注数据上选决策规则的可校准设置,均值和标准差来自 200 次重复。F1 越高越好,标准差描述重复校准时的波动。两组列并排保留,是为了同时看到理想上界、可实现校准结果与跨域差异。
| Method | Model | K | CS-FLEURS oracle F1 | CS-FLEURS calibrated mean F1 | CS-FLEURS calibrated std | SEAME_combined oracle F1 | SEAME_combined calibrated mean F1 | SEAME_combined calibrated std |
|---|---|---|---|---|---|---|---|---|
| Pair-specific, K=1% | Whisper-small | 8 | 0.798 | 0.784 | 0.021 | 0.734 | 0.733 | 0.008 |
| Pair-specific, K=1% | mHuBERT-147 | 8 | 0.756 | 0.737 | 0.022 | 0.732 | 0.731 | 0.009 |
| Pair-specific, K=1% | MMS-1B | 13 | 0.762 | 0.745 | 0.020 | 0.758 | 0.755 | 0.006 |
| Recurring dims. (all pairs) | Whisper-small | 8 | 0.790 | 0.774 | 0.020 | 0.736 | 0.734 | 0.011 |
| Recurring dims. (all pairs) | mHuBERT-147 | 8 | 0.697 | 0.681 | 0.021 | 0.737 | 0.735 | 0.009 |
| Recurring dims. (all pairs) | MMS-1B | 13 | 0.735 | 0.720 | 0.019 | 0.733 | 0.732 | 0.009 |
成对专用维度下,Whisper-small 在 CS-FLEURS 的平均 oracle F1 为 0.798,高于 mHuBERT-147 的 0.756 和 MMS-1B 的 0.762,但对应校准均值降为 0.784、0.737 和 0.745。SEAME_combined 的成对专用 oracle 以 MMS-1B 的 0.758 最高;共有维度下 3 个模型的跨域表现也并不按朗读语料排序。因此,朗读评测平均最好不等于在每个语种对或会话域都最好,不能把 oracle 当作部署时已获得的分数。
为了保留原表 2 全部单对结果,下列每组 3 个值依次为 Whisper-small、mHuBERT-147 和 MMS-1B,均是成对专用维度、在 CS-FLEURS 上选择 oracle 参数的句子级 F1:ara-eng 为 0.832、0.806、0.824;ces-eng 为 0.793、0.709、0.674;cmn-eng 为 0.762、0.693、0.728;deu-eng 为 0.754、0.672、0.677;fra-eng 为 0.792、0.712、0.727。
hin-eng 为 0.846、0.762、0.835;ita-eng 为 0.779、0.722、0.735;jpn-eng 为 0.785、0.743、0.773;kor-eng 为 0.800、0.693、0.785;por-eng 为 0.774、0.862、0.800。
rus-eng 为 0.827、0.770、0.785;slk-eng 为 0.781、0.701、0.704;spa-eng 为 0.775、0.890、0.703;tel-eng 为 0.870、0.855、0.918。Whisper-small 在 14 对中的 11 对上最高,mHuBERT-147 在葡萄牙语与西班牙语对上领先,MMS-1B 在泰卢固语对上达到 0.918。
这些差异只支持既定语料和参数选择方式下的比较。
oracle 参数 × 校准参数: oracle 参数指在整个评测集上搜出 F1 最高的那组阈值和窗口数,校准参数指只用小部分标注语码转换句搜出的阈值和窗口数,前者是事后最优值,用来显示方法上限但实际部署拿不到,后者是实际可运行策略,比较二者差距才能判断小标注调参的代价。
各语言对的结果为什么不能只看平均值
第二张表进一步问:选维度时没有见过目标语言对,或使用传统分类器与全层探针时,理想与校准结果会怎样变化?比较沿用前表相同的句子级 F1 与两组语料列,校准结果仍是 200 次重复的均值和标准差。留一与留双只针对 Whisper-small,原表对这些行在 SEAME_combined 列写为 N/A,因此这里明确保留,不补造跨域成绩。CNN 与 HuBERT 线性分类器是监督基线,全层探针使用 Whisper-small 的完整层表示;破折号表示原表未给出相应维度数。
| Method | Model | K | CS-FLEURS oracle F1 | CS-FLEURS calibrated mean F1 | CS-FLEURS calibrated std | SEAME_combined oracle F1 | SEAME_combined calibrated mean F1 | SEAME_combined calibrated std |
|---|---|---|---|---|---|---|---|---|
| Recurring dims., leave-X-out | Whisper-small | 8 | 0.797 | 0.783 | 0.020 | N/A | N/A | N/A |
| Recurring dims., leave-both-out | Whisper-small | 8 | 0.795 | 0.781 | 0.020 | N/A | N/A | N/A |
| CNN classifier | — | — | 0.776 | 0.760 | 0.017 | 0.753 | 0.740 | 0.006 |
| HuBERT linear classifier | HuBERT | — | 0.751 | 0.733 | 0.019 | 0.772 | 0.769 | 0.009 |
| Full-layer probe | Whisper-small | — | 0.786 | 0.768 | 0.019 | 0.721 | 0.720 | 0.008 |
Whisper-small 在留一与留双后的 CS-FLEURS 平均 oracle F1 为 0.797 与 0.795,接近成对专用选择的 0.798;校准均值则为 0.783 与 0.781。这个对照支持维度选择有一定可迁移性,但仍依赖少量标注数据校准,且不能用缺失的 SEAME 结果宣称会话域迁移已经验证。CNN 的朗读 oracle 为 0.776、HuBERT 线性基线为 0.751、全层 Whisper-small 探针为 0.786,说明成对专用小维度方法在该条件下有竞争力。另一方面,HuBERT 线性基线在 SEAME_combined 的 oracle 为 0.772、校准均值为 0.769,比本表其他监督基线更高;模型与语料域之间存在权衡,不能只引用单个平均值给出无条件排名。
维度索引能否不看目标语言对来选
要回答的是维度索引的选择是否必须用到目标对的单语语音。论文对 Whisper-small 做两种留出:留 X 是去掉非英语目标语言后在剩余 91 对上按复现率排序,留双是去掉目标对两种语言后在剩余 78 对上排序,两种情况下质心仍用目标语言单语语音估计,只有索引不看目标语言。结果是留 X 和留双的平均 oracle 为 0.797 和 0.795,与成对专用的 0.798 几乎相同,校准后为 0.783 和 0.781,与成对专用的 0.784 也相近。在这 14 对上可以说索引可以迁移,但前提是目标语言的单语语音仍可用于质心估计。
另一组对照是复现维度与成对专用维度的比较,在 CS-FLEURS 上复现维度为 0.790 略低于成对专用的 0.798,在 SEAME 上两者接近。域稳定性方面,英语加普通话在 FLEURS 和 SEAME 上的逐维排序相关仅为 0.251,属于弱相关,但 8 个最复现维度中有 3 个在两域都进入前八,例如 332 在 SEAME 排第一,75 和 398 在两域都进入前七,而 466 从一域的 118 名掉到另一域的 741 名,说明复现率高不保证跨域稳定。
成对专用维度 × 复现维度: 成对专用维度指为每个目标语言对用该对单语语音按 Cohen’s d 选出的前 K 个维度,复现维度指在 105 个语言对上复现率最高的 K 个维度、对所有目标对使用同一套索引,前者允许随目标对变化,后者固定不变,比较二者可以回答维度索引是否必须依赖目标对来选择。
哪些范围尚未评测,不能夸大
论文明确了两项未完成验证。第一,结果基于基准数据集,尚未把检测器放进无标注野外音频的挖掘流程里测试,因此不能承诺它作为预过滤器能省多少重流程的计算或提高多少挖掘召回,因为误判率和延迟都没有测量。第二,方法仍需要少量标注语码转换句来调阈值和窗口数,未来工作才考虑无语码转换标签的校准。未胜出项也要保留:在 SEAME 上 HuBERT 线性总体更高,在部分 CS-FLEURS 语言对上 mHuBERT-147 和 MMS-1B 更高,说明最强编码器随语言对和域而变。
此外,层选择用 SEAME 单语语音完成并固定用于后续分析,跨域复现的细节只深入分析了 Whisper-small 第 8 层的 75、332、704 等维度,不能推广到所有层和所有模型。相关不等于因果:维度激活差异大支持它们携带语言信息,但不证明模型内部就是靠这些维度做语言判断。
复现第一步要准备什么
值得尝试的情形是已有某语言对的单语语音,想从大量无标注语音里挑出候选混用句,且能负担少量语码转换标注来定阈值。复现第一步不是先训分类器,而是准备单语语音并冻结编码器做前向:为目标对各抽数百句单语语音,算每维 Cohen’s d 选层和前 K 维,再用同域单语语音估计质心和语言轴,然后实现 0.5 秒窗、0.1 秒步长的分数统计和阈值加窗口数搜索。关键超参数是 K 取约 1%、窗长 0.5 秒、步长 0.1 秒、阈值网格 0.05 到 0.95、窗口数 1 到 5,以及校准重复次数 200 次报告均值标准差。
信息条件要保留:维度选择和质心不能混入语码转换句,阈值必须在独立小标注集上选,不能在评测集上选完又报该集最优当作成果。来源方面,本次未发现完成验证的作者资源,不得声称代码、模型或数据已公开;复现应依据论文描述和公开的第三方语料与预训练权重自行实现,并区分代码可得、权重可下载与系统可运行是三件不同的事。
读完后应带走的判断
这项工作显示预训练语音编码器残差流中的极少数维度已经带有区分语言的信息,只用单语语音就能把它们找出来,并通过投影加滑窗得到整句是否混用的判断。在朗读的 CS-FLEURS 上该方法在平均意义上超过了同期比较的卷积和线性基线,且维度索引在留出目标语言后仍基本保持效果;但在对话的 SEAME 上总体最优是另一条基线,且各语言对的最优模型不同。
容易产生的误解是把 oracle 最优当作部署效果,或把平均领先当作每对都领先,或认为不需要任何语码转换标注,原文的校准设置和留出实验恰好限定了这些解读:阈值仍需小标注集,质心仍需目标语言单语语音,野外挖掘仍待验证。记住这三项条件,就能准确复述方法的关键步骤和结论边界。
📎 论文与评分元数据
排名:前50% | 文档类型:方法研究 | arXiv 原文
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
评分规则:type-aware-v1
评分模型:muse-spark-1.3-contributor
评分请求协议:openai_responses