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>) [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: это консольная программа примерно для той же задачи, чтобы легко преобразовать человеческую речь в список компьютерных команд (или наоборот).
В этом случае очень важно, чтобы обработка звуковых потоков проходила локально и не требовала доступа в интернет. Кажется, будущее за голосовыми интерфейсами.