返回列表

23nd Solution - My first competition medal

576. Bengali.AI Speech Recognition | bengaliai-speech

开始: 2023-07-17 结束: 2023-10-17 音视频处理 数据算法赛
第23名解决方案 - 我的第一块比赛奖牌

第23名解决方案 - 我的第一块比赛奖牌

作者:HuBERT(专家级)
比赛排名:第23名
发布时间:2023年10月19日

我要向比赛主办方表达感谢。作为自动语音识别(ASR)领域的相对新人,我很高兴能在这项赛事中获得奖牌。我对结果非常满意,并向比赛参与者和主办方表示感谢。

解决方案包含2个组件:

  1. ASR模型
  2. Ngram KenLM模型

1. ASR模型

最初,我尝试了多个Hugging Face(HF)模型,使用约20,000个数据样本进行训练。测试的模型包括:

  • LegolasTheElf/Wav2Vec2_XLSR_Bengali_1b
  • arijitx/wav2vec2-large-xlsr-bengali
  • arijitx/wav2vec2-xls-r-300m-bengali
  • tanmoyio/wav2vec2-large-xlsr-bengali
  • ai4bharat/indicwav2vec_v1_bengali
  • Umong/wav2vec2-large-mms-1b-bengali
  • kabir5297/Wav2Vec2-90k-Bengali
  • tanmoyio/wav2vec2-large-xlsr-bengali
  • bayartsogt/bengali-2023-0016
  • shahruk10/wav2vec2-xls-r-300m-bengali-commonvoice
  • jonatasgrosman/wav2vec2-large-xlsr-53-english
  • wav2vec2-xls-r-2b - 从头开始训练
  • wav2vec2-xls-r-1b - 从头开始训练

最终,我选择了"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

2. Ngram KenLM模型

5-gram kenlm模型在竞赛数据集外部孟加拉语文本语料库IndicCorp V1+V2上训练。

未奏效的方法

from indicparser import graphemeParser
gp=graphemeParser("bangla")

总之,我要再次向比赛主办方和参与者表示感谢。这段旅程对我来说是一次难以置信的学习经历,我很兴奋能继续在ASR领域探索。

同比赛其他方案