← 返回 2026-05-06

TTS-STT 飞轮:合成实体密集型音频弥补商用与开源系统失败的印度语言 ASR 差距 The TTS-STT Flywheel: Synthetic Entity-Dense Audio Closes the Indic ASR Gap Where Commercial and Open-Source Systems Fail

Venkata Pushpak Teja Menta 📅 2026-05-04 👍 3 2026-07-13 08:36
ASR LoRA TTS 代码混合 印度语言 合成数据

用 TTS 合成实体密集音频 + LoRA 微调,17× 提升泰卢固语 ASR 实体识别率

前置知识

LoRA 微调

LoRA 在冻结权重旁注入低秩矩阵 $A$, $B$($r \ll \min(d,k)$),$W' = W + BA$。本文用 rank=16、$\alpha$=32、dropout=0.05 微调 Whisper/vasista22。

本文在 Whisper-large-v3 和 vasista22 上做 LoRA 微调,rank=16、$\alpha$=32、dropout=0.05,4 个 GPU 小时即可训练一个语言适配器,这是方法的核心训练技术。

WER 与 EHR

WER 按词级编辑距离评 ASR;EHR 按语义实体类别评分,把「5 lakh」与「500000」等价归一。EHR 覆盖六类:digit_run、pincode、currency_amount、brand、proper_noun、spelled_digit、house_or_plot。

本文的核心论点是 WER 对实体识别任务错位,需要 EHR 才能暴露真实差距,EHR 是评价指标体系的核心创新。

Script Collapse / SFR

Script Collapse 指多语 ASR 模型输错语言脚本(如泰卢固语音频输出卡纳达语/天城文),SFR 测量假设中落在正确 Unicode 区段的字符比例。vanilla Whisper-v3 在泰卢固语 SFR 仅 0.46–0.71。

理解为什么 telugu 准确率低不能只看 WER,必须看 SFR 才能解释 vanilla 模型为什么在 telugu 上 WER > 1.5 的现象。

代码混合(Code-mix)

Code-mix 指同一句话中混合两种或多种语言,例如英语动词 + 印度本地语名词,或反之。对 ASR 而言,模型需在单一音频流中切换语言识别能力,是印度语言工作流(IVR、客服、金融科技)的真实场景。

本文识别的六类实体中包含 code-mix 类,是泰卢固语/印地语/泰米尔语 ASR 评测必须覆盖的内容类别。

研究动机

印度语言 ASR 的真实业务场景(IVR、客服、配送、金融科技)依赖转写 10 位电话号码、6 位 PIN 码、本地写法的货币金额、带拉丁嵌入词的印度地址、品牌名、英语与印度语代码混合等「实体密集型音频」,而传统朗读型 ASR 语料(维基百科、新闻、政府文本)几乎不覆盖这些内容。在合成的实体密集型泰卢固语测试集上,open-source SOTA vasista22/whisper-telugu-large-v2 的 Entity-Hit-Rate 仅 0.027,商用系统 Deepgram Nova-3 也只有 0.16;同一模型在 FLEURS-Te 朗读型上的 WER 却只有 0.33 和 0.37,说明现有系统能写流畅的泰卢固语散文,但根本无法捕捉这些关键的实体内容。

本文的目标是构建一个自包含的 TTS↔STT 飞轮:用开源印度 TTS 合成约 22,000 条覆盖泰卢固语、印地语、泰米尔语三类语言 × 六类实体(digits、currency、addresses、brands、codemix、proper_nouns)的训练语料,对 ASR 做 LoRA 微调,把泰卢固语 EHR 从 0.027 抬到 ≥0.47、印地语/泰米尔语类似提升,同时把朗读型性能回归控制在可接受范围内,最终以 <$50 边际成本对外开源。

与已有工作不同的是,现有合成数据研究(如 SpeechT5)不是针对印度语言、且不用 TTS 做数据增广;Distil-Whisper 用 Whisper 自蒸馏但没有 TTS 飞轮;vasista22 等 open SOTA 的训练语料以朗读型为主;商用 Deepgram 在 Hindi 等高资源语种上覆盖较好但泰米尔语/泰卢固语覆盖严重不足。本文切入点是「实体密集型这一尚未被任何系统服务的 niche」,并提出「TTS 飞轮 + LoRA」作为可复现、低成本(<$50)的工程方案,且诚实承认在 Hindi 上不如商用系统。

核心方法

