Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах

Описан автоматизированный диалоговый программно-алгоритмический комплекс НАДРА–Д, который предназначен для исследования процессов в многокомпонентных средах с тонкими включениями, произвольно ориентированными в пространстве. Система разработана в среде WINDOWS на основе реализации новой объектно-о...

Full description

Saved in:
Bibliographic Details
Date:2004
Main Authors: Сергиенко, И.В., Дейнека, В.С., Калынюк, Н.А., Радионов, М.М.
Format: Article
Language:Russian
Published: Інститут програмних систем НАН України 2004
Subjects:
Online Access:https://nasplib.isofts.kiev.ua/handle/123456789/2302
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Cite this:Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах /И.В. Сергиенко, В.С. Дейнека, Н.А. Калынюк, М.М. Радионов // Проблеми програмування. — 2004. — N 2,3. — С. 520-533. — Бібліогр.: 8 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id nasplib_isofts_kiev_ua-123456789-2302
record_format dspace
spelling nasplib_isofts_kiev_ua-123456789-23022025-02-09T17:41:20Z Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах Сергиенко, И.В. Дейнека, В.С. Калынюк, Н.А. Радионов, М.М. Прикладное программное обеспечение Описан автоматизированный диалоговый программно-алгоритмический комплекс НАДРА–Д, который предназначен для исследования процессов в многокомпонентных средах с тонкими включениями, произвольно ориентированными в пространстве. Система разработана в среде WINDOWS на основе реализации новой объектно-ориентированной модели, ее структура достаточно легко позволяет существенно расширить классы решаемых задач. Комплекс оснащен мощной подсистемой ввода и обработки входной информации, содержит средства конечно-элементного розбиения многокомпонентных областей с разрезами, подсистемы перенумерации конечно-элементных узлов, решения прикладных задач, обработки результатов, обработки голосовых функций. Интерфейс системы оснащен средствами восприятия голосовых команд и озвучивания комментариев. The paper describes NADRA–D, a computer-aided system set used to investigate processes in multicomponent media with thin inclusions arbitrarily oriented in space. Such a system is designed in WINDOWS environment on the basis of implementation of a new object-oriented model. The system structure allows to essentially extend solved problem classes busily enough. The system is equipped with a powerful subsystem that enters and processes an input information. The same system contains tools for finite element decomposition of multicomponent areas with sections, subsystems used to renumber finite element nodes, solve applied problems, handle outcomes and voice functions. The system interface is equipped with tools that percept voice commands and insonify comments. 2004 Article Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах /И.В. Сергиенко, В.С. Дейнека, Н.А. Калынюк, М.М. Радионов // Проблеми програмування. — 2004. — N 2,3. — С. 520-533. — Бібліогр.: 8 назв. — рос. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/2302 681.32.06:004.925.8:004.522 ru application/pdf Інститут програмних систем НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
topic Прикладное программное обеспечение
Прикладное программное обеспечение
spellingShingle Прикладное программное обеспечение
Прикладное программное обеспечение
Сергиенко, И.В.
Дейнека, В.С.
Калынюк, Н.А.
Радионов, М.М.
Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах
description Описан автоматизированный диалоговый программно-алгоритмический комплекс НАДРА–Д, который предназначен для исследования процессов в многокомпонентных средах с тонкими включениями, произвольно ориентированными в пространстве. Система разработана в среде WINDOWS на основе реализации новой объектно-ориентированной модели, ее структура достаточно легко позволяет существенно расширить классы решаемых задач. Комплекс оснащен мощной подсистемой ввода и обработки входной информации, содержит средства конечно-элементного розбиения многокомпонентных областей с разрезами, подсистемы перенумерации конечно-элементных узлов, решения прикладных задач, обработки результатов, обработки голосовых функций. Интерфейс системы оснащен средствами восприятия голосовых команд и озвучивания комментариев.
format Article
author Сергиенко, И.В.
Дейнека, В.С.
Калынюк, Н.А.
Радионов, М.М.
author_facet Сергиенко, И.В.
Дейнека, В.С.
Калынюк, Н.А.
Радионов, М.М.
author_sort Сергиенко, И.В.
title Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах
title_short Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах
title_full Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах
title_fullStr Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах
title_full_unstemmed Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах
title_sort автоматизированная диалоговая система надра–д исследования процессов в многокомпонентных средах
publisher Інститут програмних систем НАН України
publishDate 2004
topic_facet Прикладное программное обеспечение
url https://nasplib.isofts.kiev.ua/handle/123456789/2302
citation_txt Автоматизированная диалоговая система НАДРА–Д исследования процессов в многокомпонентных средах /И.В. Сергиенко, В.С. Дейнека, Н.А. Калынюк, М.М. Радионов // Проблеми програмування. — 2004. — N 2,3. — С. 520-533. — Бібліогр.: 8 назв. — рос.
work_keys_str_mv AT sergienkoiv avtomatizirovannaâdialogovaâsistemanadradissledovaniâprocessovvmnogokomponentnyhsredah
AT dejnekavs avtomatizirovannaâdialogovaâsistemanadradissledovaniâprocessovvmnogokomponentnyhsredah
AT kalynûkna avtomatizirovannaâdialogovaâsistemanadradissledovaniâprocessovvmnogokomponentnyhsredah
AT radionovmm avtomatizirovannaâdialogovaâsistemanadradissledovaniâprocessovvmnogokomponentnyhsredah
first_indexed 2025-11-28T22:40:58Z
last_indexed 2025-11-28T22:40:58Z
_version_ 1850075685620547584
fulltext 1 АВТОМАТИЗИРОВАННАЯ ДИАЛОГОВАЯ СИСТЕМА НАДРА–Д ИССЛЕДОВАНИЯ ПРОЦЕССОВ В МНОГОКОМПОНЕНТНИХ СРЕДАХ И.В. Сергиенко, В.С. Дейнека, Н.А. Калынюк, М.М. Радионов Институт кибернетики имени В.М. Глушкова НАН Украины, 03187, Киев-187, пр. Глушкова, 40, 266-06-37, dejneka@public.icyb.kiev.ua Описан автоматизированный диалоговый программно-алгоритмический комплекс НАДРА–Д, который предназначен для исследования процессов в многокомпонентных средах с тонкими включениями, произвольно ориентированными в пространстве. Система разработана в среде WINDOWS на основе реализации новой объектно-ориентированной модели, ее структура достаточно легко позволяет существенно расширить классы решаемых задач. Комплекс оснащен мощной подсистемой ввода и обработки входной информации, содержит средства конечно-элементного розбиения многокомпонентных областей с разрезами, подсистемы перенумерации конечно-элементных узлов, решения прикладных задач, обработки результатов, обработки голосовых функций. Интерфейс системы оснащен средствами восприятия голосовых команд и озвучивания комментариев. The paper describes NADRA–D, a computer-aided system set used to investigate processes in multicomponent media with thin inclusions arbitrarily oriented in space. Such a system is designed in WINDOWS environment on the basis of implementation of a new object-oriented model. The system structure allows to essentially extend solved problem classes busily enough. The system is equipped with a powerful subsystem that enters and processes an input information. The same system contains tools for finite element decomposition of multicomponent areas with sections, subsystems used to renumber finite element nodes, solve applied problems, handle outcomes and voice functions. The system interface is equipped with tools that percept voice commands and insonify comments. Введение Наряду с неравномерным загрязнением грунтов значительной территории Украины, которое вызвано нарушением технологий: проведения удобрения пахотных земель; хранения, транспортировки токсических веществ и др., приповерхностная часть Земли в настоящее время существенно изменяется, чему также способствуют проведения различных подземных работ, касающихся создания различных подземных коммуникаций, добычи полезных ископаемых и др. По своему строению приповерхностная часть Земли – многокомпонентная, имеет трещины, пустоты. Ее составляющие могут существенно отличаться между собой определенными характеристиками (плотностью, пористостью, минералогическим составом, способностью к деформированию и пр.). Процессы, которые протекали в таких средах тысячелетиями, определенным образом уравновесились. При этом, составляющие в такой среде выполняли свойственные им функции: слабопроницаемые слои или пласты служили водоупорами подземных (грунтовых) вод; слои или включения солей обогащали химическими элементами подземные воды. Значительные залежи солей также играли роль непроницаемых или слабопроницаемых составляющих. Залежи солей, каменного угля обеспечивали сплошность сред и др. Добыча полезных ископаемых: откачивание газа, нефти; разработка месторождений калийных солей, серы, каменного угля, руд ценных пород; вырубка лесов приводят к нарушению сплошности сред, к уменьшению противофильтрационной способности их составляющих, к изменению теплофизических и сейсмических свойств массивов в целом, к нарушению их устойчивости. Последствия этих явлений достаточно плохие, которые имеют тенденцию к переходу в катастрофические. Это не только ухудшение экологического состояния определенных регионов, но и то, что государство быстрыми темпами теряет земные богатства стратегического значения. К этому необходимо отнести следующее: исчезновение питьевой воды с определенных водоносных горизонтов, перемешивание загрязненных приповерхностных вод с чистыми водами нижних горизонтов, исчезновение питьевой воды потенциальных источников будущего использования, исчезновение ценных минеральных источников; увлажнение относительно сухих толщ; уменьшение прочности и противофильтрационной способности сред, которые находятся под ценными минеральными источниками и населенными пунктами; сдвиги грунтовых массивов населенных территорий, гор и их склонов; образование ям и пустот значительных размеров; порождение сейсмичности в регионах, которые считались ранее относительно спокойными к этим явлениям. Характерные особенности, которые приобретают грунтовые среды вследствие деятельности человека, играют роль существенного фактора значительного отрицательного влияния отдаленных сейсмических действий, подземных взрывов, динамической нагрузки транспорта, промышленной техники и пр. на состояние грунтовых сред. Это характеризуется проявлениями эффектов сосредоточенных масс внутреннего и поверхностного характеров; эффектов разрыва сплошности, что приводит к образованию трещин; подземных провалов толщ, слабопроницаемых составляющих (водоупоров); обводнения (заполнения водой) подземных разработанных месторождений (в том числе соляных) и пр. С целью сохранения грунтовых пластов в природном состоянии, или близком к нему (что важно не только в настоящее время, но и в перспективе), достаточно важным является проведение анализа целесообразности выполнения разработок определенных месторождений, их технологий, объемов, от чего существенно зависит жизнь населения и грядущих поколений. 2 Задача сложная, поскольку требует исследования состояний и поведения многокомпонентных грунтовых объектов на основе учета их неоднородности и развития основных процессов (движения жидкости, динамики растворов, динамики напряженно-деформированных состояний, формирования температурных полей и динамических характеристик объектов), которые существенно зависят от строения среды и её изменения. Исследование таких процессов возможно с помощью комплекса НАДРА–Д (Системы). Первая версия комплекса НАДРА–Д ориентирована на автомати-зированное исследование установившихся процессов диффузии в многокомпонентных средах (в том числе в грунтовых и таких, которые имеют, произвольно ориентированные в пространстве, тонкие включения, трещины). 1. ОБЩИЕ СВЕДЕНИЯ О КОМПЛЕКСЕ НАДРА–Д 1.1. Назначение комплекса и его особенности Комплекс НАДРА–Д ориентирован на решение краевых, начально-краевых, спектральных задач в частных производных с условиями сопряжения, описывающих следующие процессы: линейный установившийся тепловой режим; линейный нестационарный тепловой режим; установившуюся линейную напорную фильтрацию; установившуюся нелинейную напорную фильтрацию; неустановившуюся линейную напорную фильтрацию в упругой среде; влагоперенос-фильтрацию в зонах неполного и полного влагонасыщения; стационарное напряженно-деформированное состояние (НДС) неоднородных сред; динамическое НДС многокомпонентных сред; динамические характеристики процессов и сред (спектральные задачи с условиями сопряжения). Перечисленные классы задач определяют проблемную ориентацию комплекса НАДРА–Д. Функциональное и математическое обеспечение Системы позволяет задавать информацию о решаемой задаче (геометрическую, физическую, о тонких включениях/трещинах, взаимодействия объекта с окружающей средой, конечно-элементного разбиения) в удобном для пользователя виде; позволяет редактировать в произвольном порядке введенную информацию. Система в автоматизированном режиме строит конечно- элементное разбиение (в том числе проводит перенумерацию конечно-элементных узлов с целью уменьшения ширины ленты ненулевых элементов матрицы метода конечных элементов (МКЭ), определяет порядок матрицы и ширину ленты, образованную её диагоналями, содержащими ненулевые элементы), формирует систему алгебраических уравнений метода конечных элементов, решает её и представляет результаты расчетов в удобном для пользователя виде. 1.2. Основные подсистемы Функциональная схема комплекса изображена на рис. 1, он состоит из следующих подсистем: системная компонента комплекса НАДРА–Д; подсистема ввода геометрической информации (ПВГИ); подсистема создания упорядоченных четырехугольных зон (ПЧЗ); подсистема ввода физических параметров (ПВФП); подсистема конечно-элементного разбиения (ПКЭР); подсистема формирования систем алгебраических уравнений метода конечных элементов (ПФСАУ); подсистема решения систем алгебраических уравнений метода конечных элементов (ПРСАУ); подсистема вывода результатов решения системы алгебраических уравнений метода конечных элементов (ПВРРСАУ);интерфейсная составляющая комплекса. 2. СИСТЕМНАЯ КОМПОНЕНТА. НАЗНАЧЕНИЕ СИСТЕМНОЙ КОМПОНЕНТЫ Системная компонента комплекса НАДРА–Д поддерживает функционирование всех вышеперечисленных подсистем. На первом этапе функционирования Системы должна отработать ПВГИ, за ней следует ПЧЗ. Потом в произвольном порядке – ПКЭР или ПВФХ. После того, как отработали данные подсистемы, последовательно выполняют свои функции: ПФСАУ, ПРСАУ, ПВРРСАУ. Входными данными для Системы являются следующие характеристики: данные геометрии области; характеристика решаемой задачи (тип задачи); физические характеристики среды; условия влияния тонких включений (трещин) на среду и их параметры; данные об условиях взаимодействия объекта с окружающей средой и их параметры; параметры метода конечных элементов; параметры алгоритмов обработки результатов расчетов. Выходные данные (результаты работы) Системы – покоординатные значения искомого потенциала (пьезометрического напора задачи фильтрации или значения температуры задачи диффузии тепла и др.). При создании автоматизированного программного комплекса НАДРА–Д применены приемы объектно- ориентированного программирования [1, 2, 6]. Объектная модель системы НАДРА–Д предназначена для 3 хранения информации о геометрии области, физических параметрах элементов среды и конечно-элементном разбиении в виде, достаточно удобном для создания графического образа решаемой задачи, а также для дальнейшей математической обработки. Объектная модель системы НАДРА–Д включает несколько коллекций (упорядоченных наборов) объектов (объектов классов) Contours, Nodes, Links и объектов (объектов классов) Collection, Contour, Node, Link, DrawService. Каждый объект класса соответствует одному из элементов среды (точке, контуру, тонкому включению, макроэлементу, конечному элементу). Каждая коллекция соответствует набору всех элементов среды одного типа, которые встречаются в рассматриваемой задаче. Система проводит обработку данных, которые структурированы согласно объектно-ориентированной модели и образуют базу знаний объектно-структурированной модели. Структура объектной модели изображена на рис. 2. Рис. 1 Рис. 2 3. ГОЛОСОВОЙ МОДУЛЬ СИСТЕМЫ НАДРА–Д Функционирование автоматизированной системы предусматривает: запуск системы; автоматический контроль входной информации на допустимость их значений (например, координаты точек должны быть числовыми значениями, коэффициенты теплопроводности не могут быть отрицательными числами и др.), ее полноту с генерацией порождаемых предостережений; автоматизированный режим формирования промежуточной математической задачи соответствующей проблемной задачи (системы линейных алгебраических уравнений); автоматизированный режим решения промежуточной математической задачи; обработка результатов численного решения проблемы; представление результатов расчета пользователю. Детальное отрабатывание (исследование) каждого функционального действия системы относительно численного решения соответствующей физической, математической проблемы и представления (в случае необходимости) пользователю первичной и полученной в процессе расчетов сопроводительной информации, позволяет гарантировать ожидаемую точность проведенных расчетов. Таким образом, система будет работать, если: – получит команду на ее запуск; – получит команду на запуск соответствующей подсистемы (если названная подсистема принципиально не может работать, в силу того, что не получила исходных данных по регламенту работающих прежде подсистем, то это говорит о том, что система получила не корректную команду). Она проанализирует возможность ее выполнения и, в случае некорректности, оповестит пользователя, в том числе может это озвучить голосом человека. При необходимости предоставит соответствующую справку; – получит входные данные для соответствующей подсистемы; – получит входные данные по всей проблеме. Этот обмен информацией между пользователем и экспериментальной системой требует создания соответствующего интерфейса обработки команд, обработки и представления буквенно-цифровых данных. Интерфейс будет более удобным и позволит расширить круг пользователей системы (в том числе и пользователей с ограниченным зрением), если при его создании будут реализованы средства восприятия и представления информации с помощью голоса человека. Для системы НАДРА–Д создана подсистема восприятия и представления буквенно-цифровой информации с помощью голоса человека (созданный голосовой модуль). Реализация голосового модуля выполнена таким образом, чтобы он был органически “вплетен” в систему. Это значительно сокращает время определенных обращений и обработки соответствующей информации. Голосовой модуль служит альтернативным отображением и средством восприятия информации в системе. Работа модуля основана на программных пакетах Microsoft Speech Application Program Interface version 4 (MS SAPI 4), MS SAPI 5, Microsoft Agent, Chant. Модуль разработан на объектно-ориентированном языке программирования С++ с учетом языковых особенностей компилятора Borland C++ Builder v. 5.0. 4 Описание логической структуры: • Основными элементами структуры голосового модуля являются: Системные компоненты Голосовой драйвер Microsoft Speech v. 5.1 Объект Панели Управления Microsoft Speech v. 5.1 Голосовой драйвер Microsoft Speech v. 4.0 Компонента Microsoft Agent Драйвер звука Microsoft Windows Библиотека функций Chant • Внутренние звуковые модули Модуль синтеза языка MS Speech 4 Модуль синтеза языка MS Speech 5 Синтез библиотеки Chant Модуль распознавания голосовых команд MS Speech 5 • Программные блоки Класс-оболочка YAgent (интерфейс MSAgent) Блок голосовых комментариев Синтез MS Speech 4 Синтез MS Speech 5 Воспроизведение записанных комментариев Блок обработки установок голосовых ключей Обработка установок текстовых комментариев и текстов помощи Обработка установок ассоциированных звуковых записей Обработка установок ассоциированных голосовых команд Блок голосовых команд Создание командной оболочки на базе библиотеки Chant Командная оболочка нестандартных элементов Командная оболочка управляющих команд создания, редактирования и преобразования текстово-цифровой информации • Управляющие элементы интерфейса Переключатель типа голосового синтеза Переключатель использования звуковых записей Кнопка вызова системных параметров модуля Chant Работа модуля базируется на программных пакетах Microsoft Speech Application Program Interface version 4 (MS SAPI 4), MS SAPI 5, MS Agent, Chant. Озвучивание русскоязычных текстовых комментариев осуществляется с помощью модуля синтеза языка MS SAPI 4 вместе с компонентой MS Agent, что дополнительно использует «помощника» (см. пакеты Microsoft Office) для визуального отображения озвучиваемых сообщений. Озвучивание англоязычных текстовых комментариев осуществляется с помощью модуля синтеза языка MS SAPI 5, что дает более высокое качество синтезированного языка, и библиотеки функций Chant. Существует система озвучивания записей (голосовых) сообщений пользователя, которая разрешает пользователю не полагаться на качество синтеза языка голосовым модулем или использовать другие языки (русский, украинский) для комментариев. Система разрешает озвучивать задиктованные человеком или записанные в текстовом виде записи. Для создания первичного командного интерфейса в диалоговых окнах используется MS SAPI 5 и инструментарий Chant. Для обработки команд ввода и редактирования текстово-цифровой информации используются также специальные словари, построенные языком XML. В системе используется англоязычный вариант модуля распознавания речи Microsoft Speech, но система так же может применять русско- или украинскоязычные фонетические модули, если такие будут разработаны согласно SAPI 5. Голосовой драйвер MICROSOFT SPEECH V. 4.0 находится в дистрибутиве системы в файле spchapi.exe и содержит блок синтеза языка MS Speech 4. Голосовой драйвер MICROSOFT SPEECH V. 5.1 находится в дистрибутиве системы в файле speechsdk51.exe и содержит блоки распознавания и синтеза языка MS Speech 5. Существуют более компактные дистрибутивы голосового драйвера, которые можно скопировать (при определенных условиях) из веб-сервера Интернет компании Microsoft: http://msdn.microsoft.com. В операционной системе Windows XP компонента уже установленная. Компонента MICROSOFT AGENT находится в файле дистрибутива MSАgent.exe. Для активизации поддержки голосовых функций служит файл восстановления компоненты Agt0419.exe. Так же в дистрибутиве находится файл стандартного персонажа Merlin.exe. В работающем состоянии визуально компонента представляет собой анимированный персонаж, который может произносить программно указанный текст и осуществлять анимационную визуализацию набора простых идеом, таких как «запись», «поиск», «приветствие», «чтение» и т.д. 5 Библиотека функций CHANT служит для упрощения интеграции поддержки голосового драйвера Microsoft Speech 5 в среде Borland C++ Builder. Библиотека используется на этапе построения программы и дополнительной инсталляции пользователем не требует. Модуль синтеза языка MS Speech 4 представляет собой устаревший, но один из немногих стандартных голосовых модулей, которые поддерживают русскую фонетику. Русский модуль «Текстово-языковой преобразователь Lernout & Hauspie, TTS3000» находится в дистрибутиве в файле lhttsrur.exe. Модуль предназначен в основном для работы вместе с компонентом MS Agent. Основным недостатком модуля есть небольшой грамматический словарь и отсутствие средств для правильной расстановки ударений. Модуль синтеза и анализа языка MS SPEECH 5 наиболее частое используется среди современных программ, которые используют голосовой интерфейс, легко доступный, имеет сравнительно высокое качество произношения, имеет средства для грамматического и фонетического конструирования фраз, средства настраивания нескольких голосов. Распространяется в дистрибутивах ОС MS Windows, начиная из версии XP, что фактически делает его стандартным среди альтернативных модулей. Модуль находится в пакете голосового драйвера MS Speech 5.1. Фразы задаются с помощью простого или размеченного XML-текста. Основным недостатком модуля есть отсутствие славянской фонетики (на момент создания системы ). Класс-оболочка YAGENT (Интерфейс MSAGENT). С 1996 года компания Microsoft в стандартной поставке пакета Microsoft Office включает анимированных персонажей – помощников, которые могут сопровождать действия пользователя соответствующей анимацией и звуками. Одна из возможностей, запрограммированных у MS Agent, – интеграция со стандартным голосовым модулем, установленным в системе. Кроме того, программист, использующий MS Agent в своём программном продукте, может перемещать помощника, запускать анимированные действия и т.п. Для облегчения работы с MS Agent разработан класс YAgent, в котором инкапсулированы основные методы и свойства MS Agent, такие как: изменение положения (метод MoveTo), изменение размера (метод Magnify), запуск анимации (метод Animate), озвучивание фразы (метод Speech), изменение параметров воспроизведения (скорость spd, тембр pit, громкость vol) и др. Все функции MS Agent могут быть доступны через интерфейсы pAgent и pCharacter, согласно документации компании Microsoft. Голосовые модули MS SAPI 4 и MS SAPI 5 имеют специальные слова (tag, тег) которые меняют параметры воспроизведения в момент, когда воспроизведение доходит до этого места. Таким образом, без вмешательства в программу и без сложных приёмов можно динамически менять громкость, тональность голоса, скорость речи и другие параметры. Можно вставить в текст «закладку», о встрече с которой будет просигнализировано программе. В MS SAPI 4 тег начинается и заканчивается символом обратной дроби “\”. Пример тегов (для громкости, скорости, тембра): \vol=?\ Громкость в диапазоне 0…65535 \spd=?\ Скорость речи в словах в минуту (обычно около 100) \pit=?\ Тембр, Гц В MS SAPI 5 в основу разметки речи положен язык XML. Для их активации модуль должен обработать фразу, включающую <xml version="1.0"><SAPI>, которая объявляет последующий текст подготовленным к воспроизведению и размеченным посредством XML. Текст после тега будет произноситься с соответствующим параметром до встречи с другим значением этого параметра, или завершающим тегом (начинающегося не на угловую скобку, а на угловую скобку с дробью). Для синтеза языка с использованием MS SAPI 5 система использует функцию StartPlayback библиотеки Chant. Синтез библиотеки CHANT. Механизм работы с голосовым модулем идёт двумя потоками. В первом потоке (обычно это основной поток программы) вызываются: процедуры по активизации, изменению состояния и параметров, запросы на обработку данных и т.п. с немедленным получением подтверждения и запрошенных данных. Второй поток создаётся (работающим в реальном времени) параллельно потоку программы. Такой поток обычно обслуживается специальным объектом. В этом потоке происходит первичная обработка данных, и вызываются событийные процедуры, настраиваемые основной программой, сигнализирующие о поступлении данных, окончании слова, принятии/передачи фонемы, изменении формы рта виртуального говорящего и т.д. Библиотека Chant инкапсулирует десятки процедур таких пакетов как Microsoft Speech, значительно облегчая инициализацию модуля, одновременно позволяя пользователю вмешиваться в процесс воспроизведения и распознавания речи практически на всех уровнях, от фонем до конечных фраз. Ввиду большей простоты и наглядности кода примеры дальше используют Chant, но то же самое может быть реализуемо средствами SDK производителя голосового модуля. Рассмотрим простое приложение, произносящее текстовую фразу “This is a test phrase. Is this a test phrase?” (рис. 3). Оно демонстрирует основные методы работы с модулем воспроизведения речи. После нажатия кнопки “Say This” содержимое поля ввода синтезируется и выводится на стандартное звуковое устройство. 6 При запуске программы автоматически создаётся объект Chant TTS, который удаляется по событию Close функцией DeleteChantTTS. SetTTSAudioType служит для указания типа входных данных (MultiMediaAudio указывает на устройство воспроизведения звука, можно указать FileAudio для записи результата голосового синтеза в файл). При нажатии кнопки “Say This” текст поля ввода передаётся библиотеке Chant, где он воспроизводится подключенным модулем при установках по умолчанию. Сигнальный объект описывается в файлах ttssink.cpp и ttssink.h. Файл заголовков ttssink.h одинаков для всех реализаций (его можно взять из примеров к модулю Chant), а в ttsink.cpp обрабатываются, если необходимо, сигналы. В данном примере используются сигналы TextToSpeechAudioStop (сообщает об окончании воспроизведения), и TextToSpeechWordPosition (о текущем произносимом слове). Статические грамматические словари, которые используются в системе, сохраняются в файлах с расширением .XML. Формат INI активно использовался в среде Windows 3.x для сохранения установок программы. В среде Windows 95 настраивание программы рекомендуется сохранять в Системном Реестре (System Registry), тем не менее формат достаточно простой и удобный для использования, легко редактируется пользователем программы и поддерживается наравне с Системным Реестром средствами Borland C++ Builder. Формат INI: [Секция1] Переменная1=значение Переменная2=значение ... [Секция2] Переменная1=значение Переменная2=значение Система использует один файл для сохранения всех установок (NADRA. ini). Большая часть файла содержит настройки отдельных элементов интерфейса – кнопок, надписей, пунктов меню. Название секции в таком случае – это внутреннее имя элемента интерфейса, а допустимые параметры приведены в табл. 1 Таблица 1 Параметр Диапазон значений Назначение ru ua en текстовая строка Надпись или сообщение, связанные с элементом, отображаемые при соответствующем активном языке интерфейса cue текст помощи, или путь к файлу.rtf Текст помощи может быть заранее скомпонирован и оформлен в текстовом редакторе, который поддерживает Rich Text Format (RTF), например, Microsoft Word. Если указывается путь к файлу, нужно заменять обратные преклонные линии на двойные (cue=rtf\\1.rtf). group идентификатор В некоторых случаях элементы управления, которые размещены на одной панели, не активируются все одновременно, а разбитые на группы. Этот параметр элементов интерфейса изменять не рекомендуется. vv текст Ассоциирует голосовую команду “текст” с элементом интерфейса В файле настройки находятся два варианта секций – глобальные, такие как [BbtnCancel] и локальные, с знаком подчеркивания, такие как [FormArr_LbArrayMatr]. Изменение первых ведет к изменению аналогичных элементов управления по всей программе, а вторых – в конкретном месте. Секции сообщений об ошибках и предупреждении начинаются из символов Mes_ и находятся в конце файла настраиваний. Распознавание речи. Если для воспроизведения речи второй поток (сигнальный) не имел особой важности (он был необходим только в случае обеспечения визуализации процесса произнесения синтезированных фраз), то работа с модулем распознавания речи в основном осуществляется вторым потоком, а первым подаются управляющие команды, изменяющие параметры распознавания. Важным является составление словаря выражений, которые программа будет ожидать от пользователя. То, насколько чётко они будут распознаваться программой и насколько легко их запомнит (или будет угадывать) пользователь, будет главной составляющей впечатления о голосовом интерфейсе программы. Улучшение качества распознавания. Качество зависит в первую очередь от типа, версии и базовых установок модуля распознавания. Следует предложить пользователю пройти настройку модуля на голос. При использовании MS SAPI 5 без дополнительного программирования можно предложить пользователю запустить Рис. 3 7 модуль “Speech” на Панели Управления (Control Panel). Стандартные установки модуля ориентированы на взрослого мужчину с американским произношением. Относительно короткий курс настройки поможет пользователю как привыкнуть к работе с микрофоном и голосовым модулем, так и проинформирует его о распознавании, оптимальных условиях, часто встречающихся проблемах в распознавании речи. Следует заметить, что чем больше слогов в ключевой фразе, тем больше будет вероятность её распознавания. Например, при прохождении тестового примера можно заметить, что короткие односложные слова (if, this) распознаются хуже, чем длинные (conclusion, recognition). Разработчику следует помнить также, что пользователь его программы вряд ли обладает чётким и внятным английским произношением; фонема th скорее произносится им иначе и может вводить в заблуждение голосовой модуль, особенно без прохождения пользователем первоначальной настройки. Важный параметр – количество слов, одновременно ожидаемых модулем. Чем меньше их количество и более они контрастны, тем качество распознавания выше. На распознавание влияет также текущая громкость микрофона. Слишком низкая громкость увеличивает влияние помех, неизбежно возникающих из посторонних звуков, радионаводок и т.п. Слишком высокая громкость сильно искажает сигнал. Полезным может быть проконтролировать (а при необходимости изменить) громкость (например, с помощью вызова стандартного регулятора громкости, который показывает графически текущий уровень звука, либо запуском модуля Speech в Панели Управления). Максимума генерируемого сигнала должны достигать только самые громкие звуки голоса. Улучшение запоминаемости. Если ключевое слово соответствует кнопке, переключателю и т.п. с односложным действием, то лучше всего, чтобы ключевое слово и надпись элемента совпадали. Если используется похожий инструментарий в разных местах программы, то похожим действиям стоит назначить одинаковое ключевое слово. Например, для вызова инструмента удаления объекта, удаления линии сетки, удаления фразы (если они взаимоисключающи и из контекста всегда очевидно какой из них хочет выбрать пользователь) стоит назначить одно ключевое слово (“Tool Remove”, “Eraser” и т. п.). Пользователю следует предоставить легко доступную помощь, в которой будут чётко указаны голосовые ключи, ожидаемые программой. Начинающему пользователю стоит предложить описания действий каждого ключа, для уже пользовавшегося программой – компактный список глаголов, а для опытного – возможность скрыть подсказки для освобождения рабочего места. Самым главным, пожалуй, можно назвать динамическое изменение размеров активного словаря при работе с программой. Например, если используется меню с подпунктами, то сначала активными должны быть только ключи, активирующие корневые пункты меню, а после выбора пункта должны быть активны только подпункты выбранного и, возможно, команда отмены. SMAPI, MS SAPI 3, MS SAPI 4 и MS SAPI 5 использует несколько типов словарей распознавания. Когда в словаре несколько ключевых фраз, то их можно задать непосредственно перечислением (командный словарь). Более гибкой и настраиваемой формой словарей является хранение их в отдельных файлах в формате BNF (SMAPI, MS SAPI 3, MS SAPI 4 – Backus-Naur Form) или XML (MS SAPI 5 – eXtended Markup Language). Озвучивание приложения при использовании C++ Builder. Элементы интерфейса в С++ Builder являются компонентами, каждая из которых имеет имя и тип. Возможен автоматизированный перебор компонент: используя свойства Components и ComponentCount объекта-контейнера (например, TForm), содержащего их. Используя эти особенности можно добиться особой гибкости вокализации в системе. Цель использования этих особенностей – построение компактного и универсального кода, обеспечивающего автоматическую вокализацию элементов интерфейса, причём не только потомков TWinControl (такая поддержка присутствует в библиотеке Chant), имеющих дескриптор окна Handle, но и других элементов, таких как TSpeedButton и TToolButton. Приведём участки кода и элементы проекта, ответственные за вокализацию интерфейса в системе НАДРА–Д. Среда проекта С++ Builder v. 5.0. В данном примере также используется класс TiniFile, являющийся оболочкой для работы с функциями менеджмента файлами установок (ini-file, ини-файл). В системе НАДРА–Д в ини-файле содержатся общие установки (такие как текущий язык проекта), а также для каждого элемента его заголовок/надпись на каждом языке, командное слово, ассоциированное с элементом управления, текст помощи, прочие установки. Следует обратить особое внимание, что ини-файл можно редактировать любым текстовым редактором, а для того, чтобы новые установки начали функционировать, достаточно перезагрузить программу (система НАДРА–Д спроектирована таким образом, что перезагрузка не требуется). Таким образом, программу можно настраивать без перекомпиляции, причём это может делать конечный пользователь, что добавляет настройке особую гибкость. Ниже приводятся характерные участки ини-файла программного комплекса НАДРА–Д. Следует заметить, что слово, взятое в квадратные скобки – название раздела, а слово, предшествующее знаку равенства – имя параметра (переменной). Используется следующая система: – раздел [SystemVariables] содержит общую информацию, в том числе проигрывать ли приветственное сообщение, если да, то какое (в форматах для MS SAPI 4 и MS SAPI 5); – названия прочих разделов – имена элементов управления (BbtnOK), либо названия формы-контейнера, 8 которой он принадлежит, символом подчёркивания и именем элемента (FNju_Edit2). Более высоким приоритетом обладают установки, связанные со второй формой. Первая форма позволяет задать один раз установку для типового элемента (например, для кнопки “Ок” надпись и командную фразу), а вторая позволяет для конкретной кнопки это правило поменять (например, для кнопки “Ок”, находящейся на Form3, установить командное слово “Yes” и надпись «Да»); – RU, UA, EN – поля для ввода заголовка элемента на соответствующем языке. Таким образом, весь текст интерфейса можно менять, совсем не изменяя программный код; – VV – поле ввода командного слова, ассоциированного с элементом; – CUE содержит подсказку (текст помощи, связанный с элементом); это также может быть имя файла с текстом помощи в формате RTF. Обычно именно этот текст будет произнесён программой при соответствующем действии; – поле NUM, установленное в ненулевое значение, указывает на то, что оно является полем голосового ввода числа со специальной обработкой; – GROUP содержит текстовый ключ для логического группирования данных. Используется для автоматизированного включения/выключения голосовой активации одновременно всех компонентов, отнесённых к одной группе. Приведём теперь несколько участков кода главной формы, использующей голосовой интерфейс. В файле заголовка главной формы (Re_Main.h) декларируется экземпляр объекта персонажа Yagent, обеспечивает взаимодействие с MS Agent. Список структур controlslist служит для увеличения количества поддерживающих классов элементов интерфейса (например, таких как TSpeedButton). Это связано с тем, что библиотека Chant автоматически поддерживает только элементы интерфейса, являющиеся наследниками класса TWinControl, имеющие дескриптор (Handle) окна. Поля gpSRSink и gpTTSSink обеспечивают связь с сигнальными объектами голосового интерфейса, методы работы с которыми были описаны выше. ShowMsg и QstBox – это вокализированные замены стандартных функций ShowMsg и MsgBox [1]. OnHasPhrase производит обработку голосовых команд пользователя, кроме тех которые автоматически обрабатываются Chant (зарегистрированные элементы-потомки класса TWinControl и пункты программного меню). AfterClick вызывает метод ChangeCue формы Cue, осуществляющей визуализацию и вокализацию переданного текста. Вызов AfterClick(Sender) в любом месте обработчика действия элемента (например, в обработчике события Click для кнопки) найдёт ассоциированный текст (в ини-файле), вызовет его визуализацию и вокализацию (методом CangeCue специальной справочной формы FormCue). Приведём также форму, заменяющую ShowMessage в программе в целях автоматизированного озвучивания содержимого стандартных сообщений (часто используемых для сигнализации о появлении ошибки). Для того, чтобы на форме Form1 кнопка MyButton начала автоматически активироваться по команде “Test Button” необходимо: – проверить, что в конструкторе Form1 вызывается VoiceLB(this) и в деструкторе DeVoiceLB(this); – в ини-файл добавить следующие две строки: [Form1_MyButton] vv=Test Button можно также добавить текст помощи, связанный с кнопкой, для чего добавить строку: cue=This is a test button. Если текст помощи заканчивается на «.rtf», то он считается именем файла в формате RTF, при вызове подсказки будет выполнена его загрузка. Если кнопок MyButton много на разных формах, а делают они одну и ту же функцию, раздел стоит назвать просто [MyButton]. Аналогично добавляются комментарии к объектам других типов (уже не только потомки TwinControl но и прочие для которых было доопределено поведение при активации), поля выбора, поля опций, поля ввода и т.д. После того, как приложение создано, можно подобрать подходящие фразы, меняя ини-файл и тестируя изменение. Другие методы озвучивания интерфейса. Синтез речи. Среди особенностей вышеописанных методов озвучивания интерфейса можно выделить преимущества и недостатки. Преимущества: – динамичность фраз – система будет способна произнести любой сгенерированный программой текст; – не требуется привлекать для озвучивания проекта дополнительных людей – программист способен справиться самостоятельно; – необходимые для работы драйвера в среде Windows, начиная с версии Windows XP, уже присутствуют в системе, таким образом, дополнительных – файлов может не потребоваться. Недостатки: –произнесение слов, присутствующих в словаре голосового модуля, удовлетворительно, но в случае редкого или нового слова потребуется задать его фонетическую транскрипцию; – при использовании ОС Windows версии ниже Windows XP необходимо вместе с программным 9 продуктом поставлять драйвера голосового модуля, которые могут занимать объём, превышающий объём остальной части программного продукта. 4. ФУНКЦИОНИРОВАНИЕ КОМПЛЕКСА НАДРА–Д Используемый в системе модуль Chant Speech позволяет производить автоматическое озвучивание главного меню (активизируется переключателем “Engage Voice Menu”). В таком режиме произнесение соответствующего пункта меню приводит к его активации. Главное меню содержит следующие команды: Раздел “File” New project Начинает работу с новым проектом Open Загружает проект из файла Save Сохраняет текущий проект Save As… Сохраняет проект с указанным именем файла Exit Выход из программы Раздел “View” Zoom In Уменьшает масштаб изображения Zoom Out Увеличивает масштаб изображения Fit to size Устанавливает оптимальный масштаб Coordinates Переключает режим отображения координат узлов Node numbers Переключает режим отображения номеров узлов Раздел “Options” Microphone Включает/выключает микрофон MS Speech 5 TTS Переключает модуль синтеза речи (MS SAPI 5 TTS / MS SAPI4 & MS Agent TTS) Voice Menu Включает/выключает вокализацию меню Interface language > Выбор языка интерфейса Hint windows Активирует дополнительные окна помощи Раздел “Problem type” Type Выбирается тип решаемой задачи Раздел “Help” Cue help Отображает/скрывает информационную форму About Отображает краткую информацию о комплексе НАДРА–Д Система НАДРА–Д представляет собой рабочую область (слева), где графически отображается информация о решаемой задаче, и несколько этапов (справа), которые соответствуют подсистемам решения задачи (рис. 4). Каждый из этапов содержит необходимые средства для выполнения действий, предусмотренных соответствующей подсистемой. 4.1 Подсистема ввода геометрической информации Этот этап в развернутом виде изображен на рис. 4. Открыть набор инструментов для задания геометрии области можно нажатием левой кнопки “мыши” на надписи “Геометрия области”, а также с помощью голосовой команды “Stage One”. Исследуемая область представляется в виде опорных точек с координатами (x, y) и ломаных линий, которы их соединяют. Таким образом описываются контур области и тонкие включения. Система позволяет (в случае необходимости) задавать несколько внутренних контуров, которые ограничивают пустоты области. Прежде всего, пользователю следует выбрать тип решаемой задачи и определить масштаб, с которым будут отображаться на экране дисплея входные данные. По умолчанию экранная область отображает координаты от 0 до 1 по оси ОХ и по оси ОY. Масштаб отображения можно изменить с помощью набора кнопок [1] на панели инструментов под главным меню (см. рис. 4), где – увеличить изображение (уменьшить масштаб); – уменьшить изображение (увеличить масштаб); – показать изображение по размеру окна; – двигать изображение по экрану. 10 После определения масштаба можно приступать к описанию геометрической информации решаемой задачи. Задание опорных точек осуществляется тремя способами – с помощью клавиатуры, “мыши” и путем произнесения голосовых команд. В первом случае от пользователя требуется в начале задания каждого контура и включения нажимать кнопку “Новый контур” (голосовая команда: New Contour). После этого создается объект класса Contour, в котором будет храниться информация о создаваемом контуре или тонком включении. Координаты (x,y) каждой опорной точки рассматриваемой области задаются в таблице (см. рис. 4) в виде действительных чисел. Точки, координаты которых заданы, отобража- ются на экране и соединяются линиями в реальном времени. В таблице точки задаются последовательно начиная с произвольной. Для завершения задания контура требуется нажатие кнопки “Завершить контур” (голосовая команда: Finish Contour), что приводит к соединению линией первой и последней точки (контур замыкается). Система позволяет корректировать заданную информацию, например, изменять координаты заданной точки, вставлять и удалять точки. Точка, которая будет корректироваться, отображается красным цветом. При клавиатурном вводе информации удаление выбранной точки происходит после нажатия клавиши “Delete” (голосовая команда: Remove Point). Чтобы вставить точку перед выбранной, нужно нажать клавишу “Insert” (голосовая команда: Insert Point), после чего в таблице появляется поле для ввода координат новой точки. Для изменения координаты выбранной опорной точки следует в таблице перевести курсор на координату “x” (голосовая команда: Edit X) или координату “y” ( голосовая команда: Edit Y) и задать новые значения. Результаты корректировки отображаются на экране. Двигаться по таблице можно с помощью клавиш-стрелок (голос: Point Next, Point Previous). Система проводит анализ действий пользователя, который реализован путем наложения различных условий, и в случае их некорректности выводит на экран сообщения (в том числе голосовое), предлагая исправить ошибку. На этапе функционирования ПВГИ при клавиатурном вводе геометрической информации контролируются следующие действия пользователя: – правильность задания координаты точки (проверяются задаваемые символы); – проверяет, заданы ли обе координаты точки; – проверяется дублирование точек. Клавиатурный ввод информации предоставляет возможность точно указывать координаты опорных точек, но это требует больших затрат времени. Поэтому он используется как дополнительная возможность управления системой, ввода и редактирования информации. В комплексе НАДРА–Д реализован ввод геометрической информации более удобным для пользователя способом – с помощью “мыши”. Для этого разработан специальный набор инструментов, который находится на панели инструментов этапа описания геометрической информации (в скобках указана голосовая команда): – инструмент для режима “Создание точек контура” (Tool Create); – инструмент для режима “Редактирование точек контура” (Tool Edit); – инструмент для режима “Добавить точку” (Tool Add); – инструмент для режима “Удалить точку” (Tool Remove). Он выполняет функции, необходимые для полного задания всей геометрической информации об области решаемой задачи. Для реализации каждого инструмента использовалась кнопка с соответствующим изображением, после нажатия которой курсор “мыши” принимает вид, подсказывающий пользователю режим работы. В выбранном режиме с помощью инструмента “Создание контура” щелчком левой кнопки “мыши” на рабочей области пользователь может указать опорные точки, по которым в реальном времени будет построена схематическая модель геометрии контура. При создании первой точки создается объект класса Contour, в котором хранится информация о контуре или тонком включении, объект класса Nodes, описывающий узловую точку, и объект класса Links, который является указателем на объект класса Node. Построение вертикальных или горизонтальных линий осуществляется при нажатой клавише “Shift”: При большем наклоне к оси ОY создаются вертикальные линии, к оси ОХ – горизонтальные. Реальные координаты Рис. 4 11 точек отображаются в таблице, их нумерация соответствует порядку их создания пользователем. Замыкание контура совершается двумя способами: либо необходимо указать первую точку (а это сделать легко, так как при приближении к ней она отображается красным цветом), либо нажать правую кнопку “мыши”, после чего система выдаёт сообщение и просит указать, считать ли созданную область контуром или тонким включением. Контуры и включения можно создавать в любом порядке, их количество не ограничено. Реализованная в Системе НАДРА–Д подсистема ввода геометрической информации позволяет редактировать введенные опорные точки в произвольном порядке. Редактирование точки состоит в изменении одной из координат или обеих и осуществляется в режиме “Редактирование контура” соответствующим инструментом. С этой целью выбирается точка щелчком левой кнопки “мыши”, после чего она выделяется красным цветом и ее можно передвигать по экрану. Новые координаты редактируемой точки отображаются в таблице координат опорных точек контура. Система позволяет одновременно редактировать несколько точек и даже целый контур, которые выбираются правой кнопкой “мыши”. Все выбранные точки, в том числе контура, включения, можно двигать параллельно относительно других точек, контуров, включений. При нажатой клавише “Ctrl” отмеченные точки или точка двигаются только вертикально, при нажатой клавише “Shift” – горизонтально. Добавление точки на стороне уже созданного контура происходит в режиме “Добавить точку” путем активизации соответствующего инструмента. Удалять лишние опорные узлы можно в режиме “Удалить точку”. Вышеописанная организация ввода геометрической информации дает возможность быстро корректировать входные данные, если они изменяются во время решения задачи. Кроме того, пользователь системы имеет возможность выбора между вариантами ввода/редактирования геометрической информации в соответствии с личными предпочтениями. В системе НАДРА–Д реализован дополнительный способ задания геометрической информации и управления Системой – с помощью голосовых команд. Для работы с голосовым вводом желательно провести его первичную настройку. В комплексе НАДРА–Д голосовые команды дублируют стандартные действия с элементами интерфейса, такими как нажатие кнопок. Голосовые команды чаще всего совпадают с надписью соответствующего элемента интерфейса. Чтобы узнать, какой элемент будет активирован при произнесении той или иной команды, следует выполнить двойной щелчок на названии команды в форме помощи, и визуальный эффект выделит соответствующий элемент. Если связанным с командой элементом является кнопка, то при активации команды она будет нажата. Для активации инструмента редактирования зон, например, достаточно произнести команду “Tool Edit”. Если это поле ввода, то при активации оно получит фокус системы (курсор и ввод с клавиатуры). Для специальных полей ввода, служащих для ввода числовой информации, активируются два дополнительных словаря. Первый словарь содержит цифры и несколько равноценных вариантов произношения десятичной точки, второй словарь является командным и содержит команды редактирования и управления, такие как: “Clear All” – очистить поле ввода, “Clear Back” – стереть последнее слово, “Enter” – завершить ввод и перейти к следующему элементу. Для задания, например, числа 16.5 пользователю необходимо произнести “one six point five”, а потом перейти к следующему элементу, например, командой “Enter”. Комплекс НАДРА–Д имеет дополнительную информационную панель, активировать которую можно нажатием кнопки “>>” (см. рис. 4) или произнося в микрофон команду “Cue help”. Верхняя часть панели отведена для отображения текста помощи, соответствующего текущему этапу работы программы. В нижней части в иерархической форме подан список активных в данный момент голосовых команд. Голосовой модуль анализирует звук, поступающий с микрофона и, в случае выделения в нём активной голосовой команды, запускает её. Количество опорных точек, которые задаются, не ограничено, т.е. может быть достаточно большим. Опорные точки каждого контура и каждого включения задаются отдельно. ПВГИ работает автономно, и выходными данными подсистемы являются списки координат контуров и тонких включений. Результатом работы на этом этапе будет изображение контуров и тонких включений области на экране дисплея. 4.2. Подсистема создания упорядоченных четырехугольных зон Разбиение области на макроэлементы возможно только после того, как отработала подсистема ПВГИ. Переход к этапу “Разбиение области” осуществляется щелчком левой кнопки “мыши” на надписи или произнесением команды “Stage Two”. После этого приступает к работе ПЧЗ, которая позволяет описывать многокомпонентные многосявзные области с тонкими включениями или разрезами. ПЧЗ обеспечивает покрытие геометрической области, построенной в подсистеме ввода геометрической информации, макроэлементами (зонами) так, чтобы они образовывали квазигоризонтали и квазивертикали упорядоченных четырехугольников, где тонкие включения могут размещаться на сторонах таких макроэлементов. Макроэлементы строятся таким образом, чтобы они обеспечивали однородность описания физических характеристик. Их можно редактировать, удалять, указывать части геометрической области, которые не заполнены исследуемым объектом, т.е. задавать пустоты. позволяет описывать многокомпонентные многосвязные области с тонкими включениями или разрезами. 12 Для этапа ПЧЗ при вводе информации с помощью “мыши” также предусмотрен свой набор инструментов: – инструмент для режима “Создание зоны” (Tool Create); – инструмент для режима “Редактирование зоны” (Tool Edit); а также вспомогательные кнопки: – “Удалить зону” (Tool Remove); – “Задать параметры разбиения для зоны” (Zone Divide); – “Показать матрицу связи” (Show Info). По четырехугольным фрагментам инструментом “Создание зоны” последовательно, начиная с произвольной, отмечаются уже созданные опорные точки или создаются новые для образования квазивертикалей и квазигоризонталей. Поскольку для реализации МКЭ необходимо, чтобы точки в зоне нумеровались начиная с левой нижней по часовой стрелке, то система автоматически их перенумеровывает и замыкает четырехугольник после того, как заданы четыре точки. Зоны задаются в произвольном порядке, две соседние зоны должны иметь общую сторону, а любой отрезок ломаной, который задает тонкое включение, является общей стороной двух соседних зон. Каждая “пустота” области должна быть выделена и отмечена как пустая зона, что происходит по щелчке правой кнопки мыши. Повторной операцией выделение пустоты можно отменить. Пустая зона выделяется желтым цветом. Информацию о матрице связи можно получить сразу же после описания всех макроэлементов (кнопка “Показать матрицу связи”). Значение, отличное от нуля, указывает на номер зоны, а нуль – на пустую зону. Редактирование выбранного макроэлемента происходит в режиме “Редактирование зоны” соответствующим инструментом. Изменение координаты его точек осуществляется теми же способами, что и при редактировании точек контура. Выбранная зона удаляется после нажатия кнопки “Удалить зону”. Результатом работы на этом этапе будет область, покрытая четырехугольниками-зонами. Создание зон может быть целиком или частично сделано с помощью голосового интерфейса таким же образом, как создание контуров на первом этапе. Следует отметить, что обязательным является дополнение образа рассматриваемой области к прямоугольнику пустыми зонами. Это необходимо для автоматического создания матрицы связи, что избавляет пользователя от необходимости вручную перенумеровывать зоны и задавать информацию о соседстве макроэлементов. Нажимая кнопку “Задать параметры разбиения для зоны” при выбранной зоне, на этапе разбиения области на макроэлементы пользователь может задать также параметры разбиения области на четырехугольные и треугольные конечные элементы путем определения количества полос на каждом пласте. Для каждой создаваемой зоны автоматически создаются параметры разбиения, которые по умолчанию имеют значение, равное единице. Это позволяет избежать ошибок при решении задачи на следующих этапах. На этапе функционирования ПЧЗ Система контролирует следующие действия пользователя: – выбрана ли зона для редактирования/удаления; – правильно ли заданы параметры разбиения. Результатом работы на этом этапе будет область, покрытая четырехугольниками-зонами, для каждой из которых заданы параметры разбиения. 4.3. Подсистема ввода физических параметров После того, как отработала подсистема ПЧЗ, к работе готовы подсистемы ПВФП, ПКЭР. Переход к этому этапу возможен с помощью голосовой команды “Stage Three”. Для задания физических параметров создан только один инструмент [1], который позволяет производить все необходимые для этого этапа действия: выбирать зону, выбирать границу области, выбирать тонкое включение: – инструмент для задания физических параметров. Физические процессы, на исследование которых ориентирована система НАДРА–Д, адекватно описываются краевыми и начально-краевыми задачами для дифференциальных уравнений в частных производных и их системами. Некоторые из этих задач представлены в работах [3, 4]. Для постановки задачи необходимо указать тип физической задачи, в диалоговом режиме задать исходные данные: коэффициенты соответствующих уравнений, данные о начальных и краевых условиях, а на тонких включениях задать условия сопряжения. Трудоемкость процесса описания начально-краевой задачи в системе НАДРА–Д существенно сокращена: пользователь при описании задачи только отмечает необходимое и вносит данные решаемой задачи. Физические характеристики задаются по зонам, и предполагается, что для одной зоны они однотипны. Окно с полем для ввода физических характеристик вызывается двойным щелчком правой кнопки “мыши” на каждой зоне. Система следит, чтобы задаваемые параметры Кх, Ку (коэффициенты теплопроводности/фильтрации в направлениях осей ОХ, ОУ, соответственно) были положительными действительными числами. В случае ошибки появляется сообщение (в том числе голосовое) и программа 13 просит повторить ввод неправильно заданного значения. На основе введенных данных система автоматически определяет изотропность или анизотропность среды, в которой происходит рассматриваемый физический процесс. Краевые условия задачи задаются по граничным отрезкам, каждый из которых может быть разбит на несколько частей, по которым задаются краевые условия трех классических типов: Дирихле, Неймана, Ньютона (или краевые условия смешанного типа) [3, 4]. В системе НАДРА–Д реализован ввод краевых условий по границе зоны. Если она выбрана, а в этом случае отрезок отображается синим цветом, то активируются три кнопки с надписями “Условие Дирихле” (Condition Type One), “Условие Неймана” (Condition Type Two), “Условие Ньютона” (Condition Type Three), соответствующие трем типам краевых условий. Нажатие одной из кнопок приводит к появлению окна с полем для ввода параметров выбранного условия. Система подсказывает, в каком виде записано выбранное краевое условие, и пользователю нужно лишь задать параметры в виде действительных чисел. Заданные значения для каждой границы – тип краевого условия и его параметры – хранятся в переменных класса Link. Нажимать кнопки с краевыми условиями можно с помощью голосовых команд. Границы зон области выбираются в произвольном порядке. Система не позволяет выбирать фрагмент области, который не является граничным, например, внутреннюю сторону зоны. Для корректирования заданных параметров краевых условий следует заново отметить отрезок области и выбрать тип условия. Каждое тонкое включение характеризуется своими особенностями влияния на исследуемый процесс. Так как разбиение области на зоны предусматривает, что тонкое включение являет собой общую сторону для двух смежных зон, то это упрощает процедуру задания условий сопряжения. Необходимо отметить по очереди каждое включение двойным щелчком курсора “мыши”, после чего оно выделяется фиолетовым цветом и активируется кнопка с надписью “Условия сопряжения”. Ее нажатие или произнесение команды “Conjugation” вызывает окно, где необходимо выбрать тип условия сопряжения: неидеального контакта или неоднородного неидеального контакта [3, 4]. Для каждого из типов на экране дисплея появляется свое окно, в котором представлены вид условия сопряжения и поля для ввода параметров в виде действительных чисел. Корректирование происходит аналогичным образом. На этапе функционирования ПВФП система ведет контроль следующих действий пользователя: правильность и корректность задания значений физических характеристик; правильность и корректность задания значения параметра в условии третьего рода; корректность задания значений параметров в краевых условиях; корректность задания параметров в условиях сопряжения. Заданную полностью или частично геометрическую информацию об области решаемой задачи и физические параметры можно сохранять в виде бинарного или текстового файла. 4.4. Подсистема конечно-элементного разбиения Для запуска ПКЭР нужно задать параметры разбиения зон на конечные элементы, если они не были заданы на этапе функционирования ПЧЗ. Поскольку визуально все зоны отображены на экране, необходимо пройтись по всем нижним или верхним зонам, которые образуют горизонталь, а также по всем правым или левым зонам, которые образуют вертикаль и указать количество горизонтальных и вертикальных частей, на которые будет разбита каждая квазигоризонталь и квазивертикаль, вызывая окно с полями для ввода параметров путем двойного щелчка левой кнопкой “мыши” на выбранной зоне. Информация о параметрах разбиения каждой зоны хранится в переменных класса Contour. Задавать параметры разбиения можно также с помощью голосовых команд. В информационной панели отображаются команды, соответствующие текущему информационному окну. Команды перехода на поля ввода параметров начинаются со слова “Edit”. Переходом на первый параметр и завершением ввода командой “Enter”, пользователь заполняет поля значениями соответствующих параметров. Для окончания редактирования можно использовать команду “Ok (okay)”, активирующую кнопку подтверждения, и “Cancel” – кнопку отмены. Для запуска ПКЭР необходимо нажать кнопку “Триангуляция” или произнести команду “Step one”. Если система не готова к триангуляции при отсутствии некоторых входных данных, то она выдает сообщение, и пользователь должен вернуться на предыдущие этапы и задать недостающую информацию. Разбиение многокомпонентных областей с разрезами на треугольные конечные элементы происходит в три этапа: собственное разбиение области на треугольные конечные элементы; формирование массива узловых точек – множества вершин треугольников (на разрезах строятся узловые точки с двойной нумерацией); нумерация узлов. Выходные данные подсистемы содержат также информацию о системе алгебраических уравнений: порядок матрицы, ширину ленты ненулевых её элементов. Результатом работы ПКЭР будет конечно-элементное разбиение многокомпонентной области, отображающееся на экране дисплея. Рядом с каждым узлом пишется его номер, который при необходимости можно не отображать. Система позволяет принять решение об улучшении разбиения за счет корректировки геометрии и/или её параметров. Результаты разбиения исследуемой области на треугольные элементы используются для формирования следующих массивов: узлов (содержат упорядоченные соответственно нумерации узлов данные, в которые входят значения координат, статус узла – внутренний или граничный, номера смежных узлов); краевых условий II и III рода (содержат числовые значения априорно задаваемых функций, входящих в определение краевых условий); краевых условий I рода (содержат номера узлов и значения условий в этих узлах); треугольных 14 элементов (содержит номера узлов, которые представляют собой вершины элемента и упорядоченные согласно обходу их против часовой стрелки). Выделение при этом двух массивов краевых условий обусловлено тем, что краевые условия II и III рода естественные и, наряду с информацией об узлах и треугольниках разбиения, используются при формировании правой части и матрицы жесткости и правой части систем алгебраических уравнений МКЭ, а условия I рода являются главными и учитываются на этапе решения задачи. Промежуточным этапом результата применения МКЭ для решения задачи диффузии является формирование системы линейных алгебраических уравнений МКЭ с симметричной положительно определенной матрицей разреженной структуры. Чтобы использовать тот или иной метод ее решения с целью уменьшения объема необходимой памяти ПЭВМ и уменьшения числа арифметических действий целесообразно провести перенумерацию узловых точек. Так как ширина ленты матрицы в МКЭ зависит от максимальной разности номеров между номерами узлов, которые относятся одному конечному элементу, то с целью ее уменьшения осуществляется оптимизация нумерации узлов методом Катхилла-Макки [5]. В системе НАДРА–Д для перенумерации узлов пользователю необходимо нажать кнопку “Перенумерация” или произнести команду “Step two”. Результат перенумерации отображается на экране. Сведения о результатах конечно-элементного разбиения области – количество узлов, треугольников, ширину ленты до и после перенумерации – пользователь может получить в текстовом и голосовом представлении, нажав кнопку “Информация” или по команде “Show Info”. 4.5.Подсистема формирования систем алгебраических уравнений МКЭ Как уже отмечалось, при решении задач фильтрации жидкости или задач диффузии тепла в многокомпонентных областях с произвольно ориентированными в пространстве тонкими включениями с помощью МКЭ получаем систему линейных алгебраических уравнений с разреженными симметричными положительно определенными матрицами А. На этапе формирования матрицы А учитываются результаты работы ПЧЗ, ПКЭР и ПВФП. В комплексе НАДРА–Д системы с такой матрицей решаются методом квадратных корней [8] (Холецкого [7]). Для этого автоматически формируется порядок матрицы и количество ее наддиагоналей, содержащих ненулевые элементы, сами элементы матрицы, которые размещены на главной диагонали и на упомянутых наддиагоналях, компоненты вектора нагрузок (правая часть системы алгебраических уравнений), которые являются входными данными для ПРСАУ. Запуск ПРСАУ происходит после нажатия кнопки “Решение” или произнесения команды “Solution”. Выходные данные – вектор решения системы линейных алгебраических уравнений. Результаты расчёта можно представить в графическом и в текстовом виде. Подсистема ПВРРСАУ запускается голосовой командой “Izolines” или нажатием кнопки “Изолинии”. Система отслеживает, есть ли данные для отображения. Если задача не решена, она выдает сообщение об ошибке (в том числе голосовое). В противном случае на экране появится окно с результатами решения в виде изолиний и цветового перехода между ними, количество которых можно указывать. Для дальнейшего использования результатов работы системы пользователю предоставляется возможность сохранить их в виде рисунка со стандартным расширением .bmp. Литература 1. Архангельский А.Я. Программирование в С++Builder 4. - М.:Бином, 2000. – 1084 с. 2. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – С.- П.: Питер, 2001. – 368 с. 3. Дейнека В.С., Сергиенко И.В. Модели и методы решения задач в неоднородных средах. – Киев: Наук. думка, 2001. – 606 с. 4. Дейнека В.С., Сергиенко И.В., Скопецкий В.В. Модели и методы решения задач с условиями сопряжения. – Киев: Наук. думка, 1998. – 615 с. 5. Джордж А., Лю Дж. Численное решение больших разреженных систем уравнений. – М.: Мир, 1984. – 333 с. 6. Ласло Майкл. Вычислительная геометрия и компьютерная графика на С++. – М.:Бином, 1997. – 304 с. 7. Уилкинсон Дж., Райнш К. Справочник алгоритмов на языке АЛГОЛ. – М.: Машиностроение, 1976. – 390 с. 8. Фаддеев Д.К., Фаддеева В.Н. Вычислительные методы линейной алгебры. – М.: Физматгиз, 1963. – 736 с.