├── .gitignore ├── LICENSE ├── README.md ├── requirements.txt ├── track1_asr ├── conf │ └── train_ebranchformer.yaml ├── local │ ├── data_prep.py │ ├── enhance.py │ ├── enhancement.sh │ ├── enhancement │ │ ├── iva.py │ │ └── pfdkf.py │ ├── generate_submission_file.py │ ├── icmcasr_data_prep.sh │ ├── normalize │ │ └── cn_tn.py │ └── segment_wavs.py ├── path.sh ├── run.sh ├── tools │ ├── alignment.sh │ ├── analyze_dataset.py │ ├── cmvn_kaldi2json.py │ ├── combine_data.sh │ ├── compute-cer.py │ ├── compute-wer.py │ ├── compute_cmvn_stats.py │ ├── compute_fbank_feats.py │ ├── copy_data_dir.sh │ ├── data │ │ ├── remove_dup_utts.sh │ │ └── split_scp.pl │ ├── decode.sh │ ├── feat_to_shape.sh │ ├── filter_scp.pl │ ├── filter_uneven_data.py │ ├── fix_data_dir.sh │ ├── flake8_hook.py │ ├── format_data.sh │ ├── fst │ │ ├── add_lex_disambig.pl │ │ ├── compile_lexicon_token_fst.sh │ │ ├── ctc_token_fst.py │ │ ├── ctc_token_fst_compact.py │ │ ├── ctc_token_fst_corrected.py │ │ ├── eps2disambig.pl │ │ ├── make_lexicon_fst.pl │ │ ├── make_tlg.sh │ │ ├── prepare_dict.py │ │ ├── remove_oovs.pl │ │ ├── rnnt_token_fst.py │ │ └── s2eps.pl │ ├── git-pre-commit │ ├── install_srilm.sh │ ├── k2 │ │ ├── make_hlg.sh │ │ ├── prepare_char.py │ │ └── prepare_mmi.sh │ ├── latency_metrics.py │ ├── make_raw_list.py │ ├── make_shard_list.py │ ├── merge_scp2txt.py │ ├── onnx2horizonbin.py │ ├── parse_options.sh │ ├── perturb_data_dir_speed.sh │ ├── reduce_data_dir.sh │ ├── remove_longshortdata.py │ ├── segment.py │ ├── setup_anaconda.sh │ ├── sph2wav.sh │ ├── spk2utt_to_utt2spk.pl │ ├── spm_decode │ ├── spm_encode │ ├── spm_train │ ├── subset_data_dir.sh │ ├── subset_scp.pl │ ├── sym2int.pl │ ├── text2token.py │ ├── utt2spk_to_spk2utt.pl │ ├── validate_data_dir.sh │ ├── validate_dict_dir.pl │ ├── validate_text.pl │ ├── wav2dur.py │ ├── wav_to_duration.sh │ └── websocket │ │ └── performance-ws.py └── wenet │ ├── README.md │ ├── __init__.py │ ├── bin │ ├── alignment.py │ ├── average_model.py │ ├── export_ipex.py │ ├── export_jit.py │ ├── export_onnx_bpu.py │ ├── export_onnx_cpu.py │ ├── export_onnx_gpu.py │ ├── recognize.py │ ├── recognize_onnx_gpu.py │ └── train.py │ ├── branchformer │ ├── __init__.py │ ├── cgmlp.py │ ├── encoder.py │ └── encoder_layer.py │ ├── cif │ └── predictor.py │ ├── dataset │ ├── __init__.py │ ├── dataset.py │ ├── kaldi_io.py │ ├── processor.py │ └── wav_distortion.py │ ├── e_branchformer │ ├── encoder.py │ └── encoder_layer.py │ ├── efficient_conformer │ ├── __init__.py │ ├── attention.py │ ├── convolution.py │ ├── encoder.py │ ├── encoder_layer.py │ └── subsampling.py │ ├── paraformer │ ├── paraformer.py │ ├── search │ │ ├── beam_search.py │ │ ├── ctc.py │ │ ├── ctc_prefix_score.py │ │ └── scorer_interface.py │ └── utils.py │ ├── squeezeformer │ ├── __init__.py │ ├── attention.py │ ├── conv2d.py │ ├── convolution.py │ ├── encoder.py │ ├── encoder_layer.py │ ├── positionwise_feed_forward.py │ └── subsampling.py │ ├── ssl │ └── bestrq │ │ ├── bestqr_model.py │ │ └── mask.py │ ├── transducer │ ├── __init__.py │ ├── joint.py │ ├── predictor.py │ ├── search │ │ ├── greedy_search.py │ │ └── prefix_beam_search.py │ └── transducer.py │ ├── transformer │ ├── __init__.py │ ├── asr_model.py │ ├── attention.py │ ├── cmvn.py │ ├── convolution.py │ ├── ctc.py │ ├── decoder.py │ ├── decoder_layer.py │ ├── embedding.py │ ├── encoder.py │ ├── encoder_layer.py │ ├── label_smoothing_loss.py │ ├── positionwise_feed_forward.py │ ├── subsampling.py │ └── swish.py │ └── utils │ ├── __init__.py │ ├── checkpoint.py │ ├── cmvn.py │ ├── common.py │ ├── config.py │ ├── context_graph.py │ ├── ctc_util.py │ ├── executor.py │ ├── file_utils.py │ ├── init_model.py │ ├── mask.py │ └── scheduler.py └── track2_asdr ├── data ├── dev_ref.txt ├── dict │ └── lang_char.txt └── train_aec_iva_near │ └── global_cmvn ├── exp └── baseline_ebranchformer │ ├── avg_10.pt │ └── train.yaml ├── local ├── compute_cpcer.py ├── generate_submission_file.py ├── merge_session_rttms.py ├── pyannote_vad.py ├── run_pyannote_vad.sh └── segment_wavs_by_rttm.py ├── path.sh ├── run.sh ├── tools └── wenet /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/README.md -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/requirements.txt -------------------------------------------------------------------------------- /track1_asr/conf/train_ebranchformer.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/conf/train_ebranchformer.yaml -------------------------------------------------------------------------------- /track1_asr/local/data_prep.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/data_prep.py -------------------------------------------------------------------------------- /track1_asr/local/enhance.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/enhance.py -------------------------------------------------------------------------------- /track1_asr/local/enhancement.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/enhancement.sh -------------------------------------------------------------------------------- /track1_asr/local/enhancement/iva.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/enhancement/iva.py -------------------------------------------------------------------------------- /track1_asr/local/enhancement/pfdkf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/enhancement/pfdkf.py -------------------------------------------------------------------------------- /track1_asr/local/generate_submission_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/generate_submission_file.py -------------------------------------------------------------------------------- /track1_asr/local/icmcasr_data_prep.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/icmcasr_data_prep.sh -------------------------------------------------------------------------------- /track1_asr/local/normalize/cn_tn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/normalize/cn_tn.py -------------------------------------------------------------------------------- /track1_asr/local/segment_wavs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/local/segment_wavs.py -------------------------------------------------------------------------------- /track1_asr/path.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/path.sh -------------------------------------------------------------------------------- /track1_asr/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/run.sh -------------------------------------------------------------------------------- /track1_asr/tools/alignment.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/alignment.sh -------------------------------------------------------------------------------- /track1_asr/tools/analyze_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/analyze_dataset.py -------------------------------------------------------------------------------- /track1_asr/tools/cmvn_kaldi2json.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/cmvn_kaldi2json.py -------------------------------------------------------------------------------- /track1_asr/tools/combine_data.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/combine_data.sh -------------------------------------------------------------------------------- /track1_asr/tools/compute-cer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/compute-cer.py -------------------------------------------------------------------------------- /track1_asr/tools/compute-wer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/compute-wer.py -------------------------------------------------------------------------------- /track1_asr/tools/compute_cmvn_stats.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/compute_cmvn_stats.py -------------------------------------------------------------------------------- /track1_asr/tools/compute_fbank_feats.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/compute_fbank_feats.py -------------------------------------------------------------------------------- /track1_asr/tools/copy_data_dir.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/copy_data_dir.sh -------------------------------------------------------------------------------- /track1_asr/tools/data/remove_dup_utts.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/data/remove_dup_utts.sh -------------------------------------------------------------------------------- /track1_asr/tools/data/split_scp.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/data/split_scp.pl -------------------------------------------------------------------------------- /track1_asr/tools/decode.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/decode.sh -------------------------------------------------------------------------------- /track1_asr/tools/feat_to_shape.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/feat_to_shape.sh -------------------------------------------------------------------------------- /track1_asr/tools/filter_scp.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/filter_scp.pl -------------------------------------------------------------------------------- /track1_asr/tools/filter_uneven_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/filter_uneven_data.py -------------------------------------------------------------------------------- /track1_asr/tools/fix_data_dir.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fix_data_dir.sh -------------------------------------------------------------------------------- /track1_asr/tools/flake8_hook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/flake8_hook.py -------------------------------------------------------------------------------- /track1_asr/tools/format_data.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/format_data.sh -------------------------------------------------------------------------------- /track1_asr/tools/fst/add_lex_disambig.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/add_lex_disambig.pl -------------------------------------------------------------------------------- /track1_asr/tools/fst/compile_lexicon_token_fst.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/compile_lexicon_token_fst.sh -------------------------------------------------------------------------------- /track1_asr/tools/fst/ctc_token_fst.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/ctc_token_fst.py -------------------------------------------------------------------------------- /track1_asr/tools/fst/ctc_token_fst_compact.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/ctc_token_fst_compact.py -------------------------------------------------------------------------------- /track1_asr/tools/fst/ctc_token_fst_corrected.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/ctc_token_fst_corrected.py -------------------------------------------------------------------------------- /track1_asr/tools/fst/eps2disambig.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/eps2disambig.pl -------------------------------------------------------------------------------- /track1_asr/tools/fst/make_lexicon_fst.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/make_lexicon_fst.pl -------------------------------------------------------------------------------- /track1_asr/tools/fst/make_tlg.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/make_tlg.sh -------------------------------------------------------------------------------- /track1_asr/tools/fst/prepare_dict.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/prepare_dict.py -------------------------------------------------------------------------------- /track1_asr/tools/fst/remove_oovs.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/remove_oovs.pl -------------------------------------------------------------------------------- /track1_asr/tools/fst/rnnt_token_fst.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/rnnt_token_fst.py -------------------------------------------------------------------------------- /track1_asr/tools/fst/s2eps.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/fst/s2eps.pl -------------------------------------------------------------------------------- /track1_asr/tools/git-pre-commit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/git-pre-commit -------------------------------------------------------------------------------- /track1_asr/tools/install_srilm.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/install_srilm.sh -------------------------------------------------------------------------------- /track1_asr/tools/k2/make_hlg.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/k2/make_hlg.sh -------------------------------------------------------------------------------- /track1_asr/tools/k2/prepare_char.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/k2/prepare_char.py -------------------------------------------------------------------------------- /track1_asr/tools/k2/prepare_mmi.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/k2/prepare_mmi.sh -------------------------------------------------------------------------------- /track1_asr/tools/latency_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/latency_metrics.py -------------------------------------------------------------------------------- /track1_asr/tools/make_raw_list.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/make_raw_list.py -------------------------------------------------------------------------------- /track1_asr/tools/make_shard_list.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/make_shard_list.py -------------------------------------------------------------------------------- /track1_asr/tools/merge_scp2txt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/merge_scp2txt.py -------------------------------------------------------------------------------- /track1_asr/tools/onnx2horizonbin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/onnx2horizonbin.py -------------------------------------------------------------------------------- /track1_asr/tools/parse_options.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/parse_options.sh -------------------------------------------------------------------------------- /track1_asr/tools/perturb_data_dir_speed.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/perturb_data_dir_speed.sh -------------------------------------------------------------------------------- /track1_asr/tools/reduce_data_dir.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/reduce_data_dir.sh -------------------------------------------------------------------------------- /track1_asr/tools/remove_longshortdata.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/remove_longshortdata.py -------------------------------------------------------------------------------- /track1_asr/tools/segment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/segment.py -------------------------------------------------------------------------------- /track1_asr/tools/setup_anaconda.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/setup_anaconda.sh -------------------------------------------------------------------------------- /track1_asr/tools/sph2wav.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/sph2wav.sh -------------------------------------------------------------------------------- /track1_asr/tools/spk2utt_to_utt2spk.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/spk2utt_to_utt2spk.pl -------------------------------------------------------------------------------- /track1_asr/tools/spm_decode: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/spm_decode -------------------------------------------------------------------------------- /track1_asr/tools/spm_encode: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/spm_encode -------------------------------------------------------------------------------- /track1_asr/tools/spm_train: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/spm_train -------------------------------------------------------------------------------- /track1_asr/tools/subset_data_dir.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/subset_data_dir.sh -------------------------------------------------------------------------------- /track1_asr/tools/subset_scp.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/subset_scp.pl -------------------------------------------------------------------------------- /track1_asr/tools/sym2int.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/sym2int.pl -------------------------------------------------------------------------------- /track1_asr/tools/text2token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/text2token.py -------------------------------------------------------------------------------- /track1_asr/tools/utt2spk_to_spk2utt.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/utt2spk_to_spk2utt.pl -------------------------------------------------------------------------------- /track1_asr/tools/validate_data_dir.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/validate_data_dir.sh -------------------------------------------------------------------------------- /track1_asr/tools/validate_dict_dir.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/validate_dict_dir.pl -------------------------------------------------------------------------------- /track1_asr/tools/validate_text.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/validate_text.pl -------------------------------------------------------------------------------- /track1_asr/tools/wav2dur.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/wav2dur.py -------------------------------------------------------------------------------- /track1_asr/tools/wav_to_duration.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/wav_to_duration.sh -------------------------------------------------------------------------------- /track1_asr/tools/websocket/performance-ws.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/tools/websocket/performance-ws.py -------------------------------------------------------------------------------- /track1_asr/wenet/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/README.md -------------------------------------------------------------------------------- /track1_asr/wenet/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/bin/alignment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/alignment.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/average_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/average_model.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/export_ipex.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/export_ipex.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/export_jit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/export_jit.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/export_onnx_bpu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/export_onnx_bpu.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/export_onnx_cpu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/export_onnx_cpu.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/export_onnx_gpu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/export_onnx_gpu.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/recognize.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/recognize.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/recognize_onnx_gpu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/recognize_onnx_gpu.py -------------------------------------------------------------------------------- /track1_asr/wenet/bin/train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/bin/train.py -------------------------------------------------------------------------------- /track1_asr/wenet/branchformer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/branchformer/cgmlp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/branchformer/cgmlp.py -------------------------------------------------------------------------------- /track1_asr/wenet/branchformer/encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/branchformer/encoder.py -------------------------------------------------------------------------------- /track1_asr/wenet/branchformer/encoder_layer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/branchformer/encoder_layer.py -------------------------------------------------------------------------------- /track1_asr/wenet/cif/predictor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/cif/predictor.py -------------------------------------------------------------------------------- /track1_asr/wenet/dataset/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/dataset/dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/dataset/dataset.py -------------------------------------------------------------------------------- /track1_asr/wenet/dataset/kaldi_io.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/dataset/kaldi_io.py -------------------------------------------------------------------------------- /track1_asr/wenet/dataset/processor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/dataset/processor.py -------------------------------------------------------------------------------- /track1_asr/wenet/dataset/wav_distortion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/dataset/wav_distortion.py -------------------------------------------------------------------------------- /track1_asr/wenet/e_branchformer/encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/e_branchformer/encoder.py -------------------------------------------------------------------------------- /track1_asr/wenet/e_branchformer/encoder_layer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/e_branchformer/encoder_layer.py -------------------------------------------------------------------------------- /track1_asr/wenet/efficient_conformer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/efficient_conformer/attention.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/efficient_conformer/attention.py -------------------------------------------------------------------------------- /track1_asr/wenet/efficient_conformer/convolution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/efficient_conformer/convolution.py -------------------------------------------------------------------------------- /track1_asr/wenet/efficient_conformer/encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/efficient_conformer/encoder.py -------------------------------------------------------------------------------- /track1_asr/wenet/efficient_conformer/encoder_layer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/efficient_conformer/encoder_layer.py -------------------------------------------------------------------------------- /track1_asr/wenet/efficient_conformer/subsampling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/efficient_conformer/subsampling.py -------------------------------------------------------------------------------- /track1_asr/wenet/paraformer/paraformer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/paraformer/paraformer.py -------------------------------------------------------------------------------- /track1_asr/wenet/paraformer/search/beam_search.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/paraformer/search/beam_search.py -------------------------------------------------------------------------------- /track1_asr/wenet/paraformer/search/ctc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/paraformer/search/ctc.py -------------------------------------------------------------------------------- /track1_asr/wenet/paraformer/search/ctc_prefix_score.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/paraformer/search/ctc_prefix_score.py -------------------------------------------------------------------------------- /track1_asr/wenet/paraformer/search/scorer_interface.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/paraformer/search/scorer_interface.py -------------------------------------------------------------------------------- /track1_asr/wenet/paraformer/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/paraformer/utils.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/attention.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/attention.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/conv2d.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/conv2d.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/convolution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/convolution.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/encoder.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/encoder_layer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/encoder_layer.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/positionwise_feed_forward.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/positionwise_feed_forward.py -------------------------------------------------------------------------------- /track1_asr/wenet/squeezeformer/subsampling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/squeezeformer/subsampling.py -------------------------------------------------------------------------------- /track1_asr/wenet/ssl/bestrq/bestqr_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/ssl/bestrq/bestqr_model.py -------------------------------------------------------------------------------- /track1_asr/wenet/ssl/bestrq/mask.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/ssl/bestrq/mask.py -------------------------------------------------------------------------------- /track1_asr/wenet/transducer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/transducer/joint.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transducer/joint.py -------------------------------------------------------------------------------- /track1_asr/wenet/transducer/predictor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transducer/predictor.py -------------------------------------------------------------------------------- /track1_asr/wenet/transducer/search/greedy_search.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transducer/search/greedy_search.py -------------------------------------------------------------------------------- /track1_asr/wenet/transducer/search/prefix_beam_search.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transducer/search/prefix_beam_search.py -------------------------------------------------------------------------------- /track1_asr/wenet/transducer/transducer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transducer/transducer.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/asr_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/asr_model.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/attention.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/attention.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/cmvn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/cmvn.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/convolution.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/convolution.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/ctc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/ctc.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/decoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/decoder.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/decoder_layer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/decoder_layer.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/embedding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/embedding.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/encoder.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/encoder_layer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/encoder_layer.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/label_smoothing_loss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/label_smoothing_loss.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/positionwise_feed_forward.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/positionwise_feed_forward.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/subsampling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/subsampling.py -------------------------------------------------------------------------------- /track1_asr/wenet/transformer/swish.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/transformer/swish.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /track1_asr/wenet/utils/checkpoint.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/checkpoint.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/cmvn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/cmvn.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/common.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/config.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/context_graph.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/context_graph.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/ctc_util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/ctc_util.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/executor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/executor.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/file_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/file_utils.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/init_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/init_model.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/mask.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/mask.py -------------------------------------------------------------------------------- /track1_asr/wenet/utils/scheduler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track1_asr/wenet/utils/scheduler.py -------------------------------------------------------------------------------- /track2_asdr/data/dev_ref.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/data/dev_ref.txt -------------------------------------------------------------------------------- /track2_asdr/data/dict/lang_char.txt: -------------------------------------------------------------------------------- 1 | ../../../track1_asr/data/dict/lang_char.txt -------------------------------------------------------------------------------- /track2_asdr/data/train_aec_iva_near/global_cmvn: -------------------------------------------------------------------------------- 1 | ../../../track1_asr/data/train_aec_iva_near/global_cmvn -------------------------------------------------------------------------------- /track2_asdr/exp/baseline_ebranchformer/avg_10.pt: -------------------------------------------------------------------------------- 1 | ../../../track1_asr/exp/baseline_ebranchformer/avg_10.pt -------------------------------------------------------------------------------- /track2_asdr/exp/baseline_ebranchformer/train.yaml: -------------------------------------------------------------------------------- 1 | ../../../track1_asr/exp/baseline_ebranchformer/train.yaml -------------------------------------------------------------------------------- /track2_asdr/local/compute_cpcer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/local/compute_cpcer.py -------------------------------------------------------------------------------- /track2_asdr/local/generate_submission_file.py: -------------------------------------------------------------------------------- 1 | ../../track1_asr/local/generate_submission_file.py -------------------------------------------------------------------------------- /track2_asdr/local/merge_session_rttms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/local/merge_session_rttms.py -------------------------------------------------------------------------------- /track2_asdr/local/pyannote_vad.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/local/pyannote_vad.py -------------------------------------------------------------------------------- /track2_asdr/local/run_pyannote_vad.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/local/run_pyannote_vad.sh -------------------------------------------------------------------------------- /track2_asdr/local/segment_wavs_by_rttm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/local/segment_wavs_by_rttm.py -------------------------------------------------------------------------------- /track2_asdr/path.sh: -------------------------------------------------------------------------------- 1 | ../track1_asr/path.sh -------------------------------------------------------------------------------- /track2_asdr/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrSupW/ICMC-ASR_Baseline/HEAD/track2_asdr/run.sh -------------------------------------------------------------------------------- /track2_asdr/tools: -------------------------------------------------------------------------------- 1 | ../track1_asr/tools -------------------------------------------------------------------------------- /track2_asdr/wenet: -------------------------------------------------------------------------------- 1 | ../track1_asr/wenet --------------------------------------------------------------------------------