Follow

Ура! Запустил в своём умном доме
rhasspy.readthedocs.io/en/late
Теперь он меня слушается в буквальном смысле, и продолжит слушаться, даже если оторвать интернет.

• Активация через Porcupine, готовых моделей для русских слов там нет, но есть схоже звучащие английские варианты.
• Распознавание речи через Kaldi. Пока ни разу не ошибся.
• Команды шлёт в Документацию надо б дописать.
• Отвечает… 'ом. Позже прикручу , а пока буду пугать гостей, хи-хи. :blobcatgoogly:

Хроники моего голосового помощника Rhasspy (см. тред):
1. Бывают ложные срабатывания. А поскольку Kaldi тренируется только на предложениях с командами, он узнаёт команды в любом бреду. Обучили его фразам "Это не тебе", "Отбой", " Не-не-не, стой" и т.п.
2. Гость при ложном срабатывании послал его матом. Тот выключил свет (в тёмное время суток). Посмеялись и... научили его отвечать на оскорбления. Ибо нефиг! Уже уехав, виновник после предложил в ответ на ругательства закатывать тирады/нотации. Хм!

3. Звуки активации и приёма команд заменил на звуки R2D2. Очень подошли. soundboard.com/sb/r2d2_r2_d2_s
4. Детектор слов-триггеров Snowboy всё. Kitt.ai прекратили его разработку и сложили консоль, позволявшую тренировать собственные слова-триггеры. Но появился форк, в котором тренировать модели можно самостоятельно, надо будет попробовать: github.com/seasalt-ai/snowboy

🎤 Хроники (эпизод 3)

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

Последнее новшество – "брось кубик". С ним я узнал о новой фиче, диапазонах, а-ля (2..100), которые Rhasspy разворачивает в предложения с каждым значением. Был уверен, что это только для английского работает, но нет! 😊

Теперь я могу сказать ему "кинь d37" и задуматься, какой же формы этот кубик… 🤔

🎤 Хроники (эпизод 3.1)

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

🎤 Хроники (эпизод 3.2)

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

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

🎤 Хроники (эпизод 4)
В очередном обновлении прилетел речевой движок Larynx с тремя русскими голосами, которые звучат неплохо для голосов на публичных записях. Но местами со странностями, поэтому формулировки ответов приходится проверять на произносимость.
А ещё при нажатии на номер версии в вебморде открывается документация к API. Надо теперь прибить его к Home Assistant и можно делать команды типа "выключить на N часов/минут" или прилепить ещё один обработчик команд (?).
Ух-х!

🎤 Хроники , эпизоды нумеровать уже не вижу особого смысла. Предыдущие – в треде.

Произошло не сказать чтоб много. Разве что я научил его посредством ИК-излучателя запускать вентилятор на заданную скорость. Началось с наблюдения, что вентилятор всегда стартует на скорости 3 (из 10), и оттуда понеслось.

Идея внедрения отвечалки на вопрос "Где хранится Х?" почти стоит, но не заброшена – в поисках способа редактирования я набрёл на "домашний AirTable", пробую его: nocodb.com/

Интересно то, что хоть настройкой вентилятора и занимается очень простая программа, удовольствие от доведения её до работоспособности весьма значительное. Чуть математики, чуть программирования, чуть экспериментов. Хорошо, что этому удалось в своё время научиться.

А NocoDB, если отложить тот факт что в README он врёт и выдаёт планируемые фичи за имеющиеся – неплох. Таблицы делает и показывает, и к ним сразу же есть очень простой API, по которому есть автосгенерированная документация в Swagger.

🎤 Хроники (тред)

✔️ Качественный скачок сегодня: привинтил к нему . Теперь Rhasspy умеет говорить (не только отвечать, а, например, оповещать о событиях). И в целом работать над сценариями с внутренним состоянием там явно будет удобнее.

🤔 NodeRED силён! Его получилось вклинить между Rhasspy и так, что Rhasspy общается с ним по тому же API, от HA. NR обрабатывает что может, а нераспознанное шлёт дальше, в HA, где живут остальные обработчики. С – совместимость.

...впрочем, без казусов тоже не обошлось.

Выше по треду упоминал NocoDB. Э... в общем, в результате бага он может неожиданно для вас (и даже для себя) опустошить таблицу, если сделать bulk delete над объектом БЕЗ id.

Судя по логам, постгрес даже получает запрос с `id = "undefined"` (привет, NodeJS!) и прямо его в запрос и вставляет. А из-за неаккуратной обработки ошибок там получается что-то вроде `DELETE FROM table WHERE true`. И хоба!

Ситуацию спасли снапшоты btrfs, но надо б зарепортить.

🎤 Хроники (тред)

шикарен. Наконец-то сделал средство, которое поможет избежать значительного количества ложных срабатываний: "помолчи N минут".

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

Под выбор числительного в ответах я даже подпоток (subflow) сделал. Попутно, кстати, нашёл прелюбопытнейшую справочную страничку на сайте Unicode о правилах выбора форм слов для разных числительных в разных языках мира. Немецкий больше не кажется таким уж страшным!
unicode.org/cldr/cldr-aux/char

Sign in to participate in the conversation
Mastodon.ml

Русская нода социальной сети "Мастодонт", части Fediverse - всемирной федерации социальных сетей. Зона общения, свободная от рекламы и шпионажа, теперь и в России.