yeyupiaoling / MASR

Pytorch实现的流式与非流式的自动语音识别框架,同时兼容在线和离线识别,目前支持Conformer、Squeezeformer、DeepSpeech2模型,支持多种数据增强方法。
Apache License 2.0
596 stars 106 forks source link

实时语音识别,报hidden层size不匹配 #42

Closed moneypi closed 2 years ago

moneypi commented 2 years ago

`(base) luke@luke-VirtualBox:~/MASR$ python infer_path.py --real_time_demo=True ----------- Configuration Arguments ----------- alpha: 2.2 beam_size: 300 beta: 4.3 cutoff_prob: 0.99 cutoff_top_n: 40 decoder: ctc_beam_search feature_method: linear is_long_audio: False lang_model_path: lm/zh_giga.no_cna_cmn.prune01244.klm model_path: models/deepspeech2/inference.pt pun_model_dir: models/pun_models/ real_time_demo: 1 to_an: False use_gpu: False use_model: deepspeech2 use_pun: False vocab_path: dataset/vocabulary.txt wav_path: ./dataset/test.wav

缺少 paddlespeech-ctcdecoders 库,请根据文档安装,如果是Windows系统,只能使用ctc_greedy。 【注意】已自动切换为ctc_greedy解码器。

[W NNPACK.cpp:79] Could not initialize NNPACK! Reason: Unsupported hardware. 分段结果:消耗时间:153ms, 识别结果: 近, 得分: 60 Traceback (most recent call last): File "infer_path.py", line 93, in real_time_predict_demo() File "infer_path.py", line 81, in real_time_predict_demo predictor.predict_stream(audio_bytes=data, to_an=args.to_an, init_state_h_box=state_h, init_state_c_box=state_c) File "/home/luke/MASR/masr/predict.py", line 209, in predict_stream output_data, output_state_h, output_state_c = self.predictor(audio_data, audio_len, init_state_h_box, init_state_c_box) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, kwargs) File "/home/luke/MASR/masr/modelutils/utils.py", line 34, in forward logits, , final_chunk_state_h_box, final_chunk_state_c_box = self.model(x, audio_len, init_state_h_box, init_state_c_box) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, *kwargs) File "/home/luke/MASR/masr/model_utils/deepspeech2/model.py", line 53, in forward x, final_chunk_state_h_box, final_chunk_state_c_box = self.rnn(x, x_lens, init_state_h_box, init_state_c_box) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(input, kwargs) File "/home/luke/MASR/masr/model_utils/deepspeech2/rnn.py", line 69, in forward x, final_state = rnn(x, x_lens, init_state) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, *kwargs) File "/home/luke/MASR/masr/model_utils/deepspeech2/rnn.py", line 24, in forward x, final_state = self.rnn(x, init_state) # [B, T, D] File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(input, **kwargs) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/rnn.py", line 847, in forward self.check_forward_args(input, hx, batch_sizes) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/rnn.py", line 232, in check_forward_args self.check_hidden_size(hidden, expected_hidden_size) File "/home/luke/miniconda3/lib/python3.8/site-packages/torch/nn/modules/rnn.py", line 226, in check_hidden_size raise RuntimeError(msg.format(expected_hidden_size, list(hx.size()))) RuntimeError: Expected hidden size (1, 1, 1024), got [5, 1, 1024] `

yeyupiaoling commented 2 years ago

其他的预测正常吗?

moneypi commented 2 years ago

long 音频结果很差,不过没有语法错误

moneypi commented 2 years ago

我提交了一种修改方式,不过我只针对GRU方式进行了修改,lstm我没有调试 修改方式大概有两种,除了我提交的一种,另一种是修改为 init_state_h_list = torch.split(init_state_h_box, 1) 供参考

moneypi commented 2 years ago

