LINKa смотри. Система выбора карточек при помощи айтрекера и не только

cdjxkqvjgqdd-honpka9xca1kjy.png

Вспомним кто я?


Привет, хабр. Я Иван Бакаидов. Много лет назад я писал про свой школьный проект программы, которая позволяет печатать одной кнопкой людям с тяжелой физической инвалидностью. Вот та статья.

С того момента много что изменилось, умерла девочка, для которой я написал эту программу, проект стал называться LINKa. Я сделал много программ для других форм двигательного поражения. Понял, что потерял волну волонтеров, возникшую при прошлом хаброхайпе, так как Open source проекты надо мейнтейнить.

Но тему разработки программ для коммуникации я не оставил. И на деньги из «гранта Дудя» разработал новый коммуникатор, который позволяет выбирать карточки взглядом. И мне нужна помощь дописать несколько фич. Стек: C#, WPF.

Взглядом? o_O! Как это? У тебя же голова дергается?


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

С 2016 года фирма Tobii (aka. Apple от мира айтрекинга) начала разработку дешевых устройств для рынка геймеров. Эти устройства дешевле в 10 раз девайсов для «инвалидов» (закон наклейки Special device). За пару лет они дошли до прекрасной модели Tobii 4с, которую можно купить в обычном гипермаркете электроники и воткнуть в USB 2.0.

zk1clrp8ebh5aemqkjem-ww3e6k.png

Мне один из фондов закинул этот девайс со словами «Попробуй, парень». Я положил на полку со словами «Айтрекинг и ДЦП — не заработает, потом как-нибудь посмотрю». Он еще работает только с Windows, а у меня Mac. Но фонды это такие прекрасные организации, которые требуют отчеты.

Bootcamp, поставил, настроил и понял, что айтрекеры этого поколения научились отслеживать положение головы, а уже от него положение глаз. На очень большой частоте. И всё работает, тряси головой сколько влезет.

Основное ПО для этого трекера геймерское, в Доке 2 врагов помечать взглядом. Все встроенные демки показывают геймерские функции. Но есть открытое API для работы в сторонних программах.

Открывается простор для создания интерфейсов, управляемых глазами. Такие интерфейсы устроены предельно просто: они состоят из сетки кнопок. При удержании взгляда на кнопке происходит клик. И тут многие уже отличились. В самой Windows 10 встроена клавиатура и эмулятор мыши для айтрекера (Правда там в локализации нет букв «Х» и «Б». Не попросить даже Хлеба!).

jf58-ap8qcv8vjsb5pr1iqmlgjg.png
Никак!

Есть довольно толковая клавиатура BB2K, о ней писал разработчик на хабре. Мне лично очень нравится Optikey, это хорошо локализованная клавиатура от британского разработчика. Имеет несколько вариантов, в том числе с пиктограммами для непишущих детей.

lmpbbj8z4oqcughl_oguoznwzwy.png

Ну так если уже есть оптикей, зачем писать свое?


Закономерный вопрос. Как вы помните из прошлых статей, специалистам, которые работают с людьми из речи, очень важно иметь возможность создавать самим контент выбираемый подопечным, а не работать с готовым кирпичом, в который вшиты даже очень хорошие карточки. Это происходит из-за того, что зачастую людей без речи только предстоит научить еще писать, или просто понимать что рисунок кружки обозначает ту самую чашку на кухне из которой его поят. А в тот же Оптикей создавать набор карточек нужно через PowerPoint.

Именно поэтому в основу Линка смотри легла идея, которую я хорошо усвоил учась в школе для детей с инвалидностью — «Всё должно быть настраиваемым». Исходя из идеи, встала очень простая задачка: Сделать сетку карточек, из которой карточки можно будет выбирать глазами, но при этом способ выбора, карточки и сетка должна легко настраиваться. Я оформил всё это в ТЗ и нашел C# программиста, который понимал в WPF (лучше меня). В это время еще Юра Дудь перевел денег и вообще всё сложилось.

Что в итоге получилось?


uvyfbebn4rnqhopqnaccyvdtmz0.gif

Получилась программа, которая показывает набор карточек из файла .linka в сетке и позволяет выбирать их при помощи: айтрекера Tobii, мышки, клавиатуры и игрового джойстика. Также есть режим при котором выбор карточки осуществляется взглядом, а подтверждение кнопкой.

gaf7kznbckg7chalwzby1kkkgfs.png

Программа содержит в себе редактор файлов .linka.

→ Скачать можно отсюда бесплатно: linka.su/looks

Так, а что доделать надо?


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

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

  • Доработать синтезатор речи, сделать выбор голосов Яндекс и добавить фоллбек чтоб при отсутствии интернет соединения.

    Для озвучивания наборов в линке используется API Yandex TTS. Линка смотри спроектирована так, что озвучка карточек задается во время создания набора. Создавая карточку вы можете или использовать озвучку Яндекс или выбрать файл с компьютера. То есть озвученный заранее набор может работать оффлайн. Но линка смотри поддерживает наборы, состоящие не из целых слов, а к примеру из букв, и в таком случае программа читает текст из поля вывода с помощью Яндекса в реалтайме. И я бы хотел, чтоб когда нет интернета программа использовала говеный виндовый синтезатор. Еще б хорошо добавить выбор из голосов яндекса.

  • Сделать систему выбора карточек одной кнопкой.

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

  • Сделать возможность печатать в сторонних программах.
  • Локализация на языки стран СНГ.


Также я буду рад если вы просто потестите программу и напишите свои идеи.

→ GitHub
→ Patreon

Спасибо!

© Habrahabr.ru