ESPNet调用流程

  1. 在相应的recipe下调用run.sh脚本

  2. run.sh脚本会调用enh.sh脚本

  3. enh.sh脚本的stage 6下面会调用espnet2/bin/launch.py文件,该文件会调用espnet/bin/enh_train.py文件

  4. enh_train.py文件会调用espnet2/tasks/enh.py文件

  5. enh.py文件会调用espnet2/enh/espnet_model.py文件

  6. espnet_model.py文件中的ESPnetEnhancementModel类会被使用,根据

    enh_choices = ClassChoices(                                                             
        name="enh",
        classes=dict(
            ae=AutoEncoderNet,
            sep = Separator,
            tae = TAutoEncoderNet,
            dprnn=DPRNN,
            mfmvdr=DeepMFMVDRNet,
            tasnet=TasNet,
            tasnetm=TasNetM,
            tf_masking=TFMaskingNet,
            waveunet=WaveUNet,
            wpe_beamformer=BeamformerNet,
            asteroid=AsteroidModel_Converter,
        ),
        type_check=AbsEnhancement,
        default="tf_masking",
    )
    
    

    来指定可供选择的模型

  7. 上面的模型在espnet2/enh/nets目录下实现。

  8. 如果需要添加自己的模型,那么需要进行以下修改:

    • espnet2/bin/enh_train.py文件拷贝一份,进行相应的修改。
    • espnet2/tasks/enh.py文件拷贝一份,进行相应的修改。
    • 将在上一点提到的修改的文件中出现类实现在相应的目录下。

你可能感兴趣的:(ESPNet调用流程)