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.46k stars 688 forks source link

微调模型出现了个问题,请指教我下,哪里弄错了 #1673

Closed chenmiaotian closed 5 months ago

chenmiaotian commented 5 months ago

finetune:

模型路径

model_name_or_model_dir="iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch"

train_data="data/train.jsonl" val_data="data/valid.jsonl"

scp2jsonl \ ++scp_file_list='["data/train_wav.scp", "data/train_text.txt"]' \ ++data_type_list='["source", "target"]' \ ++jsonl_file_out="${train_data}"

scp2jsonl \ ++scp_file_list='["data/valid_wav.scp", "data/valid_text.txt"]' \ ++data_type_list='["source", "target"]' \ ++jsonl_file_out="${val_data}"

exp output dir

output_dir="./outputs" log_file="${output_dir}/log.txt"

mkdir -p ${output_dir} echo "log_file: ${log_file}"

FunASR/funasr/bin/train.py \ ++model="${model_name_or_model_dir}" \ ++train_data_set_list="${train_data}" \ ++valid_data_set_list="${val_data}" \ ++dataset_conf.batch_size=20000 \ ++dataset_conf.batch_type="token" \ ++dataset_conf.num_workers=4 \ ++train_conf.max_epoch=50 \ ++train_conf.log_interval=1 \ ++train_conf.resume=false \ ++train_conf.validate_interval=2000 \ ++train_conf.save_checkpoint_interval=2000 \ ++train_conf.keep_nbest_models=20 \ ++train_conf.avg_nbest_model=10 \ ++optim_conf.lr=0.0002 \ ++output_dir="${output_dir}" &> ${log_file}

错误如下: Error executing job with overrides: ['++model=iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch', '++train_data_set_list=data/train.jsonl', '++valid_data_set_list=data/valid.jsonl', '++dataset_conf.batch_size=20000', '++dataset_conf.batch_type=token', '++dataset_conf.num_workers=4', '++train_conf.max_epoch=50', '++train_conf.log_interval=1', '++train_conf.resume=false', '++train_conf.validate_interval=2000', '++train_conf.save_checkpoint_interval=2000', '++train_conf.keep_nbest_models=20', '++train_conf.avg_nbest_model=10', '++optim_conf.lr=0.0002', '++output_dir=./outputs'] Traceback (most recent call last): File "/mnt/workspace/FunASR/funasr/bin/train.py", line 250, in main_hydra() File "/opt/conda/lib/python3.10/site-packages/hydra/main.py", line 94, in decorated_main _run_hydra( File "/opt/conda/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra _run_app( File "/opt/conda/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app run_and_report( File "/opt/conda/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report raise ex File "/opt/conda/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report return func() File "/opt/conda/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in lambda: hydra.run( File "/opt/conda/lib/python3.10/site-packages/hydra/internal/hydra.py", line 132, in run = ret.return_value File "/opt/conda/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value raise self._return_value File "/opt/conda/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job ret.return_value = task_function(task_cfg) File "/mnt/workspace/FunASR/funasr/bin/train.py", line 51, in main_hydra main(kwargs) File "/mnt/workspace/FunASR/funasr/bin/train.py", line 210, in main trainer.train_epoch( File "/mnt/workspace/FunASR/funasr/train_utils/trainer.py", line 351, in train_epoch for batch_idx, batch in enumerate(dataloader_train): File "/opt/conda/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 630, in next data = self._next_data() File "/opt/conda/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 1345, in _next_data return self._process_data(data) File "/opt/conda/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 1371, in _process_data data.reraise() File "/opt/conda/lib/python3.10/site-packages/torch/_utils.py", line 694, in reraise raise exception AttributeError: Caught AttributeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/opt/conda/lib/python3.10/site-packages/torch/utils/data/_utils/worker.py", line 308, in _worker_loop data = fetcher.fetch(index) File "/opt/conda/lib/python3.10/site-packages/torch/utils/data/_utils/fetch.py", line 51, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/opt/conda/lib/python3.10/site-packages/torch/utils/data/_utils/fetch.py", line 51, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/mnt/workspace/FunASR/funasr/datasets/audio_datasets/datasets.py", line 67, in getitem speech, speech_lengths = extract_fbank( File "/mnt/workspace/FunASR/funasr/utils/load_utils.py", line 173, in extract_fbank data, data_len = frontend(data, data_len, kwargs) File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, *kwargs) File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl return forward_call(args, **kwargs) File "/mnt/workspace/FunASR/funasr/frontends/wav_frontend.py", line 125, in forward batch_size = input.size(0) AttributeError: 'str' object has no attribute 'size' . Did you mean: '_return_value'?

badarrrr commented 3 months ago

我也遇到了这个问题,请问你解决了吗?