#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)
И проверьте пример сценария.