diff --git a/deep_speech_2/decoder.py b/deep_speech_2/decoder.py index e16d1054442f2eb02eb7a390c97f540df8be6c43..458cd9ad3e46c8bb0196e6c09063b69d40d2ba8e 100755 --- a/deep_speech_2/decoder.py +++ b/deep_speech_2/decoder.py @@ -52,13 +52,19 @@ class Scorer(object): """ def __init__(self, alpha, beta, model_path): - self._alpha = alpha self._beta = beta self._language_model = kenlm.LanguageModel(model_path) def language_model_score(self, sentence, bos=True, eos=False): - log_prob = self._language_model.score(sentence, bos, eos) + words = sentence.strip().split(' ') + length = len(words) + if length == 1: + log_prob = self._language_model.score(sentence, bos, eos) + else: + prefix_sent = ' '.join(words[0:length - 1]) + log_prob = self._language_model.score(sentence, bos, eos) \ + - self._language_model.score(prefix_sent, bos, eos) return np.power(10, log_prob) def word_count(self, sentence):