Mozilla Deep Speech SST внезапно не может произносить по буквам

#mozilla-deepspeech

#mozilla-deepspeech

Вопрос:

Я использую deep speech для преобразования речи в текст. До 0.8.1, когда я запускал транскрипции, такие как:

 byte_encoding = subprocess.check_output(
"deepspeech --model deepspeech-0.8.1-models.pbmm --scorer deepspeech-0.8.1-models.scorer --audio audio/2830-3980-0043.wav", shell=True)
transcription = byte_encoding.decode("utf-8").rstrip("n")
  

Я бы вернул результаты, которые были довольно хорошими. Но начиная с версии 0.8.2, где был удален аргумент scorer, мои результаты просто изобилуют орфографическими ошибками, которые заставляют меня думать, что теперь я получаю модель уровня символов, где раньше я получал модель уровня слов. Ошибки находятся в направлении, которое выглядит так, как будто модель каким-то образом указана неправильно.

Теперь я, когда я звоню:

 byte_encoding = subprocess.check_output(
    ['deepspeech', '--model', 'deepspeech-0.8.2-models.pbmm', '--audio', myfile])
transcription = byte_encoding.decode("utf-8").rstrip("n")
  

Теперь я вижу такие ошибки, как

  • бесконечный -> «endules»
  • сервис -> «сервис»
  • наследие -> «наследие»
  • заработок -> «установка»
  • before -> «befir»

Я не уверен на 100%, что это связано с удалением scorer из API, но это одна вещь, которую я вижу меняющейся между выпусками, и в документации, в частности, предлагаются улучшения точности.

Ответ №1:

Коротко: оценщик сопоставляет выводимые буквы из аудио с реальными словами. Вы не должны это упускать.

Long: если вы не используете аргумент scorer, вы не сможете обнаружить предложения реального мира, поскольку он сопоставляет выходные данные акустической модели со словами и словосочетаниями, присутствующими в текстовой языковой модели, которая является частью scorer. И имейте в виду, что у каждого бомбардира есть определенные lm_alpha lm_beta значения и, которые делают поиск еще более точным.

Версия 0.8.2 должна иметь возможность принимать аргумент scorer. В противном случае обновите до 0.9.0, в котором оно также есть. Возможно, ваша среда каким-то образом изменилась. Я бы начал с нового каталога и venv.

Предполагая, что вы используете Python, вы могли бы добавить это в свой код:

 ds.enableExternalScorer(args.scorer)
ds.setScorerAlphaBeta(args.lm_alpha, args.lm_beta)
  

И проверьте пример сценария.