private static List<String> reproduceSentence(final Map<Integer, Set<String>> words, final int[] indexes, int phoneLength) {
        List<String> sentence = new LinkedList<String>();
        for (int i = 0; i < indexes.length && indexes[i] != -1; i++) {
            int startIndex = indexes[i];
            int endIndex = (indexes[i + 1] == -1) ? phoneLength : indexes[i + 1];
            int wordLength = endIndex - startIndex;
            String nextWord = getWord(words, startIndex, wordLength);
            if (nextWord == null) throw new IllegalStateException("NextWord can't be null");
            sentence.add(nextWord);
        }
        return sentence;
    }