大家好,各位Kaggler们!
首先,我谨代表我的团队向Kaggle和Bengali AI表示最诚挚的感谢。同时,我要感谢许多提供启发性见解的竞争对手们。感谢仓库的作者们。最后,感谢我的队友们,特别是@rkxuan,他发现了构成标点模型基础的仓库。
模型架构:
- ASR模型:Wav2vec2 CTC模型
- Ngram:Kenlm
- 标点模型:xlm-roberta-large
有效的方法:
- 在@umongsain过滤后的Common Voice数据集上进行微调,公共排行榜得分从
0.439提升至0.428。 - 在Openslr 37上进行微调后,公共排行榜得分从
0.428提升至0.414。 - 将Oscar语料库整合到ngram中。
- 使用audiomentations进行数据增强。
- 采用来自该仓库的xlm-roberta-large配置。
- 使用Optuna搜索解码超参数,具体方法可参考该notebook。
挑战:
数据集:
- Openslr 53:数据量庞大,可能导致训练过程中的过拟合。由于其众包性质,尤其是与更精细的Openslr 37相比,这可能是一个因素。
- Fleurs:质量参差不齐,持续存在的尖锐噪声影响了数据集的质量。
- 竞赛数据集:质量差异较大。
标点恢复:
- 在恢复五个标点符号时遇到困难:!、,、?、। 和 -。
- 特别是连字符(-)处理起来较为棘手。或许将其单独训练会有所帮助。
音频增强:
- 可能背景音乐(BGM)使用过度。调整音高可能更有效。
语音增强:
- FAIR Denoiser和Nvidia CleanUnet均未达预期效果,令人困惑。也许它们无意中降低了人声质量。
专业提示:
- 优先使用ARPA格式而非BIN。Kenlm在转换后似乎会丢失unigram,但该技巧可将得分提升
0.007。注意Kaggle的13GB内存限制。最终我采用了一个约12GB的精简4gram模型。
观察:
- 基于标注的OOD样本的本地交叉验证与公共排行榜结果高度一致,这可能解释了最终排名几乎没有波动的原因。
- Oscar语料库主要包含正式文章,因此尽管ngram模型庞大,仍可能忽略OOD测试集中的小众词汇,尤其是在观察到的高OOV(未登录词)情况下。
欢迎分享您的想法和经验!