modelscope / FunASR

A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc.
https://www.funasr.com
Other
6.94k stars 737 forks source link

微调模型,数据中未收录的单词并未影响预测结果 #1996

Open xipingL opened 3 months ago

xipingL commented 3 months ago

Notice: In order to resolve issues more efficiently, please raise issue following the template. (注意:为了更加高效率解决您遇到的问题,请按照模板提问,补充细节)

❓ Questions and Help

What is your question?

你好,我使用paraformer_zh模型进行微调,数据中存在一些不被词典收录的英语单词(类似于funasr),但是使用微调后的模型预测一些带有这些单词的音频时,并没有得到想要的结果。 想询问如果数据是一些带有专有名词的英语单词,需要怎么微调才能得到想要的结果,能够识别这些专有名词。

Code

微调代码没有修改,使用的是https://github.com/modelscope/FunASR/blob/main/examples/industrial_data_pretraining/paraformer/finetune.sh

预测代码 from funasr import AutoModel model = AutoModel( model = "./outputs", ) res = model.generate( input="D://opt/dataset/1.wav", cache={}, ) print(res)

What have you tried?

我想过添加热词,但是并没有生效 再次感谢

What's your environment?

RERUIN76 commented 2 months ago

我希望得到你的帮助,这个问题你现在是否已经解决,我尝试训练时同样是使用官方的训练脚本去微调speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online模型,但是得到的训练后的模型也不能识别出正确结果,似乎和训练之前保持一致

xipingL commented 2 months ago

我希望得到你的帮助,这个问题你现在是否已经解决,我尝试训练时同样是使用官方的训练脚本去微调speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online模型,但是得到的训练后的模型也不能识别出正确结果,似乎和训练之前保持一致

你微调时 修改segdict和tokens.json文件了吗

RERUIN76 commented 2 months ago

没有,应该如何更改呢。我在脚本文件中不是指定使用的模型路径speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online这里面的segdict和tokens.json文件也要进行修改吗

RERUIN76 commented 2 months ago

是否有可能是官方给的脚本中的学习率给的太低的缘故呢,我看训练的log,里面每个epoch的学习率都很低(lr: 2.667e-08) [2024-08-24 15:30:53,027][root][INFO] - train, rank: 0, epoch: 1/50, data_slice: 0/1, step_in_slice: 1/1, step_in_epoch: 1, total step: 2, (loss_avg_rank: 1.191), (loss_avg_slice: 1.191), (ppl_avg_slice: 3.289e+00), (acc_avg_slice: 0.720), (lr: 2.667e-08), [('loss_att', 1.046), ('acc', 0.72), ('loss_pre', 0.078), ('loss_pre2', 0.135), ('loss', 1.191)], {'data_load': '0.306', 'forward_time': '0.184', 'backward_time': '0.140', 'optim_time': '0.042', 'total_time': '0.672'}, GPU, memory: usage: 2.631 GB, peak: 4.363 GB, cache: 4.564 GB, cache_peak: 4.564 GB 按着这种lr的参数,训练50epoch对原模型的影响感觉微乎其微。如果你有其他任何有关想法请给出留言