直觉上,朗读型语料永远填不满实体密集型音频的训练分布;与其花 $660 雇人标注 22 小时实体密集音频,不如用现成的开源印度 TTS 来合成——TTS 之于 ASR,相当于「反向制造」训练标签。具体路线是:(1) 用 Anthropic Haiku-4.5 基于预构建的实体字典(来自 Wikidata + AI4Bharat 词典 + 母语者整理)生成带 span 标注的载体语句;(2) 把语句路由到多个 TTS 系统(Praxy R6 / Chatterbox / IndicF5 / ElevenLabs / Cartesia)做多样性合成;(3) 用 vasista22 自身做 CER 过滤并修正数字串写法不匹配;(4) 把 Cartesia 音频留出做评测,其余混入 IndicVoices + Common Voice + FLEURS 训练集,对 vasista22/whisper-large-v2 做 LoRA 微调。

核心创新是「合成系统的混排路由 + 实体类别级 CER 过滤 + 训练/评测按 TTS 系统解耦」:60% 路由到 Praxy(开源 Chatterbox-LoRA)、20% 到 ElevenLabs、20% 到 Cartesia,再用 Cartesia 整桶留出做评测,避免「模型只是学到了某种 TTS 的声学分布」的伪结果。与已有合成数据方法的本质区别是:(a) 面向印度语言实体密集这一空白 niche;(b) 用开源 TTS 而非商用以保证可复现(<$50 边际成本);(c) 把指标从 WER 换成语义归一化的 EHR,避开「5 lakh 与 500000 不等价」的评估失真。

方法步骤详情

方法四步:(1) 实体字典:从 Wikidata + AI4Bharat 词典 + 母语者整理每类约 500 个种子实体;(2) 文本生成:Anthropic Haiku-4.5 以 (lang, class, seed) 批量生成 10–50 条载体语句,要求本地脚本、长度 3–25 tokens、去重剩 22,193 行,成本 $13.95;(3) 多系统合成路由:5 个 TTS 系统上合成(泰卢固语 4098 Praxy/1686 ElevenLabs/1270 Cartesia/873 IndicF5=7927 行);(4) 后处理+训练:vasista22 做 CER 过滤(CER>0.5 丢弃,拒绝率 10–15%)、把数字串重写为本地拼读形式对齐标签、Cartesia 整桶留出做评测、其余按 70–80% 真实+20–30% 合成比例与 IndicVoices+CV25+FLEURS train 混合,对 vasista22 做 rank=16 LoRA 微调 4000 步、LR $4\times 10^{-5}$,单 A10G ~$13/语言。

技术新颖性

技术新颖性体现在三点:(1) EDSA(Entity-Dense Synthetic Audio)数据生成流水线作为可复现工件开源(paper/stt_flywheel/data_pipeline.py + 实体字典 CC-BY-4.0),把 TTS 飞轮从工程黑箱变成科学可比较;(2) EHR 指标 + 19/19 单元测试覆盖每类归一化规则,确定性、无 LLM-judge,可直接复用;(3) 隔离实验(§V-G 表 VIII)把「LoRA 训练」与「EDSA 数据」干净分开:FLEURS-only LoRA 在同一评测上仅 0.020 EHR,证明几乎 100% 的增益来自 EDSA 语料本身而非 LoRA 工艺,方法论上是贡献点的一半。

实验结果

核心发现五个:(1) 头号结果 β-Te 在泰卢固语 Cartesia 留出集上 EHR 0.473,是 open SOTA 0.027 的 17×、Deepgram 0.16 的 3×;β-Hi 0.337(7× vs vasista22 但输给 Deepgram 0.485);β-Ta 0.543(22× vs vasista22 与 Deepgram 皆 0.025);(2) 自然人声泛化:n=20 母语泰卢固语 β-Te EHR 0.516(vs 合成 0.473)反向略升;(3) 朗读型回归 FLEURS-Te +6.6 pp 在容忍内,但 Hi +9.4 pp、Ta +8.9 pp 超出 +7 pp 阈值;(4) SFR 语言条件反指征:vanilla Whisper-v3 在泰卢固语 SFR 0.46–0.71(严重脚本坍缩)但 Hi/Ta ≥0.98,相同 LoRA 在 Hi/Ta 把 SFR 砸到 0.43–0.85;(5) FLEURS-only LoRA 在同评测仅 0.020,~100% 增益归于 EDSA 语料。

