From 1c87bf781a253b5268de3629f901efcd570358d3 Mon Sep 17 00:00:00 2001 From: Reuben Morais Date: Sat, 1 Jun 2019 15:06:56 -0300 Subject: [PATCH] Avoid sorting prefix array twice --- native_client/ctcdecode/decoder_utils.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/native_client/ctcdecode/decoder_utils.cpp b/native_client/ctcdecode/decoder_utils.cpp index c0505fb3..e8a3da77 100644 --- a/native_client/ctcdecode/decoder_utils.cpp +++ b/native_client/ctcdecode/decoder_utils.cpp @@ -41,21 +41,12 @@ std::vector> get_pruned_log_probs( std::vector get_beam_search_result( const std::vector &prefixes, - size_t beam_size) { - // allow for the post processing - std::vector space_prefixes; - if (space_prefixes.empty()) { - for (size_t i = 0; i < beam_size && i < prefixes.size(); ++i) { - space_prefixes.push_back(prefixes[i]); - } - } - - std::sort(space_prefixes.begin(), space_prefixes.end(), prefix_compare); + size_t top_paths) { std::vector output_vecs; - for (size_t i = 0; i < beam_size && i < space_prefixes.size(); ++i) { + for (size_t i = 0; i < top_paths && i < prefixes.size(); ++i) { Output output; - space_prefixes[i]->get_path_vec(output.tokens, output.timesteps); - output.probability = -space_prefixes[i]->approx_ctc; + prefixes[i]->get_path_vec(output.tokens, output.timesteps); + output.probability = -prefixes[i]->approx_ctc; output_vecs.push_back(output); }