576. Bengali.AI Speech Recognition | bengaliai-speech
我要向比赛主办方表达感谢。作为自动语音识别(ASR)领域的相对新人,我很高兴能在这项赛事中获得奖牌。我对结果非常满意,并向比赛参与者和主办方表示感谢。
解决方案包含2个组件:
最初,我尝试了多个Hugging Face(HF)模型,使用约20,000个数据样本进行训练。测试的模型包括:
最终,我选择了"shahruk10/wav2vec2-xls-r-300m-bengali-commonvoice"模型。你可以在我的HF仓库中找到所有微调模型:https://huggingface.co/Aspik101
最终的微调模型可以访问:https://huggingface.co/Aspik101/shahruk10_checkpoint-360_2444
最终模型经历了两步训练过程。第一步,模型在过滤后的数据上进行训练,其中词错误率(WER)小于80,数据来源于yellowking模型、MADASR数据集和google/fleurs。该训练基于流模式执行,耗时约20小时。
trainer = Trainer(
model=model,
data_collator=daata_collator,
args=training_args,
compute_metrics=compute_metrics,
train_dataset=IterableWrapper(train),
eval_dataset=IterableWrapper(val),
tokenizer=processor.feature_extractor)
在Hugging Face上通过流加载数据在处理大型数据集时非常有用,或者当你希望在模型运行时持续提供数据,而不是一次性将整个数据集加载到内存中。
在此阶段,我在排行榜上取得的最佳结果约为0.424。
接下来,模型使用比赛数据中的examples文件夹数据进行训练!多亏了这一点,我成功将结果提升到了0.404。
5-gram kenlm模型在竞赛数据集外部孟加拉语文本语料库IndicCorp V1+V2上训练。
from indicparser import graphemeParser
gp=graphemeParser("bangla")
总之,我要再次向比赛主办方和参与者表示感谢。这段旅程对我来说是一次难以置信的学习经历,我很兴奋能继续在ASR领域探索。