LINUX.ORG.RU

Библиотека для распознавания русской речи на Android и Linux без сети

 


10

4

Опубликована версия 0.3 библиотеки vosk для локального распознавания слитной речи, поддерживающая русский язык.

Для платформы Android подготовлен APK-пакет, а для Linux можно использовать Python-библиотеку (пример использования), производительности которой достаточно для работы на платах Raspberry Pi.
Библиотека работает на усовершенствованном движке Kaldi.
Языковая модель занимает всего 50Мб и работает точнее DeepSpeech (модель размером более 1Гб).
Поддерживаются языки: русский, английский, немецкий, французский, китайский. Ожидается поддержка испанского, хинди, арабского и португальского.

Источник

>>> Подробности

У кого завелось, на сколько качественно распознаёт? Желательно в WER…

Велик ли словарь? Вообще данных конечно не достаточно. На каких данных натренирована сеть? Может быть они доступны для скачивания?

Словом одни вопросы..

unDEFER ★★★★ ()
Ответ на: комментарий от unDEFER

В общем на сайте через Виндовс смог опробовать. Распознаёт так: Из «раз два три четыре пять вышел зайчик погулять. Вдруг охотник выбегает прямо в зайчика стреляет. Пиф-паф ой-ой-ой, умирает зайчик мой. Принесли его домой оказался он живой» получилось:

один раз «раз два три четыре пять вышел дач куда так охотник избегать новобрачного их пахло её и умирает зайчик мой конечно его домой оказалось что он живой»

другой раз: «раз два три четыре пять вышел зайчик погулять трук охотник выбегать прямо зайчиков труда пиф-паф ой-ой-ой умирает зайчик мой принёс его домой оказался он живой»

третий: «а раз два три четыре пять ваше высочество гулять вдруг охотникова пят проползать клада пиф-паф ой-ой-ой умирает зайчик мой привычное домой сошёл он живой»

Не уверен, но мне кажется Kaldi и лучше умеет, надо его только натренировать.. Я как раз этим занимаюсь.

unDEFER ★★★★ ()
Ответ на: комментарий от Egor_

Я к сожалению пока не смог собрать эту штуковину, чтобы пробовать подсовывать разным сеткам одни и те же данные, но в kaldi есть пример, называется «apiai_decode», так вот он понимает даже мой корявый английский. А если не понимает, то подставляет хотя бы похожие слова. Эта штука мой английский понимает почти никак.

Так что, повторюсь, дело скорее всего в данных, на которых обучена сетка..

unDEFER ★★★★ ()
Ответ на: комментарий от unDEFER

надо его только натренировать

Это принципиальное заблуждение большинства распознавальщиков речи.
Доколе в этих прогах не будет фразеологических словарей, покрывающих всё семантическое поле контекстно зависимых лексем, дотоле не будет правильного распознавания.
На втором этапе, понадобятся тезаурусы или более общие идеографические словари.
А уж опосля можно тренировать на живой речи человеков.

quickquest ★★★★★ ()
Ответ на: комментарий от quickquest

Согласен частично. Но я про то что, здесь не выжато даже максимума из того умеет kaldi без фразеологических словарей.

Кстати идеографический словарь я тоже готовлю. Сомневаюсь, что осилю один, но тем не менее проект такой есть..

unDEFER ★★★★ ()

Из поста непонятно, как связаны vosk, kaldi и kaldi-android-demo даже для разработчика, который когда-то участвовал в проекте kaldi. Так что новость офомлена так себе.

На самом деле, kaldi это очень монструозный проект, который никогда не предназначался для мобильных платформ, но достаточно гибкий, чтобы на его основе можно было сделать что-то мобильное. Что как раз и начал делать Николай. При этом kaldi поддерживает разные акустические модели: классические GMM-HMM, гибридные GMM-DNN, и даже, что называется, state of the art. То же касается и языковых моделей. Но без понимания архитектуры модели и знания набора данных, на которых она была натренирована, бессмысленно делать какие-либо сравнения. Параллельно с этим Николай занимается развитием проекта vosk - альтернативного, никак не связанного с kaldi, подхода к задаче распознавания речи. Но как я понимаю, к новости это никак не относится, потому что по ссылке можно найти лишь обновление моделей для kaldi-android-demo.

