From 33d3d2084403fd34b79c835d2f2fe04f6cd8f738 Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期三, 13 九月 2023 09:33:54 +0800
Subject: [PATCH] Merge branch 'main' of github.com:alibaba-damo-academy/FunASR add

---
 funasr/export/models/__init__.py |  124 ++++++++++++----------------------------
 1 files changed, 38 insertions(+), 86 deletions(-)

diff --git a/funasr/export/models/__init__.py b/funasr/export/models/__init__.py
index b21b080..94447dc 100644
--- a/funasr/export/models/__init__.py
+++ b/funasr/export/models/__init__.py
@@ -1,91 +1,43 @@
-# from .ctc import CTC
-# from .joint_network import JointNetwork
-#
-# # encoder
-# from espnet2.asr.encoder.rnn_encoder import RNNEncoder as espnetRNNEncoder
-# from espnet2.asr.encoder.vgg_rnn_encoder import VGGRNNEncoder as espnetVGGRNNEncoder
-# from espnet2.asr.encoder.contextual_block_transformer_encoder import ContextualBlockTransformerEncoder as espnetContextualTransformer
-# from espnet2.asr.encoder.contextual_block_conformer_encoder import ContextualBlockConformerEncoder as espnetContextualConformer
-# from espnet2.asr.encoder.transformer_encoder import TransformerEncoder as espnetTransformerEncoder
-# from espnet2.asr.encoder.conformer_encoder import ConformerEncoder as espnetConformerEncoder
-# from funasr.export.models.encoder.rnn import RNNEncoder
-# from funasr.export.models.encoders import TransformerEncoder
-# from funasr.export.models.encoders import ConformerEncoder
-# from funasr.export.models.encoder.contextual_block_xformer import ContextualBlockXformerEncoder
-#
-# # decoder
-# from espnet2.asr.decoder.rnn_decoder import RNNDecoder as espnetRNNDecoder
-# from espnet2.asr.transducer.transducer_decoder import TransducerDecoder as espnetTransducerDecoder
-# from funasr.export.models.decoder.rnn import (
-#     RNNDecoder
-# )
-# from funasr.export.models.decoders import XformerDecoder
-# from funasr.export.models.decoders import TransducerDecoder
-#
-# # lm
-# from espnet2.lm.seq_rnn_lm import SequentialRNNLM as espnetSequentialRNNLM
-# from espnet2.lm.transformer_lm import TransformerLM as espnetTransformerLM
-# from .language_models.seq_rnn import SequentialRNNLM
-# from .language_models.transformer import TransformerLM
-#
-# # frontend
-# from espnet2.asr.frontend.s3prl import S3prlFrontend as espnetS3PRLModel
-# from .frontends.s3prl import S3PRLModel
-#
-# from espnet2.asr.encoder.sanm_encoder import SANMEncoder_tf, SANMEncoderChunkOpt_tf
-# from espnet_onnx.export.asr.models.encoders.transformer_sanm import TransformerEncoderSANM_tf
-# from espnet2.asr.decoder.transformer_decoder import FsmnDecoderSCAMAOpt_tf
-# from funasr.export.models.decoders import XformerDecoderSANM
-
-from funasr.models.e2e_asr_paraformer import Paraformer
+from funasr.models.e2e_asr_paraformer import Paraformer, BiCifParaformer, ParaformerOnline
 from funasr.export.models.e2e_asr_paraformer import Paraformer as Paraformer_export
