Pull to refresh

Comments 12

Огромная благодарность.
Думаю, что вы сэкономили мне много времени. Как раз планировал в ближайшее время дообучать Воск на своем словаре.

Приятно это слышать. Удачи Вам с проектом)

Огромное спасибо. Так же ковыряюсь с VOSK (респект кто ее сделал). Полезная статья.

В юнити добавил русскую модель 50 Мб, мне необходимо добавить слова в модельку. Это всё пишется через линукс? (Никогда в нём не работал) можете подробно описать, что мне сделать?

устанавливаете любой дистрибутив gnu/linux на виртуалку, если не хотите основной/второй системой. далее открываете терминал и следуете инструкции. при запуске extras/check_dependencies.sh вам напишет, что нужно установить. далее ищете в интернете, как установить пакеты, которые назвал check_dependencies.sh. какие-то зависимости необходимо будет установить через пакетный менеджер вашего дистрибутива, другие через pip (утилита для работы с python-библиотеками), который перед этим также нужно будет установить через пакетный менеджер. все это без проблем находится в интернете.

вопрос достаточно неточный, поэтому для начала советую выполнить описанные выше действия, спрашивайте, если будут вопросы. в качестве первого дистрибутива советую debian и основанные на нем. для debian, пожалуй, наиболее много информации в интернете.

Спасибо большое за такой развёрнутый ответ!

@gist69 Добрый день, пытаюсь выполнить сборку по Вашему гайду, только в официальном контейнере от kaldi - 'kaldiasr/kaldi', в нем уже все связи настроены и check_dependencies выдает ОК - поэтому пропускаю шаг. Далее при распаковке нескомпилированной модели в папке wsj/s5 получаю ошибку о том, что в папке уже существуют подпапки utils и steps (они также присутствуют и в репозитории, указанном Вами в статье) и он не может распаковать одноименные файлы из архива с моделью. Далее компиляция запускается и начинаются проверки, процесс доходит до данного момента и просто останавливается:

--> data/lang/L.fst is olabel sorted
--> data/lang/L_disambig.fst is olabel sorted
--> SUCCESS [validating lang directory data/lang]
utils/mkgraph_lookahead.sh : compiling grammar data/ru-mix.lm.gz
utils/mkgraph_lookahead.sh : expected data/ru-mix.lm.gz to exist

в чем может быть проблема?

Добрый день, да, при переносе нескомпилированной модели так и должно происходить. Проверьте, установлены ли у Вас srilm, opengrm и irstlm. Если да, перепроверьте, правильно ли у Вас прописаны пути (в статье расписано добавление путей) и вновь запустите path.sh.

Спасибо огромное. Благодаря вашей статье более-менее разобрался с моделью.
Для уменьшения Gr.fst и HCLr.fst можно в файле ../new_model/kaldi/egs/wsj/s5/db/ru-250k.dic (тот что из "https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22-compile.tar.gz") оставить только нужные слова для распознавания. В результате эти файлы похудеют с 30Мб до 500-900Кб (851 слово).

Заметил такую особенность: например в ru-250k.dic есть слово "Айболит". Нам необходимо распознать еще слова "Айболиту" и "Айболита". В файл extra.txt необходимо добавлять:
айболита
айболиту
айболит
Иначе приоритет при распознавании отдается последнему слову из extra.txt, и слово "Айболит" будет почти невозможно распознать.

Вопрос: где взять большую нескомпилированную модель (как "https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22-compile.tar.gz") с максимально-заполненным словарем .dic?

Попробовал задействовать модель идентификации голоса vosk-model-spk-0.4 на смартфоне.
Выложил пример https://github.com/virex-84/VoskIdentification.
К сожалению никакой документации по идентификации голоса не нашел, но наткнулся на кусок кода по расчету "дистанции", на нём и основал пример.
Конечно пока что идентифицировать голоса непрерывно из микрофона на такой маленькой модели (13Мб) это баловство. Но если необходимость в идентификации есть - можно в своем приложении добавить возможность создать "отпечаток" своего голоса, сохранить его в память телефона, и при идентификации пользователя по голосу - сравнивать живой голос уже с этим отпечатком.

Во время сборки compile_graph.sh возникает ошибка. Как решить эту проблему?

apply_map.pl: warning! missing key 0 in exp/tdnn/lgraph/relabel

apply_map.pl: warning! missing key 250012 in exp/tdnn/lgraph/relabel

ERROR: SymbolTable::Read: Read failed: standard input

ERROR: SymbolTable::Read: Read failed: standard input

ERROR: VectorFst::Read: Unexpected end of file: standard input

ERROR: FstHeader::Read: Bad FST header: standard input. Magic number not matched. Got: 0"

Sign up to leave a comment.

Articles