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

Вступление


Для начала — что такое тифлоплеер? Тифлоплеер — специальный плеер, позволяющий воспроизводить (некоторые модели — и записывать) аудио книги для слепых и слабовидящих.

Собственно, для чего он мне понадобился? Так сложилось, что родители моей мамы в данный момент почти ничего не видят. На это у них у всех свои причины и печальные истории и они не для этого места. Кроме того что это абсолютно ужасно в бытовом плане, это еще отобрало у них возможность заниматься одной из самых любимых вещей — читать. Потеряли зрение они не синхронно и изначально по-своему справлялись с этой проблемой. Но потом и эта возможность пропала. Тогда было решено качать аудиокниги и слушать их на всяких плеерах/колонках/магнитофонах, используя флешки или карты sd. Но в этих девайсах со временем обнаружились неприятные детали — когда переставлялась флешка или карта, плеер часто считал что это то же самое и начинал новую книгу с того места в котором закончил старую. И так происходило со всеми купленными, даже с теми, что дорогие. Да и сами махинации с картами и флешками не самые простые для тех, кто не видит. Поэтому, будучи «тыжпрограммистом», я попробовал это исправить.

«Аппаратная» реализация


Было очевидно, что в создаваемой системе надо записывать время и файл окончания последней книги. Ну и больше ничего. Сам по себе я программирую на C#, но в тот момент набирали популярность микрокомпьютеры типа Raspberry Pi. Собственно с малины и начал. Но, или из-за своей ужасной лени, или из-за отсутствия знаний в той области у меня ничего не вышло (давно было дело, теперь понимаю, насколько ничтожная это была задача). Потом пробовал разные варианты, и с той и с другой стороны. Был и hdmi медиаплеер и другие игрушки в этом стиле, но все не складывалось никак. С каждым днем, в принципе, подкатывало понимание того что 89 лет это не 19 и у меня каждый день на счету. Пришлось решиться на быстрый и сердитый вариант.

Собственно быстротой и сердитостью было движение в сторону C# и Windows. Но нужно было найти какое-то устройство на винде. Миникомпьютеры с виндой иногда встречаются, но стоят дорого да и не всегда дают полный набор того что было надо (ну и времени разбираться с нюансами не было), так что после определенных махинаций было решено использовать старый нетбук. Для того чтобы слабо видящий человек смог его включить понадобилось пару кустарных доработок. Была припаяна большая красная кнопка вместо кнопки включения.



Дальше возникал самый важный вопрос — элементы управления. Мышь это слишком тяжело, клавиатура тем более. Эйр стик с медиаплееера отлично работал, но тоже был бы сложноват. И вот, как-то раз, размышляя об этом всем в разговоре с коллегой, я понял что мышь — идеальный вариант в моей ситуации. То-есть не совсем мышь, а ее кнопки.

Исходя из идеи, надо было 7 функций:

  1. Играть
  2. Пауза
  3. Следующий трек (часть книги)
  4. Предыдущий трек (часть книги)
  5. Следующая книга
  6. Предыдущая книга
  7. Регулировка громкости

По сути, мне нужна была мышь на 6 кнопок. После анализа, а так же понимания того факта что C# обрабатывает только 5 кнопок (не особо пробовал придумать как решить этот вопрос, так как 5 достаточно), первые два пункта были объединены. А для громкости было использовано колесико.

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

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



К моему счастью так случилось, что один хороший человек работал в дизайнерской студии, где мне могли вырезать то, что мне нужно было из дерева. Через пару дней я получил красивую коробку. К сожалению, мы немного друг друга не так поняли, и она осталась без крышки для отсека батарейки. Но это мелочи (хотя до сих пор не решил этот вопрос). Дальше было много паятельно/вырезательно/поклейной работы. Я банально припаял кнопки вместо кнопок мыши (не без проблем, из-за качества платы).



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









«Программная» реализация