Поправьте, если ошибаюсь.

mbait ()
Последнее исправление: mbait (всего исправлений: 1)
Ответ на: комментарий от anonymous

В 2014 телефон на 4 андроиде это умел.

Каждый раз заливая аудиофайл на сервер Гугла. Потому что в смартфон все нужные для распознавания данные не вмещались. Данная система обещает работать при довольно небольшой базе, которая влезла бы и в смартфон начала 2000х.

question4 ★★★★★ ()
Ответ на: комментарий от mbait

разные акустические модели: классические GMM-HMM, гибридные GMM-DNN, и даже, что называется, state of the art.

«State of the art» означает лучшее из существующего. Какие именно модели являются лучшим из существующего сейчас?

Николай занимается развитием проекта vosk - альтернативного, никак не связанного с kaldi, подхода к задаче распознавания речи. Но как я понимаю, к новости это никак не относится, потому что по ссылке можно найти лишь обновление моделей для kaldi-android-demo.

Новость про vosk. Более того, в комментариях к этой новости на Опеннете автор даёт советы по работе с vosk-ом: https://www.opennet.ru/opennews/art.shtml?num=52171

question4 ★★★★★ ()
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от Egor_

https://youtu.be/KyLqUf4cdwc

то есть, за последние 13 лет распознавание голоса заметно не улучшилось?

В видео — проприертарная реализация, продаваемая в комплекте с довольно дорогим ПО. Обсуждаем открыто-свободную, доступную бесплатно. Прогресс в виде снижения цены налицо.

question4 ★★★★★ ()
Ответ на: комментарий от question4

Какие именно модели являются лучшим из существующего сейчас?

Я уже несколько лет не в теме. Вот тут можно посмотреть достижения науки в целом https://github.com/syhw/wer_are_we, а потом на сайте kaldi посмотреть, какие типы сетей поддерживаются.

Новость про vosk.

Ок.

mbait ()

выглядит круто. Но немного удивило что в заголовке уделяется внимание на на «без сети»

оффтопик от боли внизу:

А что у других решений на столько всё плохо что для этого нужна сеть? Это же медленно и не автономно. Вообще я очень хейтю современные тенденции того что пользовательская строна становится тонким клиентом а все делается на сервере.

Облака это хорошо, но как доп опция по хранению чего-то. Распределенные вычисления тоже хорошо, когда мощности одной железки не хватит.

Но исторически так сложилось что смартфоны весьма мощные, а темболее десктопы и вот меня очень напрягает современная тенденция когда пользовательскую сторону стремятся превратить в тонкий клиент. Когда, например в место развернутого полноценного офисного по на клиенте - он через веб обращается к веб-офисному редактору.

bonta ★★★ ()
Ответ на: удаленный комментарий

Причём, вариант «вышел зайчик поблевать» он распознавал правильно тоже. А тут 9 лет спустя стоша-говнозад такой?

anonymous ()
Ответ на: комментарий от bonta

Так все хотят твои данные поанализировать и извлечённые данные продать рекламным сеткам и скорингам. Ещё так проще софт обновлять, защищать данные и алгоритмы, сделать кроссплатформенную доступность, когда можно зайти в приложение с разных устройств(мобилка/комп/планшет) и увидеть там свои данные. Это 2020, тут так принято.

cobold ★★ ()
Ответ на: комментарий от bonta

А что у других решений на столько всё плохо что для этого нужна сеть? Это же медленно и не автономно.

У разработчиков сеть есть :)

Когда не могут взять качеством модели, берут объёмом. Если хоть какая-то связь есть, этого почти всегда достаточно для передачи голоса в реальном времени. Кто первый выкатит работающее решение, тот больше всех заработает, даже если придётся понастроить дата-центров. Как-то так.

