Разработка алгоритмов чтения данных с экрана
Рефераты >> Технология >> Разработка алгоритмов чтения данных с экрана

Введение

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

Для многих персональный компьютер является средством выражения своего творческого потенциала, своего “я”. Так, художник может легко творить компьютерные шедевры, писатель может быстро написать свою книгу, математик может рассчитать задачу без утомительных расчетов сложных формул на бумаге. А для людей с определенными физическими недостатками компьютер представляет собой вообще чуть ли не единственное средство для выражения своего “я”, своего интеллекта и творческого потенциала, особенно это касается людей незрячих и лишенных возможности передвигаться. Например, стоит упомянуть одного из величайших физиков современности – Стива Хокинга. Этот человек, заболевший в детстве, практически утратил возможность двигаться и говорить. Однако с помощью миниатюрного персонального компьютера и специальной программы ученый имеет возможности писать работы и проводить лекции, неизменно пользующиеся успехом.

Представленный здесь проект является еще одной попыткой облегчить жизнь незрячим людям. Разработанная программа представляет собой так называемый screen-reader (букв. “читатель с экрана”), который адаптирован для использования с системой электронных словарей Polyglossum-II для DOS. Программа позволяет озвучивать названия и содержание словарных статей в окне программы-словаря. Таким образом, screen-reader позволит незрячим людям заниматься переводом научных и других работ с одного языка на другой.

Постановка задачи

Необходимо разработать алгоритм озвучивания процесса работы с резидентными программами: чтение информации, выводимой на экран, озвучивание команд управления, введение дополнительных команд. Алгоритм необходимо реализовать на примере программы screen-reader, которая позволит озвучить названия и содержание словарных статей при просмотре их в системе электронных словарей Polyglossum-II для MS-DOS.

Глава 1

Анализ алгоритмов чтения данных с экрана монитора

Анализ проблем

Разработка программы screen-reader связана с решением следующих проблем:

а) взаимодействие программы-ридера с пользователем;

б) взаимодействие программы-ридера с озвучиваемой программой;

в) соблюдение соглашений операционной среды при одновременной работе нескольких программ.

Взаимодействие программы-ридера с пользователем

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

Взаимодействие программы-ридера с озвучиваемой программой

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

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

Соблюдение соглашений операционной среды при одновременной работе нескольких программ.

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

Глава 2

Проектирование алгоритма озвученного управления системой электронных словарей "Polyglossum-II"

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

В процессе разработки возникли некоторые проблемы, связанные непосредственно с интеграцией программы-ридера с системой словарей. Не имея ни исходного текста программ, ни данных о формате самих словарей, было проблематичным найти оптимальное решение для обеспечения взаимодействия программы-ридера и программой-словарем.

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

Для решения поставленной задачи был предложен следующий алгоритм: программа-ридер, являясь резидентной, перехватывает прерывание клавиатуры, записывая себя в таблицу векторов на место оригинального обработчика прерывания, предварительно сохранив адрес последнего. При нажатии на любую клавишу инициируется резидентная программа-ридер. Выяснив, активна ли в настоящий момент программа-словарь, программа анализирует код нажатой клавиши. Если код не принадлежит группе кодов, обрабатываемых программой, управление передается оригинальному обработчику прерывания. Если же нажатая клавиша принадлежит системе команд обрабатываемых программой-ридером, то происходит считывание выведенной в определенное место экрана информации. Преобразовав считанную информацию в специальный формат, ридер вызывает резидентную программу-синтезатор речи (в проекте использовалась сторонняя программа-синтезатор “Фонемафон”), после чего передает управление оригинальному обработчику прерывания. Предложенный алгоритм представляет собой оптимальное решение поставленной задачи, обеспечивая при этом относительную простоту реализации и функциональность программы. При необходимости использовать программу-ридер в других озвучиваемых системах, в большинстве случаев не будет надобности существенно менять алгоритм для адаптации к новой среде.


Страница: