Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако


    Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

    Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.

    Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

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

    У Rhasspy очень простая интеграция в любую программную или аппаратную систему, куда вы хотите добавить голосовое управление. Автор поясняет, что инструмент изначально писался для проекта Home Assistant, но теперь совместим и с большинством других систем домашней автоматизации (Hass.io, Node-RED, OpenHAB, Jeedom).

    Rhasspy оптимизирован для работы с внешними сервисами по MQTT, HTTP или Websockets. Оптимизирован именно для голосовых команд с чётко определённой грамматической структурой (включить/выключить свет, сделать музыку громче/тише и т. д.)

    Поддерживается 14 языков, в том числе русский.

    Модель работы описана в документации. В её основе — распознавание голосовых команд через специфический язык шаблонов, специально приспособленный для данной области. Эти команды классифицируются по намерению (intent) и могут содержать слоты или теги, такие как цвет для освещения или название конкретного светильника, которому подаётся команда.

    Чтобы начать работу, перечислите намерения (в квадратных скобках) и возможные способы их вызова. Шаблон выглядит примерно так:

    [LightState]
    states = (on | off)
    turn (<states>){state} [the] light

    По такому шаблону Rhasspy сгенерирует JSON-код, который может использовать система домашней автоматизации, внешнее приложение или аппаратное устройство (через Node-RED, веб-сокеты):

    {
        "text": "turn on the light",
        "intent": {
            "name": "LightState"
        },
        "slots": {
            "state": "on"
        }
    }

    Непосредственно распознавание речи выполняет pocketsphinx: легковесный опенсорсный движок с поддержкой русского языка. Он отлично подходит для мобильных устройств или одноплатных компьютеров типа Raspberry Pi.

    Обработка звука происходит автономно на вашем устройстве. Сам звук может поступать с микрофонного массива Raspberry Pi (типа ReSpeaker 4 Mic Array или ReSpeaker 2 Mics pHAT) или из аудиопотока по сети.

    Rhasspy — просто очень удобный инструмент, чтобы связать движок распознавания речи с системой автоматизации дома или какой-то другой системой, которая требует голосового управления. В принципе, его можно использовать где угодно: например, в мобильных приложениях. Или в каком-то домашнем роботе типа пылесоса или бармена.

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

    Автор Rhasspy также является автором проекта voice2json: это консольная программа примерно для той же задачи, чтобы легко преобразовать человеческую речь в список компьютерных команд (или наоборот).

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

    Комментарии 51

      +7
      Ну русский там поддерживается довольно условно. Оно основано на Sphynx4. Не знаю может на малине pocketSphynx работает и лучше, но я как эту новость увидел на hackernews взял обычный для Java. Модель для русского языка датированную 16 годом а я думаю для pocketSphynx используется та же модель. И что? Ничего оно не распознает, только память жрет гигабайтами. Кстати модель английского и меньше и менее прожорливая, но все равно не распознает. Так что сфинкс в топку. Ну для английского есть альтернатива, ее я не проверял. А для русского заявлен только сфинкс. Так что можно было просто поверить комментариям на hackernews и не заморачиваться проверкой. Хорошо не стал тратить время на сетап этого всего на малине.
        –3
        pocketsphynx написан на кошерной сишечке, так что, не должно быть никаких проблем с модернизацией. Главное — чтобы народ подтянулся к проекту. А там, глядишь, получим нормальный сервис распознавания. Кстати, можно базовый набор звуков хранить на сайте проекта и дать возможность всем желающим расширять его (но не как у всяких гуглов, когда смартфон передает все, что ты говоришь, к этим буржуям, а передачей уже подготовленного и обработанного набора звуков).
          +2
          Какая разница на чем написан, если все равно толком не работает? И его не вчера начали делать. Иногда проще начать с начала, чем допиливать. И на кошерной сишечке можно наваять лапши. В общем я больше надеялся, что кто-то напишет, что это у меня руки кривые, а у него все работает и замечательно распознает русский. Но таких видать нет. И 99% людей не будут ничего допиливать, они просто захотят его использовать и получат разочарование и потерянное время.
            –12
            Разница большая: нормальный ЯП и поддерживать легче. Если бы это было написано на каком-нибудь отстое вроде .net, rust или прочей хипстерской гадости, то вероятность, что проект в конце-концов заглохнет, была бы близка к единице.
            > В общем я больше надеялся, что кто-то напишет, что это у меня руки кривые, а у него все работает и замечательно распознает русский.
            Очень мало людей, которым необходимо распознавать речь. Вот, к примеру, мне это вряд ли в ближайшем будущем понадобится. А нужно было бы — тоже влился б в коллектив разработчиков.
              +3
              Поддерживать можно что-то работающее. А если просто не работает, то это не поддержка.
                0

                как не странно, но голосовой ввод наиболее удобен для управления автоматизизацией в доме, это проще чем заходить в приложение, выбрать соответствующее действие в ней, если функций достаточно много, пока может это и не сильно востребовано, но я уже не рассматриваю других способов управления. сейчас использую связку autovoice tasker и плагин mqtt для этого… но как было бы просто иметь программу которая в оффлайне преобразует голос в текст, и отправляет необходимые данные в нужный топик по сопадению команды

                0
                Тоже пробовал PocketSphinx и он у меня тоже крайне плохо распознавал, что русскую, что английскую речь. Пришёл к выводу, что если буду его использовать, то надо сначала дообучить его на своей речи. Так как на момент теста относился к тем 99% людей, то я забросил это дело, но до сих пор помню про проект и готов взяться за распознавание речи оффлайн
                0
                Качество распознавания в sphinx ограничено качеством модели. Для русского языка плохая модель — недостаточно обучающих образцов. Для английского образцов побольше, там и распознавание получше.

                А распознавание на основе модели можно хоть на shell скриптах писать (как это сделано в kaldi). От этого результат не зависит.
                  0
                  Качество sphinx ограничено в основном используемой технологией распознавания. Можно к нему добавить сбоку что-либо более приличное, но зачем? Намного проще это «добавляемое сбоку» оформить в отдельный новый пакет.
                +1

                Ну, насколько я понимаю – pocketSpinx и Sphinx4 совершенно разные программы. pocketSpinx написан на C, а Spinx4 на Java.


                То есть выходит что вы тестили Spinx4 и переносите впечатления на pocketSpinx. Да, алгоритмы там наверно те же самые, но я и так могу сказать что написанные на Java, они будут тормозить и жрать гигабайты памяти.

                  0
                  А я про тормоза ничего не говорил. Я думаю, что Java на ПК и native code на малине будут иметь сравнимую производительность. Да ради бога я ему выделил 8 гиг памяти — пусть только работает. Тогда бы я начал с pocketsphinx заморачиваться.
                    0

                    Я не знаю какие там алгоритмы, но знаю что система для работы в реальном времени если быстродействие не позволяет может просто начать пропускать данные. Конечно распознавать при этом будет плохо. Кстати, на сайт Rhasspy именно это и написано:


                    Does speech recognition with CMU's pocketsphinx. This is done completely offline, on your device. If you experience performance problems (usually on a Raspberry Pi), consider running on a home server as well and have your client Rhasspy use a remote HTTP connection.

                    То есть, pocketSpynx тоже надо на мощном сервере ставить, а не на малине.

                      0
                      У вас распознает? Если ставить на домашний сервер, то это уже не pocket…
                        +1

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

                          0

                          А если попробовать заставить распозновать речь на болгарском так, словно это речь на русском? Насколько неудобоваримая каша на выходе получится?


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

                            0

                            Гм… Подбросили идейку…


                            Некоторые слова несомненно можно. Так как они полностью совпадают. "Старт", "стоп", "да", "не". Другие (и они много) вроде совпадают как звуки и буквы, но произношение совершенно другое. А для распознавания речи, мне кажется, это будет фатально.

                  0
                  А вы проверяли распознавание на общей языковой модели, или для ключевых слов? Для десятка ключевых слов и ограниченной грамматики у меня pocketsphinx работал неплохо. На общем тексте, конечно, он работает отвратительно.
                  +9
                  И тем не менее, это хорошо что такие проекты есть. Значит тему копают помаленьку. Потому как распознавание хочется, но хочется иметь его автономным. Чтобы вот подал питание и оно уже работает без всяких интернетов.
                    0
                    Ну и возможно его можно натренировать на свой голос сильно лучше, чем универсальный помощник.
                      0
                      Я как-то игрался с шилдом EasyVR 2.0. Это, конечно, не полноценное распознавание — это больше корелляция фона с имеющимся образцом. Обучил её на несколько команд только своим голосом и сначала был поражен насколько точно распознаются команды (шилд сообщал данные ардуине, которая, в зависимости от команды, лампочку зажигала или гасила). Но после того как плата была перенесена в другую комнату всё стало очень плохо. Т.е. если даже в обученном пространстве сделать перестановку мебели и повесить ковёр работа шилда так же ухудшится. А вот если бы было полноценное распознавание…
                    0

                    По заголовку статьи (где упомянут только русский язык) так и подумал, что Rhasspy — это не от Raspberry, а от русского слова "распознавание".

                      +1
                      Статья — просто информация с сайта? Без личного опыта?
                      Написать-то много можно…
                      • НЛО прилетело и опубликовало эту надпись здесь
                          +1
                          Пока эти страны умеют создавать высокотехнологическую продукцию — будущее есть. Хотя оно… с учётом нынешних реалий… несколько непонятное)
                          • НЛО прилетело и опубликовало эту надпись здесь
                              +4
                              Вы хабр читаете исключительно выборочно что ли? Здесь всё это проскакивало: лопатки турбины для истребителей пятого поколения, космическая техника, постройка ядерных реакторов, исследования в сфере квантовых вычислений, вычислительные ядра архитектуры RISC-V. Россия в одиночку 10 лет тащила общепланетную пилотируемую космонавтику. В англоязычной сфере нет аналога ресурса habr) У меня язык не поворачивается сказать, что подобной страны нет будущего, даже несмотря на то, что в этой стране не умеют делать нормальный электронный ширпотреб и у ней огромные социально-экономические проблемы. Вопросы по будущему есть и большие. Но я бы пока не спешил злорадствовать на тему ненужности русского языка.
                                0

                                Чел про язык пишет (неправ), Вы про страну — тут все сложнее
                                И да, а инновации кроме ВПК (и причастных к нему атомных технологий, "старого" космоса" еще есть?)
                                А так, у них там вместо хабра есть реддит

                                  0
                                  так можно любую технологию приписать как причастную к ВПК, и интернет и ДВС и все что угодно

                                  Еще неплохо дела с инфракрасными лазерами и выращиванием кристаллов для оптики. Хотя это тоже наследие времен ссср
                                    0

                                    Зачем разводить демагогию про "Любые технологии". Космос и Атомка — изначально военные проекты. Уж наверно помните, что появилось раньше, А-бомба или А-станция

                                      0
                                      интернет тоже военный

                                      по поводу АЭС- как-то не очень дела идут у американского вестингхауса, хотя с А-оружием вроде нет проблем
                                    +2
                                    Всё зависит от того, что называть инновациями, а именно — как человек считает они должны выглядеть в «пользовательской» жизни? Ну вот скажу я вам, что с такого-то года Россия перестала закупать оптоволокно, и не только обеспечила себя полностью, а ещё и начала экспортировать. Вы мне сразу можете возразить, что оборудование всё равно импортное, поэтому «не считается») Но Роснано ведь помогло в пуске почти сотни заводов за десятилетку. Можно относится неоднозначно к самой структуре, но эти заводы же что-то делают, это востребовано. Лиотех современные аккумуляторы делает. ЭУФ Лабс специализируется на решениях экстремального УФ. Mapper Lithography МЭСМ оптикой занимается. СИГМА.Новосибирск наномодифицируемыми сплавами занимается. Это всё инновации или нет? Причём надо понимать, что это не «старое доброе наследие», это уже современные производства (хоть зачастую и с русской спецификой).

                                    В IT, кстати, мы неожиданно тоже что-то можем. Но опять же многое «под капотом», кому интересно, что куча контор успешно работает по внедрениям по всему миру? У нас есть свой аналог Гугла — Яндекс, который по ряду сервисов гораздо удобнее. Такие аналоги ещё где-то есть? Яндекс — это представитель инноваций на базе bigdata или обычное дело?

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

                                    Да, со страной, в первую очередь с социально-политической системой, всё очень непросто. Есть куча вопросов как к правительству, так и к обществу. Не хочу разводить политоту здесь. Поэтому будущее… неопределённо. Но сразу ставить крест на народе/языке/стране — считаю это неправильно.
                                      0

                                      Вы тоже чет путаете, инновации и национальность
                                      Если наши делают оптику — это прекрасно. Есть ли в этом инновации — без понятия. Это скорее в тему "импортозамещения"
                                      Роснано помогло сотне заводов — это тоже инновация? а в чем это выражается, какая продукция? Какой-нить SAP тоже помог наверно еще большему кол-ву заводов.
                                      Лиотех современные аккумуляторы делает — это инновация? Я серьезно интересуюсь. Там чет инновационное? (что делают любые китайцы-малазийцы)
                                      Да, в IT чет можем. Даже экспортируем мозги и ряд продуктов с очень интересными последствиями (продажа энжинса как раз иллюстрирует)


                                      Ну что значит "ставить крест", есть еще много стран, которые живут хуже нас. Есть куда падать.
                                      Вы видите перспективы улучшения (ну хотя бы в рамках сравнения с европейскими странами, помните про "догнать по ВВП Португалию")?


                                      Вам повезло, Вы оптимист

                                        0
                                        Ну так вот я и задаюсь вопросом — а что такое инновации? Просто многие почему-то отсталость России трактуют исключительно по отсутствию потребительской электроники. Вот Лиотех проектирует призматические батареи — это инновация? Нормальную технологию тебе никто не даст, пока ты сам её не разработаешь. А говорить, что мы делаем, что не могут китайцы… ну так эмбриональная генетическая терапия и секвентирование ДНК — это тогда тоже не инновации.
                                          0

                                          Потребительская электроника — это то, что может пощупать каждый. И то, что каждый видел в виде йота-фона или нано-планшета. Поэтому и такое отношение. И да, потребительская электроника это наглядная демонстрация технических достижений. Сколько мобильных процессоров Вы знаете? я 4 — Медиатек, Квалком, Хуавейный и Самсунговский — вот это инновационные страны. Там у них не только ж процессоры делают. Плюс еще китайцы (материковые) догоняют и копируют что могут, в том числе и декстопные процы.


                                          Что касается призматических батарей — тут я не в курсе (как и 99% народа). Вот что нагуглилось https://ru.aliexpress.com/popular/prismatic-lithium-ion-battery.html
                                          мне кажется, если это продается на али, это не инновация, а уже ширпортреб.
                                          ну или тут https://studfile.net/preview/411479/page:5/


                                          Я не спец, но на инновацию не похоже.

                                            +1
                                            Ну так в Германии тоже нет своих мобильных процессоров и телефонов. Они-то по этому поводу шибко переживают что ли? А меня-то почему это сильно заботить должно?

                                            Я, если уж на то пошло, тоже не спец по аккумуляторам. Но если при предприятии есть свой центр R&D, то наверное что-то там исследуется и что-то внедряется. Тогда этот вопрос сначала изучить надо, а потом уже отрицать или доказывать наличие какой-то инновационности.

                                            Для меня термин «инновация» носит классическое понятие:
                                            Иннова́ция, нововведе́ние — внедрённое или внедряемое новшество, обеспечивающее повышение эффективности процессов и (или) улучшение качества продукции, востребованное рынком. Является результатом интеллектуальной деятельности человека, его фантазии, творческого процесса, открытий, изобретений и рационализации

                                            Поэтому улучшение технологий для меня это инновация. Если для вас инновация это «вундервафля, которой нет у других», то это это тогда уже другой разговор.
                                              0

                                              Ну то есть там есть ресеч и девелопмент, значит у них есть инновации. Но проверить мы не можем. Ну и, эм, знаете один отдел РэнДи или один Яндекс ну не вытянут страну. В Китае, Индии (и более успешных местах Азии) тоже есть R&D. Но вот у них там (в ЮК) есть LG, Samsung, Дэу (экзоскелеты, например) и тд и тп. А чего у нас? а у нас — автоваз :) с поролоном на стыке лобовухи и торпедо.


                                              По поводу Германии, без понятия, переживают они или нет. У них там другие отрасли вполне себе развиваются неплохо (Сименс, например, выпускали в том числе мобилы). Почему Вас должно заботить Германия не знаю.


                                              «вундервафля, которой нет у других» о, как раз вундерфавля у нас есть, недавно ж рапортовали, что Буревестник поставили на боевое дежурство (я сильно не копал, но шо, в одном экземпляре что ли и где соб-сно тесты?)
                                              кроме шуток, гиперзвук это действительно инновационно. Только опять про ВПК.

                                                0
                                                Ну и, эм, знаете один отдел РэнДи или один Яндекс ну не вытянут страну.

                                                У нас в стране только один рэнди и один яндекс? Вы серьёзно?
                                                  0

                                                  Чел приводил пример одного конкретного.
                                                  сколько у нас их в стране — вряд-ли кто-то скажет точную цифирь

                                          +1
                                          Вы видите перспективы улучшения?

                                          Сложно сказать. Западные аналитики ставят нам в плюс работу в жёстких условиях и подчеркивают сбалансированность и здоровость экономики, у нас практически нет внешних долгов. Не факт, что европейские страны показывали бы лучшую динамику в условиях постоянного внешнего давления, как бы вам не расписывали пользу санкций с ТВ. Когда снимутся санкции? Тогда когда Россия перестанет считать зоной своих интересов ближний восток и страны СНГ. Но современный политический истеблишмент видит Россию как минимум региональным лидером. Время 90-ых прошло, законы геополитики заработали как и раньше и им наплевать даже на идеологию) Поэтому перспектив улучшений в этой части не будет.

                                          С 2018 года, в начале последнего срока всем известного президента, государство начало «инновационно» развивать экономику жёсткой фискальной политикой. Кейнсианская теория — в целом это неплохо, учение родилось в США во время великой депрессии. Нет ничего плохого в том, что в тяжкое время на рынок деньги будет заливать государство в расчёте дат импульс его шестерёнкам. Но наша экономика 5 лет буксует. Государство ужесточает фискальную политику несмотря на то, что деньги расходуются неэффективно — рынок тупо не может взять выбрасываемые на него деньги, проекты не выполнюятся. Тут дело даже не в коррупции. Повышать надо внутреннюю эффективность экономики в целом. А для этого нужна компетентность управления в целом. А компетентный слой управленцев берется из народа. И если народ будет честно платить налоги, перестанет тырить по карманам шоколадки в торговых сетях и ныть про очередное повышение штрафов при нарушениях ПДД, то, наверное, из него и управленцы со схожими мировозренческими установками выходить начнут. И вот какая тут перспектива? Экономическая политика меняться похоже не собирается. Активность народа правда у нас как-то растёт. Еще поколение (20-25 лет) должно пройти, чтобы о каких-то улучшениях выводы сделать. Ещё одна проблема нашей экономики — мало народу. И тут, ну вот вообще ничего не сделаешь. Правда есть зацепка в виде тотальной автоматизации производств, но для этого нужны компетентные стратеги-управленцы, которые берется… [см. выше].

                                          Повторюсь, я всегда готов возразить тем, кто будет мне тыкать в морду йотафоном и роботом Федором, рассказывая как у нас всё плохо. Считаю, что на техническом ресурсе такая точка зрения в корне неправильна. А социально-политически… это надо на других ресурсах общаться. А вы меня всё же тут развели на эту тематику)) После всего вышеописанного реально считает, что мне повезло с оптимизмом?
                                        0
                                        Реддит это не то. Это смесь хабра, пикабу и вот такое вот прочее. Хабр более узкозаточенный ресурс, контингент и атмосфера тут всё же соответствующие. Скажем так, когда я хочу читать хабр, я не хочу на главной находить тусовочные статьи, а под технически серьёзной статьёй читать развлекательные комменты из смайликов.
                                          0
                                          Конечно реддит — никакой не аналог хабра. А вот hackernews намного ближе.
                                0
                                У вас картинка 2 мега…
                                  +1
                                  У меня лично (да и у многих других, думаю, тоже) с этим голосовым управлением есть психологический вопрос: как-то не могу себя заставить при других громко отдавать команды телефону и т.п. Даже «окей гугл» не пользуюсь из-за этого. Возможно, когда все будут идти по улице и кричать в гарнитуру «через пять минут я дома, включи свет, разогрей мою недоеденную пиццу», я тоже начну… но пока…
                                    –1

                                    А что сейчас мешает обычному человеку отдавать подобные команды по телефону жене, например? ;-)

                                    0
                                    Использовал аналог mycroft.ai — тоже на малинке заводится (хотя никто не мешает запустить на любом другом линух серваке) и работает офлайн
                                      0
                                      А вот бы еще кто-то наваял опенсорсный ОСР-конвертер. Типа, с картинок в текст.
                                        0

                                        Уже давно, Tesseract называется.

                                          0
                                          Да, но там все сложно. Хочется чтоб был как опен оффис — зашел, скачал под винду. А этот тессеракт — это апи на гитхабе, к которому самому надо будет обвязку делать (в дельфях или еще как-то)
                                            0

                                            Гляньте на вики, там перечислены GUI и под винду, и под линукс.

                                              0
                                              А вообще да, нашел gReader на гитхабе в скомпилированном виде. Меня перед этим смущало, что код был выложен на сорсфорге — платформа на мой взгляд более стремная чем гитхаб.
                                          0
                                          CuneiForm уже давно опенсорсная.

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

                                        Самое читаемое