Closed XiaGuangmin closed 11 months ago
如果要使用训好的那个bias模型,需要把wenet/transformer/context_module.py中BLSTM的forward函数里的-2改成0(正确的值应该是-2,但我在训练时代码还存在这个问题),但你自己训练+测试没有效果的原因我这边也判断不出来,我这边训到最后cvloss是收敛到6.1左右,你的cv loss能到6.3按理来说也是有效果的。 我这边也重新clone代码并用训好的那个bias模型测试,使用完整的test_other热词列表,在biasing_score=1.0的情况下wer为8.60%,在使用热词筛选(阈值-4)后是8.04%。7.93%是biasing_score=1.5并且使用热词筛选的结果。
您好,您的邮件我已经收到,会尽快给您回复!祝您生活愉快,工作顺利!
如果要使用训好的那个bias模型,需要把wenet/transformer/context_module.py中BLSTM的forward函数里的-2改成0(正确的值应该是-2,但我在训练时代码还存在这个问题),但你自己训练+测试没有效果的原因我这边也判断不出来,我这边训到最后cvloss是收敛到6.1左右,你的cv loss能到6.3按理来说也是有效果的。 我这边也重新clone代码并用训好的那个bias模型测试,使用完整的test_other热词列表,在biasing_score=1.0的情况下wer为8.60%,在使用热词筛选(阈值-4)后是8.04%。7.93%是biasing_score=1.5并且使用热词筛选的结果。
此外我使用的是attention rescore解码,之前的表里面没写清楚,不好意思。如果解码出来是九点几很可能用的是ctc prefix beam search,在不带热词筛选的情况下,baseline9.5%,bias9.25%是比较正常的结果
谢谢您的回复,我用的应该的ctc prefix beam search解码的,这个结果可以对得上。
参考该链接方法: https://github.com/wenet-e2e/wenet/pull/1982
先尝试用作者提供训好模型、配置文件以及热词列表解码,在librispeech上test other wer为9.5%。(作者给出的结果为7.93%) 然后自己训练了一版,batch size 调整到32,以及batch num contex也调整到32, 迭代了29个epo也是avg最后三个模型,解码结果为9.25%(离线, score=1.0),还是无法复现作者给出的结果。 train loss 基本不变,loss_bias 从20 多下降到9左右,cv loss 6.3左右
解码配置:
python wenet/bin/recognize.py --gpu $gpu_id \ --mode $mode \ --config $dir/train.yaml \ --data_type raw \ --dict $dict \ --bpe_model ${bpemodel}.model \ --test_data $wave_data/$test/data.list \ --checkpoint $decode_checkpoint \ --beam_size 10 \ --batch_size 1 \ --penalty 0.0 \ --result_file $test_dir/text_bpe \ --ctc_weight $ctc_weight \ ${decoding_chunk_size:+--decoding_chunk_size $decoding_chunk_size} --context_bias_mode deep_biasing \ ${context_bias_mode} \ --context_list_path exp/context/test_other_context_list.txt \ --deep_biasing_score 1.0
模型下载自:https://huggingface.co/kxhuang/Wenet_Librispeech_deep_biasing/tree/main