Telugu entity-dense held-out (n=102) 上的 Entity-Hit-Rate 对比
Fig. 1: Telugu entity-dense held-out (n=102) 上的 Entity-Hit-Rate 对比
CV25 留出集上各语言、各系统的 Script Fidelity Rate (SFR)
Fig. 2: CV25 留出集上各语言、各系统的 Script Fidelity Rate (SFR)
查看结构化数据
任务指标本文基线提升
泰卢固语实体密集识别 Entity-Hit-Rate (macro) 0.473 (Praxy-STT-Te-rb) 0.027 (vasista22) / 0.160 (Deepgram Nova-3) 17× vs open SOTA, 3× vs 商用
印地语实体密集识别 Entity-Hit-Rate (macro) 0.337 (Praxy-STT-Hi-rb) 0.049 (vasista22) / 0.485 (Deepgram Nova-3) 7× vs open SOTA,输给商用 0.485
泰米尔语实体密集识别 Entity-Hit-Rate (macro) 0.543 (Praxy-STT-Ta-rb) 0.025 (vasista22) / 0.025 (Deepgram Nova-3) 22× vs 两套基线
自然人声泰卢固语泛化 EHR (n=20 母语录音) 0.516 0.097 (vasista22) / 0.258 (Deepgram) 5× vs open SOTA, 2× vs 商用
朗读型回归 (FLEURS-Te) WER delta 0.395 (+0.066) 0.329 (vasista22) +6.6 pp 仍在容忍区间 (< +7 pp)
EDSA 隔离归因 EHR on Cartesia held-out 0.473 (with EDSA) 0.020 (FLEURS-only LoRA) / 0.027 (vasista22) 24× vs FLEURS-only,证明 ~100% 增益来自 EDSA

局限与改进

作者承认四点:(1) 头号评测是 Cartesia 合成音频留出,n=102 偏小,存在 acoustic-family overfit 风险——尽管 n=20 自然人声 sanity check 给出 0.516 EHR 反驳了「只学声学」,但单讲话人/单录音环境远不够生产部署;(2) 没有 bootstrap 置信区间,directional findings 跨多个评测稳定但 per-cell 点估计有残留方差;(3) 类别不平衡:Cartesia 留出在 digits/proper_nouns 类只有 0–2 行,被标为「—」而非 0;(4) 商用基线单一:仅 Deepgram Nova-3,ElevenLabs Scribe 与 Sarvam STT 因 rate-limit/GA 未跑。我的补充观察:EHR 的 currency_amount 类不认「数字等值但写法不同」的输出,是 v2 才改进的保守估计;Hindi 上 Praxy-Hi-rb 输给 Deepgram,flag 高资源语种商用仍是标杆。

独立分析的弱点

三个独立弱点:(1) Hindi 0.337 输 Deepgram 0.485——说明商用在有真实投入的高资源语种仍是标杆,改进方向是扩 EDSA 的 brands/addresses 多样性 + speaker rotation;(2) EDSA-isolation 仅对比「FLEURS-only LoRA」与「FLEURS+EDSA LoRA」,没跑「LoRA+random-text-only 合成」控制组,无法排除「任何 synth 语料都能贡献」的更弱假设——补一个 random-text 合成对照组即可;(3) Hi/Ta 朗读型 +9 pp 回归超阈值,原因是 vasista22 已对 FLEURS 强过拟合,扩 EDSA 时挤压朗读型流形——改进方向是 Knowledge Distillation 或 EWC 正则把朗读型锚定。

未来方向

作者明确指出三类未来工作:(1) v2 EHR:货币类增加双向 Indic-multiplier 解析,让「200000」与「ఇరవైలక్ష」算正确等价;(2) 类别平衡:显式保证每 (lang, class) cell 在留出集 n≥50;(3) 多讲话人验证:委托 Karya 多讲话人/多环境录音做生产级 cross-speaker generalization。基于成果可延伸的还有:(a) 跨语言迁移——把泰米尔语 EDSA-LoRA 适配到卡纳达语、马拉雅拉姆语等更多 Dravidian 语种;(b) 把 EDSA 流程泛化到其他「未服务 niche」如医疗术语、姓名、缩写;(c) 与 LLM 后处理串联——把 ASR 输出扔进 LLM 做实体规范化。

复现评估

复现门槛较低:完整代码与数据在 https://github.com/praxelhq/stt-flywheel 公开(MIT 代码 + CC-BY-4.0 数据 + CC0 自然录音);EHR 评测器(eval_ehr.py)+ 19/19 单元测试已开源;六个 LoRA adapter 在 HuggingFace(Praxel/praxy-stt-{te,hi,ta}-r{b2})以 Apache-2.0 发布,hi-r2/ta-r2 在 model card 上明确标注「contraindicated for production」。算力:合成 22k 音频 + 6 个 LoRA + 评测矩阵总计 Modal A10G/A100 ~$130,加 Anthropic 文案 $13.95 + Deepgram 评测 $5 + ElevenLabs/Cartesia 免费额度,总真实花费 $241。复现难度中等:需 pinning transformers 4.36.2 + peft 0.10.0 解决 vasista22 生成配置兼容问题,并调度 5 个 TTS 系统。