但如果是预测另一个文件,test_long.wav,结果就有点差 python infer_path.py --use_gpu=False --real_time_demo=True 分段结果:消耗时间:66ms, 识别结果: 坐仅里行完持的女生上个游的于主树不直的干女值的知他的干难冯长是站罢刀现十家与人工示临胜饮美绝无胖知而所有的养之零女性上而子紧警靠拢也下时加以人工时成为于数结无航协女处刷着宽打一子以是智至相上几乎没有十生等不不勇说盗处溜她着执光华而游影色的运圈微归贩出证惊色而着是是在被方着风西的压迫下却到纸战绝胜屏率的一重事拿怕只有把来出世把他确鲁利象上发展招岗这寻两战参天阻名不着不打坠抗的视备称致就是白阳术系被惊出通的一种术马而绝有平发的受卡利婆说的这汉没有需居盘选的职真连主描说她不满运如果没只专职国说获很十举出折而言那亡怀养述算不的数中的号女束而是躺觉是唯二正治普置颜肃也不切麻工和更不勇亲住的肩抢部之于止八她实失故中的美账主港你在击主出炉的高原上座播场见苹场大地上捞两指命这么隐猪回忆排榜养术燃闹女处只之人失只是数难到你救不想不的他的处治严处兼强部知致疗也巷的么被方的东力兰到一金一点而也不零想到在第后的广吧出女上述游真奖部之就下了白央失医样澳元紧密的首位他们佳相照兵完倒一右著原因点想当志亡之之运人人后紧团截绿书上不尽的拐养术我员相的玩进天转环北之园重横决账用失解除新中国绿志战而中精神很意之欢物光工普通话时期望欢绑六运过人十亡创, 得分: 38 整一句结果:消耗时间:9944ms, 识别结果: 坐品银行晚池另女生上个有的于主树不直的干女值的知他的干难同长是丈么爸刀现实相与人工示临尚以美绝无胖知扒所有的养之的女女性上而子仅警靠拢也下时加以人工时成为于数结无航执女处他着框打的一子也是骗聘相上几乎没有时生等更不容说照处婴她着指邻光华而游银摄的运圈微贩出战惊色着时是在被方的不识的压迫下请到持站绝胜锦率的移主书拿怕而只有玩来出世吧他确鲁利象上发展招档唱母寻两战参天阻名不者不打对抗的戏备称这就是而阳术希被仅出通的严主拿而截不是平发的喊没有婆缩的姿看没有七七谈者的职之连主养说她不满力如果没只专职婆说获很十举出折而言马麻反凉术算不的数中的号女主而是躺觉是唯二正之普置颜肃也不切马婚喝更不勇亲长的接抢部区于持八她使失故中的美账张里在七主出炉的高原上周播场见苹场着罢地上捞两只率这么影猪回忆卡白养术燃闹你处只之人失只是数难到你救不想不的他的处致严处兼强部亲致杀也巷的费放的东里难到一致一点而也不零想到在第后的广大土地上述游基奖部之就下着白央失医样澳园止率的首位他们的佳限的照兵难倒女右重原因点想当志两之之运人人好紧团结绿求上不尽的拐样术我员想真玩今天转环北之园重横绝大幕失解除新中国绿志的而中金神合异之欢人普通二实期望双绑六运过人十创, 得分: 57 这个不知道怎么提升