смартфоны весьма мощные, а темболее десктопы и вот меня очень напрягает современная тенденция когда пользовательскую сторону стремятся превратить в тонкий клиент. Когда, например вместо развернутого полноценного офисного по на клиенте - он через веб обращается к веб-офисному редактору.

Имхо, им сложно написать кроссплатформенный редактор. Поэтому пишут тонкие клиенты, а всю обработку ведут на сервере под знакомой ОС на знакомом процессоре.

question4 ★★★★★ ()
Ответ на: удаленный комментарий

У меня в 2011 году был Samsung Galaxy Note, который … уверенно распознавал без сети

А у меня в 2017 не заработало. Связь была плохая.

question4 ★★★★★ ()
Ответ на: комментарий от gorky

Не плохой, согласен. Но они на своём сайте и видео-презентации загибают что-то про 100 000 часов данных из YouTube, а судя по объёму модели натренирована она часах на 50-ти.

Мне это расхождение не понятно.

unDEFER ★★★★ ()
Ответ на: комментарий от unDEFER

В общем на сайте через Виндовс смог опробовать.

Спасибо за тестирование! Автосубтитры на YouTube примерно такого же качества. Этого достаточно, чтобы транскрибирование 10-минутной записи длилось 20 минут с паузами, а не час с паузами и перемотками.

Bagrov ★★★★★ ()
Ответ на: комментарий от hobbit

На самом деле лучше уж так. Яндексовский распознаватель вообще вместо нормальных слов мат слышит.. Алиса наслушалась как её посылают, а они всё это в распознаватель засунули. Они это ещё продают..

unDEFER ★★★★ ()

Всем привет. Отвечу сразу.

Оно умеет автодетектить язык, или надо вручную указывать, что мол русский или какой там на входе?

Язык выбирается вручную, в apk русский

У кого завелось, на сколько качественно распознаёт? Желательно в WER…

Для WER нужен тестовый материал, его нет для русского общепринятого. Может быть попозже openstt попробуем.

Велик ли словарь?

250 тыс слов

Вообще данных конечно не достаточно. На каких данных натренирована сеть? Может быть они доступны для скачивания?

Скачать можно openstt https://github.com/snakers4/open_stt, там 20 тысяч часов речи, более чем достаточно.

Эта модель была натренирована на примерно 2000 часах. Размер особенно значения не имеет, потому что модель очень маленькая, чтобы влезла на телефон. Поэтому сколько не тренируй, точность у неё не идеальна. И в модели не сделана квантизация пока, в будущем можно на int8 перевести модель, размер останется тот же, а точность и скорость улучшатся.

Я к сожалению пока не смог собрать эту штуковину, чтобы пробовать подсовывать разным сеткам одни и те же данные, но в kaldi есть пример, называется «apiai_decode», так вот он понимает даже мой корявый английский. А если не понимает, то подставляет хотя бы похожие слова. Эта штука мой английский понимает почти никак.

Зачем собирать, если можно просто apk файл установить? Или пакет для питона из pip.

Доколе в этих прогах не будет фразеологических словарей, покрывающих всё семантическое поле контекстно зависимых лексем, дотоле не будет правильного распознавания.

На самом деле ошибка распознавания определяется в первую очередь проблемами с распознаванием звуков, а уж затем слов. Со звуками все ещё не идеально.

Из поста непонятно, как связаны vosk, kaldi и kaldi-android-demo даже для разработчика, который когда-то участвовал в проекте kaldi. Так что новость офомлена так себе.

Спасибо mbait, в этой библиотеке ещё остался и Ваш код по распаковке модели!

Для такой маленькой языковой модели неплохой уровень распознавания.

Спасибо. Будут вопросы по библиотеке, спрашивайте, или заходите в телеграм https://t.me/speech_recognition_ru

welkam ()

Ну, теперь, наконец, и я влезу со своим вопросом :)
Который задал на опеннете, но там никто не сумел ответить, хотя, кмк, вопрос простой.
Цитирую:

А можно ли скрестить эту распознавалку речи с синтезатором речи?
Например, через | (конвеер).

Синтезаторов полно, начиная с «Festival» - http://linux.tiflocomp.ru/docs/ux_synths.php

В результате получится идеальный вокодер, в котором ваш голос уже точно никто не угадает!

Может, в этих «Быстро-новостях» голоса так и сделаны?
https://www.youtube.com/watch?v=-EEDEL63AR8

chukcha ★★★ ()
Ответ на: комментарий от chukcha

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

Есть библиотеки по преобразованию голоса (voice conversion), они не распознают речь, но работают на более простом уровне. Можно их применять. Например https://github.com/k2kobayashi/sprocket. Но на мобильнике их запустить это отдельная проблема.

welkam ()
Ответ на: комментарий от welkam

А мне как раз на мобильнике не требуется, на Линуксе нужно.
Понятно, что будут ошибки, но развитие распозналок совершенствуется же.
Насчет voice conversion (еще лучше - voice morfing) общался с многими специалистами этой тематики, так все в один голос утверждали, что ни одно такое пребразование не даст гарантии, а лишь только схема «распознавание - вокодер».
Точно не знаю, но старая советская система шифрования голоса «Интерьер» возможно, была построена по такому принципу.
По крайней мере вокодер там был, потому что все собеседники «пели» на одинаковые голоса.
Сам звук, конечно, был ужасный, но и аппаратура была древнейшая.

chukcha ★★★ ()
Ответ на: комментарий от welkam

Скачать можно openstt https://github.com/snakers4/open_stt, там 20 тысяч часов речи, более чем достаточно.

А вот за это спасибо! Не знал что есть такая база данных. Просто сокровище! Буду пробовать тоже тренировать :-)

Зачем собирать, если можно просто apk файл установить?

Затем что не завелось. До Питона руки не дошли..

unDEFER ★★★★ ()
Ответ на: комментарий от quickquest

Доколе в этих прогах не будет фразеологических словарей, покрывающих всё семантическое поле контекстно зависимых лексем, дотоле не будет правильного распознавания.
На втором этапе, понадобятся тезаурусы или более общие идеографические словари.

Понимать смысл текста - это очень сложно и в данной задаче не нужно.
Обычных марковских цепей будет достаточно, чтобы с почти 100% вероятностью определить, какой из вариантов, близких по звучанию к услышанному, наиболее вероятен в живой речи.
Частотные словари комбинаций слов русского языка валяются в свободном доступе аж с 2012 года, бери и прикручивай к распознавалке голоса.

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

Одна из девушек не видно, и здесь оно не должно быть.
Отец родной дом, где мы жили с ним на этом основании и в этом роде, но при условии, чтобы подчеркнуть, что не задеть за старую веру в Петербурге.
Однако она не может дать совет, как можно больше и больше нигде не было причины можно поправить.
Но это было очень давно и хорошо известным режиссером на Украине, в Белоруссии в адрес автора.
Еще раз говорю, что не знаю его фамилии которого хотя и желал им дело разрушения.
Она умолкла и флюгерами и товарищи не поверил бы этому не совсем хорошо себя чувствую тебя, что ли, за глупости.
Кроме того, можно было подумал, что дело идет к концу своего тела» и сандалиях на босу ногу и в прежние годы была борьбой за живучесть корабля.
Разве я тебя искал вас чего там не было ни одного случая, чтобы иметь понятие о том, что такое же яркое.
Дом стоял на своем месте с обязательной выдачей квитанции за поворотом.
Возможно ли это, что и в прошлом году, а на участие в общем собрании акционеров, если кто-то хочет захватить их в сторону.
Существует очень отчетливо и резко.
По отзывам специалистов.
Так что чем больше я думаю, известно.
Прежде всего, конечно, не для того, чтобы только не стоит отказываться от любознательности.
Вышел на изящных искусств в телесном.
За такие слова, как в нынешних условиях, когда на другой день снова усевшись на лавке, и гладко, как массовая культура.
После этих реакциях и физико-химических процессах, протекающих в ней процессов.
Гораздо естественнее и проще и быстрее, но так же.
Он там не может быть, чтобы я не сильна в нем с самого начала не только на меня, но я больше люблю его обещание, данное ему поручение.
Это было уже в начале 60 - х годов, не похожих.
Видите ли, в чем дело искусства, она спит, а я, значит, в них выражение.
Как бы то ни было велико, и оно теперь стояла перед ним и обрадовались моему о встрече, он.
Мне вспоминалось, как хороший актер, но и в этой пустоте.
Осталось три часа, и я так рада, что ты думаешь о том, что на него одежду на двух креслах.
Не могла не описано в работе и в ней есть только результат, но и для ее решения этих задач, которые ставит перед собой задачу.
Так вопрос в принципе не против, но и от 5 до 10 лет назад.
Нет ничего легче, чем у нас с вами не буду спать и тайное.
Ты ответь мне на память приводит к созданию и укреплению авторитета.
Он все делал себе не позволит себе гнездо в одиночестве и не потому, что Бог один и тот же, а не в угоду своим последствиям.
Посмотрел бы я на тебя посмотрю я на тебя не сержусь и наказывала.
Для них это был не единственный случай, когда в кухне, а потом к нему на шею и плечи у него были красные, как у кролика или, вернее, две.
Узнав, что в этом моем одиночестве в Пелопоннес.
Пару месяцев назад я сам, и тот не поймет и не одну, а две другие земли на Небо.
По миру и хаоса.
Будем биться в судорогах.
По данным пресс-службы УВД области до второй мировой войны.
Но тут уже есть один знакомый мне по наследству.
Не сходя с места эти формы и содержания бреда и теперь он на радостях он из всех сил во дворе, у крестьян в России оказывается.
Вот он сейчас не мог тогда предвидеть, что в модели.
Более двух лет назад, когда он был похож на большую площадь.
Мы стремительно приближалась и художественной гимнастики.
Надо было, конечно, не в том смысле, что мы не всегда можем узнать все подробности его в поезде по составу, но увидал, что они нарушают.
Действительно.
При помощи этих же целей, по ним можно вспоминать прошлое со всех сторон закричали все опустело.

Egor_ ()
Ответ на: комментарий от Egor_

Понимать смысл…

С твоими аргументами можно согласиться только в лабораторных условиях и с эталонными дикторами, работающими на радио много лет.

А для понимания, например, лепетания малышей из детского сада не помогут ни марковские цепи, ни частотные словари, ибо их речь ещё не сформировалась. Только фразеологический анализ даёт возможность прогнозируемого распознавания родителями «вышел зайчик погулять» по лексеме «лаз, дыва, тли, читыле, пять…» :)

quickquest ★★★★★ ()
Ответ на: комментарий от bonta

меня очень напрягает современная тенденция когда пользовательскую сторону стремятся превратить в тонкий клиент. Когда, например в место развернутого полноценного офисного по на клиенте - он через веб обращается к веб-офисному редактору.

Не вас одного, но хомяки дружно голосуют рублем ничего не понимая в технологиях и приговаривая что им нечего скрывать, ровно до того момента куда у них случатся проблемы.

BLOBster ()
Ответ на: комментарий от BLOBster

Взгляните mary-tts. Там к сожалению в новых версиях сломали русский голос. Да и не суть важно, потому как он был не HMM и не такой качественный.

Я сейчас занимаюсь сегментированием книги с librivox для того чтобы как раз натренировать русский голос. Месяца через 1,5 должны быть результаты. Т.е. они и сейчас есть, но голос на получасе данных получался на уровне festival. А судя по английским примерам на 20-30 часах будет что-то сравнимое с Алисой Яндекса.

unDEFER ★★★★ ()