Add C++ runtime for non-streaming faster conformer transducer from NeMo. (#854)
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include "sherpa-onnx/csrc/offline-recognizer-ctc-impl.h"
|
||||
#include "sherpa-onnx/csrc/offline-recognizer-paraformer-impl.h"
|
||||
#include "sherpa-onnx/csrc/offline-recognizer-transducer-impl.h"
|
||||
#include "sherpa-onnx/csrc/offline-recognizer-transducer-nemo-impl.h"
|
||||
#include "sherpa-onnx/csrc/offline-recognizer-whisper-impl.h"
|
||||
#include "sherpa-onnx/csrc/onnx-utils.h"
|
||||
#include "sherpa-onnx/csrc/text-utils.h"
|
||||
@@ -23,6 +24,8 @@ std::unique_ptr<OfflineRecognizerImpl> OfflineRecognizerImpl::Create(
|
||||
const auto &model_type = config.model_config.model_type;
|
||||
if (model_type == "transducer") {
|
||||
return std::make_unique<OfflineRecognizerTransducerImpl>(config);
|
||||
} else if (model_type == "nemo_transducer") {
|
||||
return std::make_unique<OfflineRecognizerTransducerNeMoImpl>(config);
|
||||
} else if (model_type == "paraformer") {
|
||||
return std::make_unique<OfflineRecognizerParaformerImpl>(config);
|
||||
} else if (model_type == "nemo_ctc" || model_type == "tdnn" ||
|
||||
@@ -122,6 +125,12 @@ std::unique_ptr<OfflineRecognizerImpl> OfflineRecognizerImpl::Create(
|
||||
return std::make_unique<OfflineRecognizerParaformerImpl>(config);
|
||||
}
|
||||
|
||||
if (model_type == "EncDecHybridRNNTCTCBPEModel" &&
|
||||
!config.model_config.transducer.decoder_filename.empty() &&
|
||||
!config.model_config.transducer.joiner_filename.empty()) {
|
||||
return std::make_unique<OfflineRecognizerTransducerNeMoImpl>(config);
|
||||
}
|
||||
|
||||
if (model_type == "EncDecCTCModelBPE" ||
|
||||
model_type == "EncDecHybridRNNTCTCBPEModel" || model_type == "tdnn" ||
|
||||
model_type == "zipformer2_ctc" || model_type == "wenet_ctc") {
|
||||
@@ -155,6 +164,8 @@ std::unique_ptr<OfflineRecognizerImpl> OfflineRecognizerImpl::Create(
|
||||
const auto &model_type = config.model_config.model_type;
|
||||
if (model_type == "transducer") {
|
||||
return std::make_unique<OfflineRecognizerTransducerImpl>(mgr, config);
|
||||
} else if (model_type == "nemo_transducer") {
|
||||
return std::make_unique<OfflineRecognizerTransducerNeMoImpl>(mgr, config);
|
||||
} else if (model_type == "paraformer") {
|
||||
return std::make_unique<OfflineRecognizerParaformerImpl>(mgr, config);
|
||||
} else if (model_type == "nemo_ctc" || model_type == "tdnn" ||
|
||||
@@ -254,6 +265,12 @@ std::unique_ptr<OfflineRecognizerImpl> OfflineRecognizerImpl::Create(
|
||||
return std::make_unique<OfflineRecognizerParaformerImpl>(mgr, config);
|
||||
}
|
||||
|
||||
if (model_type == "EncDecHybridRNNTCTCBPEModel" &&
|
||||
!config.model_config.transducer.decoder_filename.empty() &&
|
||||
!config.model_config.transducer.joiner_filename.empty()) {
|
||||
return std::make_unique<OfflineRecognizerTransducerNeMoImpl>(mgr, config);
|
||||
}
|
||||
|
||||
if (model_type == "EncDecCTCModelBPE" ||
|
||||
model_type == "EncDecHybridRNNTCTCBPEModel" || model_type == "tdnn" ||
|
||||
model_type == "zipformer2_ctc" || model_type == "wenet_ctc") {
|
||||
|
||||
Reference in New Issue
Block a user