Add non-streaming speech recognition examples for MFC (#212)
This commit is contained in:
@@ -27,36 +27,38 @@ struct SherpaOnnxDisplay {
|
||||
std::unique_ptr<sherpa_onnx::Display> impl;
|
||||
};
|
||||
|
||||
#define SHERPA_ONNX_OR(x, y) (x ? x : y)
|
||||
|
||||
SherpaOnnxOnlineRecognizer *CreateOnlineRecognizer(
|
||||
const SherpaOnnxOnlineRecognizerConfig *config) {
|
||||
sherpa_onnx::OnlineRecognizerConfig recognizer_config;
|
||||
|
||||
recognizer_config.feat_config.sampling_rate = config->feat_config.sample_rate;
|
||||
recognizer_config.feat_config.feature_dim = config->feat_config.feature_dim;
|
||||
recognizer_config.feat_config.sampling_rate = SHERPA_ONNX_OR(config->feat_config.sample_rate, 16000);
|
||||
recognizer_config.feat_config.feature_dim = SHERPA_ONNX_OR(config->feat_config.feature_dim, 80);
|
||||
|
||||
recognizer_config.model_config.encoder_filename =
|
||||
config->model_config.encoder;
|
||||
SHERPA_ONNX_OR(config->model_config.encoder, "");
|
||||
recognizer_config.model_config.decoder_filename =
|
||||
config->model_config.decoder;
|
||||
recognizer_config.model_config.joiner_filename = config->model_config.joiner;
|
||||
recognizer_config.model_config.tokens = config->model_config.tokens;
|
||||
recognizer_config.model_config.num_threads = config->model_config.num_threads;
|
||||
recognizer_config.model_config.provider = config->model_config.provider;
|
||||
recognizer_config.model_config.debug = config->model_config.debug;
|
||||
SHERPA_ONNX_OR(config->model_config.decoder, "");
|
||||
recognizer_config.model_config.joiner_filename = SHERPA_ONNX_OR(config->model_config.joiner, "");
|
||||
recognizer_config.model_config.tokens = SHERPA_ONNX_OR(config->model_config.tokens, "");
|
||||
recognizer_config.model_config.num_threads = SHERPA_ONNX_OR(config->model_config.num_threads, 1);
|
||||
recognizer_config.model_config.provider = SHERPA_ONNX_OR(config->model_config.provider, "cpu");
|
||||
recognizer_config.model_config.debug = SHERPA_ONNX_OR(config->model_config.debug, 0);
|
||||
|
||||
recognizer_config.decoding_method = config->decoding_method;
|
||||
recognizer_config.max_active_paths = config->max_active_paths;
|
||||
recognizer_config.decoding_method = SHERPA_ONNX_OR(config->decoding_method, "greedy_search");
|
||||
recognizer_config.max_active_paths = SHERPA_ONNX_OR(config->max_active_paths, 4);
|
||||
|
||||
recognizer_config.enable_endpoint = config->enable_endpoint;
|
||||
recognizer_config.enable_endpoint = SHERPA_ONNX_OR(config->enable_endpoint, 0);
|
||||
|
||||
recognizer_config.endpoint_config.rule1.min_trailing_silence =
|
||||
config->rule1_min_trailing_silence;
|
||||
SHERPA_ONNX_OR(config->rule1_min_trailing_silence, 2.4);
|
||||
|
||||
recognizer_config.endpoint_config.rule2.min_trailing_silence =
|
||||
config->rule2_min_trailing_silence;
|
||||
SHERPA_ONNX_OR(config->rule2_min_trailing_silence, 1.2);
|
||||
|
||||
recognizer_config.endpoint_config.rule3.min_utterance_length =
|
||||
config->rule3_min_utterance_length;
|
||||
SHERPA_ONNX_OR(config->rule3_min_utterance_length, 20);
|
||||
|
||||
if (config->model_config.debug) {
|
||||
fprintf(stderr, "%s\n", recognizer_config.ToString().c_str());
|
||||
@@ -171,34 +173,34 @@ SherpaOnnxOfflineRecognizer *CreateOfflineRecognizer(
|
||||
const SherpaOnnxOfflineRecognizerConfig *config) {
|
||||
sherpa_onnx::OfflineRecognizerConfig recognizer_config;
|
||||
|
||||
recognizer_config.feat_config.sampling_rate = config->feat_config.sample_rate;
|
||||
recognizer_config.feat_config.sampling_rate = SHERPA_ONNX_OR(config->feat_config.sample_rate, 16000);
|
||||
|
||||
recognizer_config.feat_config.feature_dim = config->feat_config.feature_dim;
|
||||
recognizer_config.feat_config.feature_dim = SHERPA_ONNX_OR(config->feat_config.feature_dim, 80);
|
||||
|
||||
recognizer_config.model_config.transducer.encoder_filename =
|
||||
config->model_config.transducer.encoder;
|
||||
SHERPA_ONNX_OR(config->model_config.transducer.encoder, "");
|
||||
|
||||
recognizer_config.model_config.transducer.decoder_filename =
|
||||
config->model_config.transducer.decoder;
|
||||
SHERPA_ONNX_OR(config->model_config.transducer.decoder, "");
|
||||
|
||||
recognizer_config.model_config.transducer.joiner_filename =
|
||||
config->model_config.transducer.joiner;
|
||||
SHERPA_ONNX_OR(config->model_config.transducer.joiner,"");
|
||||
|
||||
recognizer_config.model_config.paraformer.model =
|
||||
config->model_config.paraformer.model;
|
||||
SHERPA_ONNX_OR(config->model_config.paraformer.model, "");
|
||||
|
||||
recognizer_config.model_config.nemo_ctc.model =
|
||||
config->model_config.nemo_ctc.model;
|
||||
SHERPA_ONNX_OR(config->model_config.nemo_ctc.model, "");
|
||||
|
||||
recognizer_config.model_config.tokens = config->model_config.tokens;
|
||||
recognizer_config.model_config.num_threads = config->model_config.num_threads;
|
||||
recognizer_config.model_config.debug = config->model_config.debug;
|
||||
recognizer_config.model_config.tokens = SHERPA_ONNX_OR(config->model_config.tokens, "");
|
||||
recognizer_config.model_config.num_threads = SHERPA_ONNX_OR(config->model_config.num_threads, 1);
|
||||
recognizer_config.model_config.debug = SHERPA_ONNX_OR(config->model_config.debug, 0);
|
||||
|
||||
recognizer_config.lm_config.model = config->lm_config.model;
|
||||
recognizer_config.lm_config.scale = config->lm_config.scale;
|
||||
recognizer_config.lm_config.model = SHERPA_ONNX_OR(config->lm_config.model, "");
|
||||
recognizer_config.lm_config.scale = SHERPA_ONNX_OR(config->lm_config.scale, 1.0);
|
||||
|
||||
recognizer_config.decoding_method = config->decoding_method;
|
||||
recognizer_config.max_active_paths = config->max_active_paths;
|
||||
recognizer_config.decoding_method = SHERPA_ONNX_OR(config->decoding_method, "greedy_search");
|
||||
recognizer_config.max_active_paths = SHERPA_ONNX_OR(config->max_active_paths, 4);
|
||||
|
||||
if (config->model_config.debug) {
|
||||
fprintf(stderr, "%s\n", recognizer_config.ToString().c_str());
|
||||
|
||||
Reference in New Issue
Block a user