Слабовидящие люди — это люди, имеющие какие-либо проблемы со зрением. Это может быть частичная потеря зрения, дальтонизм и др. Такие проблемы могут быть врожденными либо приобретенными в процессе взросления человека.
Слабовидящие люди зачастую не имеют возможности работать за компьютером, так как им тяжело воспринимать информацию, выводимую на экран. Для облегчения работы слабовидящих на ЭВМ существуют различные программные и технические средства. Ниже приведены категории таких средств:
- экранные лупы или системы экранного увеличения;
- ПО для чтения;
- навигационное программное обеспечение;
- программы для распознавания речи;
- виртуальные манипуляторы и устройства ввода;
- системы считывания экранной информации;
- ПОдля сканирования и распознавания текста;
- программные комплексы для средств коммуникации. [1]
Однако эти средства имеют высокую стоимость, труднодоступность, обычно они не поддерживают русский язык. А так же нет таких программных средств, которые сочетали бы в себе основные компоненты, необходимые при работе за ЭВМ для слабовидящих, а именно — озвучивание нажатия клавиш на клавиатуре, чтение печатного текста, использование лупы. В связи с этим при разработке структуры программного обеспечения для слабовидящих людей, можно уделить особое внимание экранным лупам и ПО для чтения. Ниже рассмотрены данные технологии.
Технология «Экранная лупа»
Экранная лупа используется для увеличения области на экране. Может быть разных видов. Некоторые экранные лупы не только увеличивают выбранную область, но и позволяют применять различные фильтры (например, делать изображение черно-белым). Фильтры помогают слабовидящим людям воспринимать изображенную информацию. Обычно область, которую нужно увеличить, находится под курсором мышки. Таким образом, пользователь легко может перемещать область увеличения, тем самым обозревая весь экран.
Технология «Text-to-Speech»
Text-to-Speech (TTS) — специальная технология, позволяющая формировать речевой сигнал (речь, голос) по печатному тексту. Основными характеристиками TTS является правильность произношения слов, понятность, верное озвучивание интонаций. Все это необходимо, чтобы слабовидящий человек мог легко воспринимать синтезируемую речь.
Обычно основой программного обеспечения для людей со слабым зрением составляет именно голосовой движок, работающий на основе TTS, или голосовой движок TTS.
Учитывая вышеуказанное, была поставлена задача разработки программного обеспечения для слабовидящих людей, которое объединит в себе следующие компоненты:
- озвучивание печатного текста из различных текстовых редакторов;
- озвучивание нажатых клавиш на клавиатуре;
- озвучивание различных системных сообщений;
- озвучивание происходящего под курсором;
- экранная лупа.
Для достижения этой задачи необходимо определить структуру ПО, которая приведена на рисунке 1.
Рис. 1 Общая структура программного обеспечения для слабовидящих людей
В качестве языка программирования выбран C#. В качестве среды программирования — Visual Studio 2010. В качестве движка TTS будет использован встроенный в Windows речевой движок.
Для использования TTS в C# необходимо использовать пространство имен System.Speech.Synthesis. [2] Далее необходимо провести ряд действий по инициализации и настройке голоса.
1. Создается переменная
SpeechSynthesizer synth = new SpeechSynthesizer();
2. Выясняется список голосов, доступных системе
varvoiceList = synth.GetInstalledVoices();
3. Нужный голос — второй в списке, поэтому выбирается именно он
synth.SelectVoice(voiceList [1].VoiceInfo.Name);
Для того чтобы воспроизвести текст используется функция synth.Speak(string str), в которой в качестве параметра str передается текст, который необходимо воспроизвести. Соответственно после того, как распознана нажатая клавиша или какое произошло системное оповещение и т. д., а точнее, как только выяснено, какой текст нужно воспроизвести, в функцию synth.Speak(string str) передается строка, содержащую то, что нужно транслировать из текста в речь. Таким образом, пользователь может услышать при помощи колонок или наушников текст, выводимый на монитор компьютера. Алгоритм работы TTS представлен в виде блок-схемы, приведенной на рисунке 2.
Рис. 2 Блок-схема алгоритма работы TTS
Для реализации экранной лупы, прежде всего, необходимо получить скриншот области, находящейся под мышкой, а также отслеживать перемещение мышки, чтобы передвигать эту область. Для этого используется обработчик события перемещения мышки OnMouseMove. [2] После чего, опять же с использованием переменной окружения PaintEventArgse, распознается область под курсором (размером 10 на 10 пикселей) и выполняется скриншот этой области для того, чтобы вывести ее в измененном состоянии на экран.
Graphics area = e.Graphics;
area.CopyFromScreen(Cursor.Position.X — 10, Cursor.Position.Y — 10, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
Однако, до того как будет выведен измененный скриншот на экран, необходимо его обработать. А именно — изменить масштаб и, если это необходимо, применить различные фильтры. Такие фильтры (чаще всего перевод изображения в черно-белое) помогут пользователю с дефектом зрения более отчетливо увидеть картинку на экране. Блок-схема алгоритма работы экранной лупы приведена ниже (рис. 3).
Рис. 3. Блок-схема алгоритма работы экранной лупы
Таким образом, в статье рассмотрены основные компоненты, из которых должен состоять программный продукт для слабовидящих людей, проанализированы две основные технологии (экранная лупа, TTS), необходимые для создания ПО. Благодаря использованию данных компонентов и технологий, можно создать универсальное программное обеспечение для слабовидящих людей, которое смогут использовать люди с различными нарушениями зрения, будь то дальтонизм или частичная потеря зрения, что в свою очередь поможет им работать за персональным компьютером.
Литература:
1. Герасименко А. IT и инвалиды: реабилитация и жизнь в цифре / А. Герасименко // 3D news [Электронный ресурс]. — 2008. — Режим доступа: http://www.3dnews.ru/editorial/it_invalids/page-2.html
2. MSDN // Microsoft Developer Network [Электронный ресурс]. — 2013. — Режим доступа: http://msdn.microsoft.com/ru-ru