`(base) luke@luke-NH5x-7xRCx-RDx:~/MASR$ python infer_path.py --use_gpu=False --is_long_audio=True ----------- Configuration Arguments ----------- alpha: 2.2 beam_size: 300 beta: 4.3 cutoff_prob: 0.99 cutoff_top_n: 40 decoder: ctc_beam_search feature_method: linear is_long_audio: 1 lang_model_path: lm/zh_giga.no_cna_cmn.prune01244.klm model_path: models/deepspeech2/inference.pt pun_model_dir: models/pun_models/ real_time_demo: False to_an: False use_gpu: 0 use_model: deepspeech2 use_pun: False vocab_path: dataset/vocabulary.txt wav_path: ./dataset/test_long.wav

缺少 paddlespeech-ctcdecoders 库,请根据文档安装,如果是Windows系统,只能使用ctc_greedy。 【注意】已自动切换为ctc_greedy解码器。

第0个分割音频, 得分: 65, 识别结果: 做品名好 第1个分割音频, 得分: 60, 识别结果: 把尺力女争上个有的于树 第2个分割音频, 得分: 50, 识别结果: 瑞一直的案与值的知 第3个分割音频, 得分: 43, 识别结果: 他着干了 第4个分割音频, 得分: 49, 识别结果: 衡厂只丈爸到现止质与人工式 第5个分割音频, 得分: 50, 识别结果: 人约涨以美绝五胖知 第6个分割音频, 得分: 65, 识别结果: 拿所有的养制的 第7个分割音频, 得分: 61, 识别结果: 与女上上而且仅入警靠拢 第8个分割音频, 得分: 64, 识别结果: 也下是降以人工时成为于数结五航指与处 第9个分割音频, 得分: 65, 识别结果: 法宽大了一子也是智聘相上几乎没有时生目的 第10个分割音频, 得分: 62, 识别结果: 更不勇说赵处婴 第11个分割音频, 得分: 68, 识别结果: 她着指光华而游银色的运圈 第12个分割音频, 得分: 45, 识别结果: 微微反出战惊子 第13个分割音频, 得分: 67, 识别结果: 是是是在被方的风雪的压迫下却保持家绝胜锦率的一术 第14个分割音频, 得分: 58, 识别结果: 把怕只有马来出去把 第15个分割音频, 得分: 54, 识别结果: 他取努利向上发展高档唱寻圆站参天阻名步着不到对抗的识备称 第16个分割音频, 得分: 56, 识别结果: 这就是白养术希被吉主通的一主 第17个分割音频, 得分: 64, 识别结果: 而截不是平法的 第18个分割音频, 得分: 55, 识别结果: 法没有普苏的自势没有有需七盘选的职之 第19个分割音频, 得分: 64, 识别结果: 别始不养说他不买力 第20个分割音频, 得分: 67, 识别结果: 如观美只专职婆说或很十举出折而言 第21个分割音频, 得分: 67, 识别结果: 爸班白养术顺不的数中的号女子 第22个分割音频, 得分: 57, 识别结果: 二时她就是唯二正职普置延肃也不切马温说 第23个分割音频, 得分: 60, 识别结果: 更不勇集场的接奖部之于止八 第24个分割音频, 得分: 64, 识别结果: 拿实是故中的美正 第25个分割音频, 得分: 66, 识别结果: 上里在积极出炉了高原上住果 第26个分割音频, 得分: 56, 识别结果: 罕景苹厂的罢地上扼然智率这么以朱国应传榜养术 第27个分割音频, 得分: 66, 识别结果: 玩照你处只之的数只是数 第28个分割音频, 得分: 66, 识别结果: 难到你就不想不的他的处致沿重兼强部之 第29个分割音频, 得分: 68, 识别结果: 是少也想的了不放的东力 第30个分割音频, 得分: 69, 识别结果: 男到一经一不而也不零想到 第31个分割音频, 得分: 79, 识别结果: 转第后的广大土力上 第32个分割音频, 得分: 52, 识别结果: 澳属由间奖部之就下着而央施医样澳然景力的首位他们家限的照兵 第33个分割音频, 得分: 54, 识别结果: 完岛李诱著原一点想到近养之之运人人好紧团结绿球上不尽的怀样术我然想认玩今天转环给职圆重横绝大用是写除新中国绿之的而荣精神和意 第34个分割音频, 得分: 52, 识别结果: 欢迎光零普化时施望松绑六运拼肩靠 最终结果,消耗时间:8656, 得分: 60, 识别结果: ,做品名好,把尺力女争上个有的于树,瑞一直的案与值的知,他着干了,衡厂只丈爸到现止质与人工式,人约涨以美绝五胖知,拿所有的养制的,与女上上而且仅入警靠拢,也下是降以人工时成为于数结五航指与处,法宽大了一子也是智聘相上几乎没有时生目的,更不勇说赵处婴,她着指光华而游银色的运圈,微微反出战惊子,是是是在被方的风雪的压迫下却保持家绝胜锦率的一术,把怕只有马来出去把,他取努利向上发展高档唱寻圆站参天阻名步着不到对抗的识备称,这就是白养术希被吉主通的一主,而截不是平法的,法没有普苏的自势没有有需七盘选的职之,别始不养说他不买力,如观美只专职婆说或很十举出折而言,爸班白养术顺不的数中的号女子,二时她就是唯二正职普置延肃也不切马温说,更不勇集场的接奖部之于止八,拿实是故中的美正,上里在积极出炉了高原上住果,罕景苹厂的罢地上扼然智率这么以朱国应传榜养术,玩照你处只之的数只是数,难到你就不想不的他的处致沿重兼强部之,是少也想的了不放的东力,男到一经一不而也不零想到,转第后的广大土力上,澳属由间奖部之就下着而央施医样澳然景力的首位他们家限的照兵,完岛李诱著原一点想到近养之之运人人好紧团结绿球上不尽的怀样术我然想认玩今天转环给职圆重横绝大用是写除新中国绿之的而荣精神和意,欢迎光零普化时施望松绑六运拼肩靠 `

yeyupiaoling commented 2 years ago

那个文件是我在网上找的,不属于这个任何数据集,加上数据比较小。准确率差点。另外尽量用集束搜索方法解码。

moneypi commented 2 years ago

您指的是音频文件还是指的模型文件?

yeyupiaoling commented 1 year ago

数据集比较小,模型效果对你的数据可能不佳。你可以用你的数据训练看看效果。