Skip to content

snowboy

Aculeasis edited this page Jan 24, 2021 · 4 revisions

С 2021 года Kitt-AI отключили Snowboy API для создания персональных моделей, но выложили код для их генерации оффлайн - https://github.com/seasalt-ai/snowboy. Несомненный плюс - теперь это полностью локальный HWD, но его использование стало сложнее. Также можно использовать универсальные модели.

Сборка snowboy (_snowboydetect.so)

Обычно src/lib/_snowboydetect.so собирается при установке, но если что-то пошло не так проще всего пересобрать его скриптом:

./scripts/snowboy_build.sh

Важно! Скрипт нужно запускать после ./scripts/install.sh, т.к. он устанавливает все необходимые зависимости.

Сборка на старых системах

Для сборки нужен swig 3.0.10 и выше, если у вас старый swig и вы получаете ошибку ImportError: No module named '_snowboydetect' т.к. snowboy не собирается

Обновите swig:
sudo apt update
sudo apt-get install -y build-essential libpcre3-dev autoconf automake libtool bison git libboost-dev python-dev ruby ruby-dev tcl-dev mono-devel lua5.1 liblua5.1-0-dev octave liboctave-dev

git clone https://github.com/swig/swig.git
cd swig
./autogen.sh
./configure
make
sudo make install
cd ..
rm -rf swig/

И снова запустите скрипт сборки snowboy.

Создание персональных моделей

Для компиляции используется докер-образ. Для его запуска нужна локальная машина amd64 (или способная запускать их образы), одноплатники не подходят.

Установите сам docker и запустите образ: docker run -d -p 8888:8888 aculeasis/snowboy-pmdls.

На отличных от линукс ОС могут использоваться другие команды для запуска. Убедитесь порт 8888 не заблокирован для входящих соединений фаерволом, к нему будет подключаться терминал для генерации моделей.

Измените в settings.ini [snowboy] url так, что бы вместо https://snowboy.kitt.ai было http://<IP>:8888, где IP - машина с докером.

Например для локалхоста будет [snowboy] url = http://127.0.0.1:8888/api/v1/train/, для 192.168.0.100 будет [snowboy] url = http://192.168.0.100:8888/api/v1/train/ и т.п.

Использование универсальных моделей

Сохраните модели, которые хотите использовать, из репозитория Snowboy в папку mdmTerminal2/src/resources/models/.

Добавьте фразы для новых моделей в settings.ini, например:

[models]
computer.umdl = computer
jarvis.umdl = jarvis | джарвис

Поменяйте настройки в зависимости от выбранных моделей. ApplyFrontend это [noise_suppression] snowboy_apply_frontend, SetSensitivity - [settings] sensitivity.

И перезапустите терминал.