diff --git a/sherpa-onnx/csrc/online-rnn-lm.cc b/sherpa-onnx/csrc/online-rnn-lm.cc index ad8426fb..f23e1ef7 100644 --- a/sherpa-onnx/csrc/online-rnn-lm.cc +++ b/sherpa-onnx/csrc/online-rnn-lm.cc @@ -35,7 +35,7 @@ class OnlineRnnLM::Impl { // get lm score for cur token given the hyp->ys[:-1] and save to lm_log_prob const float *nn_lm_scores = hyp->nn_lm_scores.value.GetTensorData(); - hyp->lm_log_prob = nn_lm_scores[hyp->ys.back()] * scale; + hyp->lm_log_prob += nn_lm_scores[hyp->ys.back()] * scale; // get lm scores for next tokens given the hyp->ys[:] and save to // nn_lm_scores diff --git a/sherpa-onnx/csrc/online-transducer-modified-beam-search-decoder.cc b/sherpa-onnx/csrc/online-transducer-modified-beam-search-decoder.cc index dc599cec..cbf01a0a 100644 --- a/sherpa-onnx/csrc/online-transducer-modified-beam-search-decoder.cc +++ b/sherpa-onnx/csrc/online-transducer-modified-beam-search-decoder.cc @@ -152,7 +152,9 @@ void OnlineTransducerModifiedBeamSearchDecoder::Decode( } else { ++new_hyp.num_trailing_blanks; } - new_hyp.log_prob = p_logprob[k] - prev_lm_log_prob; + new_hyp.log_prob = + p_logprob[k] - prev_lm_log_prob; // log_prob only includes the + // score of the transducer hyps.Add(std::move(new_hyp)); } // for (auto k : topk) cur.push_back(std::move(hyps)); diff --git a/sherpa-onnx/csrc/sherpa-onnx.cc b/sherpa-onnx/csrc/sherpa-onnx.cc index 0fca4a25..05c78249 100644 --- a/sherpa-onnx/csrc/sherpa-onnx.cc +++ b/sherpa-onnx/csrc/sherpa-onnx.cc @@ -94,7 +94,7 @@ for a list of pre-trained models to download. auto s = recognizer.CreateStream(); s->AcceptWaveform(sampling_rate, samples.data(), samples.size()); - std::vector tail_paddings(static_cast(0.5 * sampling_rate)); + std::vector tail_paddings(static_cast(0.3 * sampling_rate)); // Note: We can call AcceptWaveform() multiple times. s->AcceptWaveform(sampling_rate, tail_paddings.data(), tail_paddings.size());