Все что осталось сделать — написать программу. Как я и подозревал, она заняла около 20 минут. Алгоритм (хотя скорее просто общие тезисы о том, как это работает) выглядит следующим образом:

  1. В специально забитой папке (костыли) мы ищем папки с книгами (тут работает даже вложенность папок).
  2. У каждой книги есть аудио файл заголовка (записанный на микрофон или вырезанный из начала книги).
  3. Это все показывается на мониторе большими контрастными буквами (даже монитор есть, хотя смысла в нем не много)
  4. Когда это все работает активная книга читает свое название бесконечное количество раз, пока пользователь не переключит на другую книгу, или не включит активную.
  5. Если книга на паузе или остановлена, или переключена на другую без остановки — она записывается в лог файл с которого будет читаться в момент следующего включения этой книги (ради этого оно все и было).
  6. Ну и еще — чтобы книгу добавить надо вставить флешку и выбрать папку с книгой. Что выглядит не тяжело, даже когда ты приходишь в гости раз в пол года

Листинг программы не буду показывать. В нем то по сути нет особого смысла, особой сложности, паттернов проектирования и остального. Строчек кода имеющих смысл там 60 штук, 25 из которых это сгенерированный код xaml. Хотя если вдруг кому-то это понадобится — могу добавить.

Но думаю надо сказать пару слов о том, как оно все живет в винде — несколько ключей реестра позволяют запускать приложение вместо explorer.exe. Свойства окна там maxemized, topmost=true. Вот и все. Все лишние службы отключены, ни намека на антивирус и службу обновлений — только то, что надо (в принципе, так и работает большинство автоматов обслуживания).

Итого вышло что-то типа этого:



Вместо заключения


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

В общем, вот и все. Спасибо за внимание.

