Как стать автором
Обновить

Добавление слов в языковую модель Vosk

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.5K

Данная статья является дополнением к информации представленной в данной статье. Рекомендую сначала ознакомиться с ней.

На момент 2025 года пользователь, решивший повторить опыт, представленный в статье первоисточнике, столкнётся с рядом следующих трудностей:

  • Несовместимость версий утилит с OpenFst

  • Несовместимость Phonetisaurus c версиями ngram совместимых с новыми версиями OpenFst

  • Невозможность установки Intel MKL

В данной статье я опишу подход которым я смог решить эти проблемы и создать нужную мне модель для работы в моём C# проекте.

Начало проблем

Для начало вам нужно установить, linux на базе ubuntu или debian, это важно !
Скрипты написанные в оригинальном репозитории не будут корректно работать.

Так же если вы используете Fedora или подобные дистрибутивы, вы вероятно столкнетесь с проблемой связанной с gpg ключами при попытке самостоятельно накатить Intel MKL.

Наилучшим подходом для облегчения задачи будет использование docker образа Kaldiasr, пусть в этом образе и не присутствует ничего кроме оригинального репозитория на базе Ubuntu. Однако это уже предотвратит многие проблемы на нашем тернистом пути.

Установка Kaldi

Так как мы используем docker образ в котором уже есть оригинальный репозиторий, нам не нужно скачивать его, поэтому сразу переходим к установке.

Опускаемся в директорию kaldi/tools

cd kaldi/tools

Первым делом разбираемся с версией OpenFst поскольку та что первоначально установлена в директории несовместима с нужными нам Ngram и Phonetisaurus, более того она несовместима с теми версиями Ngram и Phonetisaurus которые устанавливаются через скрипты находящиеся в папке extras.

Поэтому сразу удаляем папку openfst и openfst-X.X.X находящуюся в папке tools.

Далее открываем через nano Makefile в папке tools , nano не установлен по умолчанию используйте apt, чтобы его установить

nano Makefile

В самом верху можно увидеть переменную с устанавливаемой версией OpenFST, меняем ее с указанной версии на версию ниже 1.8, (я использовал 1.6.7)

make openfst

Запускаем скрипт который проверяет наличие всех необходимых зависимостей

bash extras/check_dependencies.sh

Обратите внимание, что все скрипты мы запускаем из директории tools не опускаясь в директорию exstras ! Связанно это с тем что некоторые скрипты скачивают архивы в директорию из которой их вызывают. А нам как раз таки нужно все скачать в директорию tools.

Скрипт выдаст нам список того что необходимо установить. Устанавливаем так же как и сказано в оригинальной статье. Для всего что нам нужно есть скрипты в директории extras, включая intel mkl.

Ошибка при установке configure: error: fst/fst.h header not found

Ошибка связана с несовместимостью версий openFst, как я и писал выше версия openFst должна быть меньше 1.8.

Так же ошибка может быть связанна с некорректной установкой openFst

Дальше все действия аналогичны оригинальной статье. Просто повторяйте, действия указанные в ней. Если вы столкнулись с проблемами, вот небольшой траблшутинг:

Проблема с установкой Phonetisaurus через pip

Используйте -break-system-packages при вызове pip, чтобы принудительно установить пакеты в системную среду.

Прочие проблемы с установкой через скрипты

Скорее всего, ваши пути к OpenFst не совпадают с теми что указаны в скриптах. Откройте нужный скрипт и пропишите туда нужный путь.

сделать это можно при конфигурации командой на подобие:

 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure
Теги:
Хабы:
+1
Комментарии2

Публикации

Работа

Data Scientist
51 вакансия

Ближайшие события