STT 模型:
- OpenAI Whisper-medium
- Huggingface 训练器
- 在 8 块 48GB RTX A6000 上进行训练
- 批量大小=8,学习率=1e-5
- 训练步数 5 万
- 频谱图抖动
- 频谱图时间和频率掩码
- 以 16kHz→8kHz→16kHz 重采样作为数据增强
- 推理参数:max_length=260,num_beams=4,chunk_length_s=20.1 秒
- 基于 Libsonic 的变速/变调增强
- 数据集:OpenSLR 37、OpenSLR 53、MadASR、Shrutilipi、Macro、Kathbath、GoogleTTS 生成的音频以及伪标注的 YouTube 视频
标点符号模型:
- AutoModelForTokenClassification google/muril-base-cased
- Huggingface 训练器
- 标签:句号、逗号和问号
- 批量大小=64,学习率=2e-4,max_seq_length=512
- 4 个模型的集成(使用 google/muril-base-cased 的第 6、8、11 和 12 层)
- 规范化的 IndicCorp v2 孟加拉语数据集
在我的日常工作中,我从事低资源中亚语言的语音识别。根据我的经验,OpenAI Whisper 在处理分布外(OOD)音频时表现非常出色,甚至能转录歌曲歌词。但缺点是它对标注噪声非常敏感。因此,修正标注噪声是本次竞赛中最关键的部分。
由于竞赛数据集未经校验,我们使用 OpenSLR 数据集训练了初始模型。我们对文本进行了规范化处理,并过滤掉包含孟加拉数字的文本,同时移除了所有标点符号。此外,我们从 IndicCorp 中采样了 42 万条文本,并使用 GoogleTTS 合成了音频,这些音频随后被用作训练数据集。
在 OpenSLR 和 GoogleTTS 上训练了初始 Whisper-medium 模型后,我们在 MadASR、Shrutilipi、Macro 和 Kathbath 数据集上进行了推理。我们将词错率(WER)低于 15% 的音频纳入下一训练阶段。经过三轮训练后,模型在 Macro 验证集上的词错率达到 8%,公共排行榜得分约为 0.380。
由于训练集中的大多数音频较短,我们合并了一些短音频,生成了约 7 万条更长的音频。随后,我们取得了约 0.370 的公共排行榜分数。
Whisper 使用原始分词器在处理孟加拉语音频时速度较慢。因此,我们在孟加拉语文本上训练了一个包含 1.2 万词汇量的 Whisper 分词器。使用该分词器,我们能够在不到 7 小时内完成推理,设置 num_beam 最高为 8,chunk_length_s 为 20.1 秒。
下一步,我们对部分 YouTube 视频应用了伪标注,这使得我们的公共排行榜分数提升至约 0.360。当我们将四个标点符号模型的预测结果进行融合后,公共排行榜分数进一步提升至约 0.325。
通过添加更多经过伪标注的 YouTube 视频,我们的公共排行榜分数进一步提升至 0.312(私有排行榜分数为 0.372)。