Комментарии (22)


  1. DrPass
    25.04.2016 16:54

    > Для начала — что такое тифлоплеер? Тифлоплеер — специальный плеер, позволяющий воспроизводить (некоторые модели — и записывать)
    > аудио книги для слепых и слабовидящих.
    Честно говоря, я после этого определения прочитал всю статью, но так и не понял, чем тифлоплеер отличается от обычного цифрового аудиоплеера. Ну, кроме того, что у вас он размером с ящик. Только возможностью сохранения позиции каждого файла?


    1. ba-a-aton
      25.04.2016 16:59

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


    1. Eric50
      25.04.2016 17:11
      +3

      Тифлоплеер это обычный плеер, с огромными простыми кнопками и специальным названием. Кнопки делаются большими ради оправдания увеличенной стоимости, и предполагается что «слепой» это синоним «тупой». А приставка «тифло» позволяет увеличивать цену девайса в десять и более раз.
      Уверяю, слепой пользователь, нормально юзает обычный mp3-плеер с маленькими кнопками и без голосовых подсказок. Единственное, нужно показать, какая кнопка за что отвечает. Ну и не вкорячивать всякие динамические менюшки.
      А касательно нетбука с виндой, то слепой может нормально юзать эту винду, скачивать книги и заряжать их в какую-нибудь «говорилка» или «балаболка», чтобы послушать.
      Накрайний случай, если слепота совмещается с чудовищной ленью, есть програма «максридер», как раз для пожилых и незрячих людей.


      1. ba-a-aton
        25.04.2016 17:15

        Программы не искал. Но есть самый важный нюанс — этой вещью люди должны пользоваться без чьей либо помощи. Всегда ведь программу можно свернуть, закрыть и еще сотни вещей. В даной ситуации ничего лишнего сделать нельзя. Такая была цель.


        1. Eric50
          25.04.2016 18:54

          Если говорить именно о «герондо»+«тифло»+«проигрывателях», то это отдельный класс устройств.
          Действительно, они должны быть тупыми и однозначными. Минимум функций, чтоб не напрягать стариков.
          Помню, как старушек ставило в тупик наличие на плеере более двух кнопок. Ну не могла бедная бабулька понять, термина «перемотка» или «перелистывания»!
          Моя собственная зрячая бабуля, всю жизнь, просила слепого дедулю, включить ей телевизор. Ибо выбор одной из трёх програм, подвешивал её мозг. А ежели дедули не оказывалось рядом, бабуля оказывалась без санта-барбары или иного сериала.

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

          Пользователи аппаратных плееров, ограничены через чур жестоко. Они не могут даже новой книжки скачать!
          В это же время, незрячий пользователь обычной windows может скачивать аудио книги или даже текстовые и слушать их.
          Более того, незрячий пользователь, может засунуть книжку в сканер, распознать её каким-нибудь файнридером и опять послушать её.

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

          Но и тифлоплеера, если говорить прямо, далеко не идеальны.
          По моему это натуральное издевательство. Дикторы мямлят, вздыхают, шелестят страницами. Фу! Противно же слушать!

          Ладно, соглашусь, что на безрыбье и рак рыба. Прижмёт и аудиокнигу можно послушать. Но ведь эти же книги, записывают так, что искажается смысл. Например в «трудно быть богом», потеряли пролог и эпилог.
          А что ещё хуже, многих книг банально нет в аудио версии. Продолжение полюбившегося сериала нужно ждать годами и даже десятилетиями. И ещё не факт, что оно появится, да ещё записанное тем же диктором.


          1. ba-a-aton
            25.04.2016 19:42

            Да, действительно, выглядит как отдельный класс устройств. И действительно к старикам применим не только к тем кто плохо видит.
            А насчет скачивания новых книг — я читал в свойствах некоторых устройств что они их качают по вайфаю. Откровенно говоря мне тяжело это представить. Да и как вы говорили — сводится к выманиванию денег (там свой специфический формат и книги стоят денег).

            Насчет именно тех профессиональных (не кустарных) тифлоплееров я не могу судить. Но если они со своим форматом, который только одна контора использует, то там явно только один вариант начитаного и выбора нету. В mp3 у меня уходила куча времени на то чтобы найти книги где все есть (это я по коментам на рутрекере искал), где никто не мямлит. Когда не находил — отказывался от книги. Список желаемой литературы большой. Тут нельзя не согласится что компьютер идеальный вариант. Тут можно и по РДП новые книги заливать и делать что угодно. Самая большая проблема действительно антивирус. Он нужен (если делать интернет), но он вылазит поверх всего. Разве что делать ПО в стиле вылетающих сообщений которые обещают залочить винду навсегда если не отправишь СМС. Как вариант. Ну или линукс (который правда тоже иногда надо защищать).


            1. Eric50
              26.04.2016 05:38

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

              Профессиональные тифлоплеера, которые я мацал, поддерживали два формата. Шифрованный mp3 и нешифрованный mp3. Причём файлы нужно раскладывать по директориям особым образом и педантично соблюдать соглашение об именах. В добавок, битрейд строго задан. Отступ в сторону от соглашений и ничего звучать не будет. Ну, это поделки печально известной элитагруп.
              С другой же стороны, государственная и внутренняя поддержка. Специализированные библиотеки для слепых, предоставляют sd флэшки с книгами в правильном формате. Некоторые умельцы, могут конвертировать в работающий формат.

              На счёт же вылезающих бяк на компьютере, то кроме касперского, есть иные подляны. Например встроенная защита прав пользователей (uac) лихо блокирует всё и нафиг. Если винда настраивается для слепого, то uac приходится отключать сразу. Зато бесплатный антивирус microsoft security esential, совсем не назойлив и вполне управляем.

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

              Один знакомый незрячий парень, купил айфон. И вот теперь, развлекается тем, что уговаривает сири, расказать ему какую-нибудь новую сказку. Я раньше и не предполагал, что на ютуб выкладывают аудио книги. А ведь тоже вариант. Слушать можно.

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


            1. Tseikovets
              27.04.2016 18:38

              я читал в свойствах некоторых устройств что они их качают по вайфаю. Откровенно говоря мне тяжело это представить. Да и как вы говорили — сводится к выманиванию денег (там свой специфический формат и книги стоят денег).


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

              В России есть одна такая библиотека — AV3715.ru, доступ к которой выдаётся либо в региональной библиотеки для слепых, либо в центральной Российской государственной библиотеке для слепых (РГБС). Именно в РГБС могут регистрироваться лица, проживающие за пределами РФ. Для получения регистрации для бесплатного доступа к библиотеки нужно предоставить документ, подтверждающий факт наличия инвалидности по зрению.

              Ещё раз — пользование библиотекой бесплатно!

              Доступ к библиотеке идёт по протоколу DAISY online, но в av3715.ru используется не формат DAISY, а LKF, поэтому нужен плеер с поддержкой именно этого формата (де-факто кодированный MP3).
              Впрочем, покупать специальное устройство для av3715.ru необязательно, можно воспользоваться Android-приложением.
              К слову, Android-клиент av3715.ru можно использовать в режиме самоозвучивания, так что купив простой смартфон можно целиком и полностью превратить его в плеер для говорящих книг из этой библиотеки.


      1. serafims
        25.04.2016 17:39

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

        Также преимущества тифлофлешплееров в том, что они поддерживаются немного организациями поддержки слепых — в отличие от тьмы аудиоплееров.

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


    1. serafims
      25.04.2016 17:36

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


  1. saboteur_kiev
    25.04.2016 18:34

    Продаются отдельные клавиатуры с цифровым блоком. Привыкнуть несложно, и главное что доступно, быстро и надежно — такие разве не подойдут:
    https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B0

    Кроме того всю отладку можно вести и на обычной клавиатуре.


  1. RedStone
    25.04.2016 19:25

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


    1. ba-a-aton
      25.04.2016 19:31

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


      1. RedStone
        25.04.2016 19:35

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


        1. ba-a-aton
          25.04.2016 19:46

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


        1. Iv38
          26.04.2016 17:02

          У контроллера клавиатуры самое сложное — разобраться с разводкой, там же мультиплексирование. Кнопок больше сотни, контактов десяток-другой.


      1. ksil
        26.04.2016 11:09

        из клавиатуры повыковыривать кнопки, только несколько оставить. не так презентабельно, зато быстро и универсально


  1. kvazimoda24
    25.04.2016 23:26

    А зачем батарейка?


    1. ba-a-aton
      25.04.2016 23:26

      Это радио-мышь была.


  1. Tseikovets
    27.04.2016 18:27

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

    Чисто по плеерам, есть опять же специализированные устройства, в том числе с возможностью автоматической закачки говорящих книг из on-line библиотек (бесплатно), но они довольно дороги (от 300 долл.).

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

    В общем ваш опыт интересен как история из жизни, но с точки зрения эффективности решение неоптимально. Если нужна помощь или дополнительная информация, то пишите, готов помочь.


    1. ba-a-aton
      03.05.2016 15:13

      Большое спасибо за оба комментария. Очень полезные.
      Насчет добавления возможностей — в принципе бысла мысль добавить радио, скайп АПИ и подобные вещи. Они так же просто реализовываются как и плеер с использованием C#. Но насчет неэффективности того что я сделал — я абсолютно согласен. Просто это было быстро и действенно. Да и как-то я не особо копал, очень хотелось самому все сделать.
      Последняя мысль была следующая — возобновить попытки что-то сделать на raspberry. С другой стороны, прочитав ваши комментарии, я понял что могу использовать HD медиаплеер (который на андроид) или Raspberry (опять таки с андроидом) с тем приложением. И заодно с онлайн доступом к книгам.
      В общем — большое спасибо за направление.


      1. Tseikovets
        03.05.2016 17:58

        Что касается применения Raspberry Pi, то пару лет назад группа финских товарищей уже реализовала программную прошивку плеера для незрячих для этой аппаратной платформы. Это так называемый Kolibre Vadelma и связанный с ним web-сервис Kolibre KADOS. Вот демонстрация на YouTube, а вот их GitHub.

        Чуть позже один российский разработчик немного усовершенствовал аппаратную и программную часть проекта. Он даже сам здесь присутствует и зовут его munirov. По-моему там получилось не очень хорошо из-за слабости Raspberry Pi, но возможно с обновлёнными более мощными версиями получится лучше.