+from funasr.export.models.e2e_asr_paraformer import BiCifParaformer as BiCifParaformer_export
+from funasr.export.models.e2e_asr_conformer import Conformer as Conformer_export
+
+from funasr.models.e2e_vad import E2EVadModel
+from funasr.export.models.e2e_vad import E2EVadModel as E2EVadModel_export
+from funasr.models.target_delay_transformer import TargetDelayTransformer
+from funasr.export.models.CT_Transformer import CT_Transformer as CT_Transformer_export
+from funasr.train.abs_model import PunctuationModel
+from funasr.models.vad_realtime_transformer import VadRealtimeTransformer
+from funasr.export.models.CT_Transformer import CT_Transformer_VadRealtime as CT_Transformer_VadRealtime_export
+from funasr.export.models.e2e_asr_paraformer import ParaformerOnline_encoder_predictor as ParaformerOnline_encoder_predictor_export
+from funasr.export.models.e2e_asr_paraformer import ParaformerOnline_decoder as ParaformerOnline_decoder_export
+from funasr.export.models.e2e_asr_contextual_paraformer import ContextualParaformer_backbone as ContextualParaformer_backbone_export
+from funasr.export.models.e2e_asr_contextual_paraformer import ContextualParaformer_embedder as ContextualParaformer_embedder_export
+from funasr.models.e2e_asr_contextual_paraformer import NeatContextualParaformer
+
 
 def get_model(model, export_config=None):
-
-    if isinstance(model, Paraformer):
+    if isinstance(model, NeatContextualParaformer):
+        backbone = ContextualParaformer_backbone_export(model, **export_config)
+        embedder = ContextualParaformer_embedder_export(model, **export_config)
+        return [embedder, backbone]
+    elif isinstance(model, BiCifParaformer):
+        return BiCifParaformer_export(model, **export_config)
+    elif isinstance(model, ParaformerOnline):
+        encoder = ParaformerOnline_encoder_predictor_export(model, model_name="model")
+        decoder = ParaformerOnline_decoder_export(model, model_name="decoder")
+        return [encoder, decoder]
+    elif isinstance(model, Paraformer):
         return Paraformer_export(model, **export_config)
+    elif isinstance(model, Conformer_export):
+        return Conformer_export(model, **export_config)
+    elif isinstance(model, E2EVadModel):
+        return E2EVadModel_export(model, **export_config)
+    elif isinstance(model, PunctuationModel):
+        if isinstance(model.punc_model, TargetDelayTransformer):
+            return CT_Transformer_export(model.punc_model, **export_config)
+        elif isinstance(model.punc_model, VadRealtimeTransformer):
+            return CT_Transformer_VadRealtime_export(model.punc_model, **export_config)
     else:
-        raise "The model is not exist!"
-
-
-# def get_encoder(model, frontend, preencoder, predictor=None, export_config=None):
-#     if isinstance(model, espnetRNNEncoder) or isinstance(model, espnetVGGRNNEncoder):
-#         return RNNEncoder(model, frontend, preencoder, **export_config)
-#     elif isinstance(model, espnetContextualTransformer) or isinstance(model, espnetContextualConformer):
-#         return ContextualBlockXformerEncoder(model, **export_config)
-#     elif isinstance(model, espnetTransformerEncoder):
-#         return TransformerEncoder(model, frontend, preencoder, **export_config)
-#     elif isinstance(model, espnetConformerEncoder):
-#         return ConformerEncoder(model, frontend, preencoder, **export_config)
-#     elif isinstance(model, SANMEncoder_tf) or isinstance(model, SANMEncoderChunkOpt_tf):
-#         return TransformerEncoderSANM_tf(model, frontend, preencoder, predictor, **export_config)
-#     else:
-#         raise "The model is not exist!"
-
-
-#
-# def get_decoder(model, export_config):
-#     if isinstance(model, espnetRNNDecoder):
-#         return RNNDecoder(model, **export_config)
-#     elif isinstance(model, espnetTransducerDecoder):
-#         return TransducerDecoder(model, **export_config)
-#     elif isinstance(model, FsmnDecoderSCAMAOpt_tf):
-#         return XformerDecoderSANM(model, **export_config)
-#     else:
-#         return XformerDecoder(model, **export_config)
-#
-#
-# def get_lm(model, export_config):
-#     if isinstance(model, espnetSequentialRNNLM):
-#         return SequentialRNNLM(model, **export_config)
-#     elif isinstance(model, espnetTransformerLM):
-#         return TransformerLM(model, **export_config)
-#
-#
-# def get_frontend_models(model, export_config):
-#     if isinstance(model, espnetS3PRLModel):
-#         return S3PRLModel(model, **export_config)
-#     else:
-#         return None
-#
-    
\ No newline at end of file
+        raise "Funasr does not support the given model type currently."

--
Gitblit v1.9.1