БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Выпускная работа по «Основам информационных технологий»
Магистрант
кафедры радиофизики
факультета радиофизики и
электроники
Трус Александр Александрович
Руководители:
доцент кафедры радиофизики
Хейдоров Игорь Эдуардович,
ст. преподаватель
Кожич Павел Павлович
Минск – 2009 г.
ОГЛАВЛЕНИЕ
СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ.. 4
РЕФЕРАТ НА ТЕМУ «ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИЙ XML И COM ДЛЯ РЕШЕНИЯ ЗАДАЧ СТАТИСТИЧЕСКОЙ РАДИОФИЗИКИ». 5
ВВЕДЕНИЕ. 5
ГЛАВА 1. ЯЗЫК XML. 7
Общая структура XML-документа. 7
Структура элемента XML. 8
Открывающий и закрывающий тэги. 9
1.3.1 Переменные. 9
1.3.2 Содержимое. 9
1.3.3 Вложенные элементы.. 10
1.4 Выводы.. 10
ГЛАВА 2. ТЕХНОЛОГИЯ МАЙКРОСОФТ COM.. 10
2.1 Язык описания интерфейсов. 11
2.1.1 Анатомия Майкрософт idl файла. 11
2.1.2 Компиляция idl-файла. 14
2.1.3 Регистрация COM-компонент. 15
2.2 Выводы.. 15
ГЛАВА 3. СИСТЕМА ИНДЕКСАЦИИ АУДИОПОСЛЕДОВАТЕЛЬНОСТЕЙ 15
3.1 Процессоры.. 16
3.2 Компоненты чтения. 17
3.3 Язык описания сценариев. 17
3.4 Выводы.. 19
ЗАКЛЮЧЕНИЕ. 19
БИБЛИОГРАФИЧЕСКИЙ СПИСОК.. 19
Список использованных источников. 19
Список публикаций. 20
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ. 22
ИНТЕРНЕТ РЕСУРСЫ... 23
ЛИЧНЫЙ САЙТ.. 24
ГРАФ НАУЧНЫХ ИНТЕРЕСОВ.. 25
ТЕСТОВЫЕ ВОПРОСЫ ПО ОСНОВАМ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ.. 26
ПРЕЗЕНТАЦИЯ МАГИСТЕРСКОЙ РАБОТЫ... 28
СПИСОК ЛИТЕРАТУРЫ К ВЫПУСКНОЙ РАБОТЕ.. 29
ПРИЛОЖЕНИЕ 1. СЛАЙДЫ ПРЕЗЕНТАЦИИ.. 30
СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ
XML
- eX
tensible
M
arkup
L
anguage
(
расширяемый язык разметки)
COM
- Component Object Model (объектная модель компонентов)
IDL
–
Interface Description Language (язык описания интерфейсов)
РЕФЕРАТ НА ТЕМУ «ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИЙ XML И COM ДЛЯ РЕШЕНИЯ ЗАДАЧ СТАТИСТИЧЕСКОЙ РАДИОФИЗИКИ»
ВВЕДЕНИЕ
Значительный прогресс в области методов хранения, приема и передачи аудио данных привел к тому, что человек физически не способен анализировать информацию из всех доступных ему источников. Несоответствие уровня развития средств переработки информации человека, в сравнении с возможностями средств ее доставки и хранения, приводят к необходимости создания автоматических систем анализа информации[1, 2].
Одной из главных задач предварительной обработки аудио данных является задача индексации аудио. Эта задача охватывает широкий круг подзадач, таких как определение смены диктора, идентификация диктора, определение пола диктора, определение эмоций в речи, определение жанра музыки, сегментация аудиопоследовательности на речь/музыку/тишину и др. [3]. Полученные на этапе индексации данные могут быть использованы для улучшения работы модулей дальнейшей обработки сигнала, таких как модуль распознавание речи. Также, данные, полученные от модулей индексации, могут быть использованы в системах поиска аудиозаписей.
Несмотря на стремительное развитие автоматических систем анализа информации, до нынешнего времени не было предпринято попыток создания обобщенной системы, при помощи которой исследователи могли бы быстро и эффективно тестировать новые модули обработки сигнала, а также проводить полноценные эксперименты с использованием готовых модулей, не тратя большую часть времени на разработку программы для каждого нового эксперимента. Существование, развитие и успешное использование таким программных комплексов как Mathlab и Mathematica подтверждают эффективность данного подхода. Несмотря на множество преимуществ указанных комплексов, существует также ряд неудобств, связанных с их использованием. В первую очередь это невозможность разработки на языке С/С++, что усложняет дальнейшее использование написанного кода, а также вынуждает разработчика изучать внутренний, зачастую очень неудобный, язык программирования указанных комплексов. Этот язык обычно оказывается скриптовым и не предоставляет никаких средств отладки, что сильно усложняет разработку серьезных систем. Кроме того, очень сложным представляется процесс создания встраиваемых в среду модулей, что усложняет расширение таких программных комплексов сторонними разработчиками и соответственно усложняет доступ исследователей к последним разработкам. Преимуществом вышеуказанных программных комплексов является наличие удобных средств визуализации и анализа результатов.
Язык программирования С/С++ в свою очередь очень удобен для разработки приложений. Существует множество реализаций компиляторов и средств отладки от различных производителей, а также их аналогов с открытым исходным кодом. Кроме того, существует множество библиотек, предоставляющих как инструменты для базовых операций, таких как работа с матрицами, так и готовые реализации сложных классификаторов, таких как метод опорных векторов или скрытая марковская модель. К тому же, существует множество библиотек для создания графического интерфейса, обеспечивающих независимость от платформы, таких как Nokia Qt, GTK, WxWidgets. Использование таких библиотек, в сочетании с другими платформо-независимыми библиотеками, делает результат разработки полностью платформо-независимым, что избавляет разработчика и пользователя модулей от привязанности к конкретной платформе или программному комплексу. Использование стандартов Microsoft Com (Component Object Model
— Объектная Модель Компонентов) для платформы Windows, и OMG (Object Management Group
— группа управления объектами) CORBA (Common Object Request Broker Architecture
— общая архитектура брокера объектных запросов) для всех платформ избавляет разработчиков от необходимости использования одного языка программирования. При наличии единого стандартного интерфейса для всех модулей, разработка каждого конкретного модуля могла бы вестись на любом из поддерживаемых стандартом языков программирования, что еще больше упростило бы разработку, тестирование и повторное использование модулей.
ГЛАВА 1. ЯЗЫК XML
Язык XML (eX
tensible
M
arkup
L
anguage
–
расширяемый язык разметки) является рекомендованным Консорциумом Всемирной паутины языком разметки, фактически являющийся сводом общих синтаксических правил[4]. Стандарт предоставляет полностью расширяемый, простой для изучения и обладающий широкими возможностями формат для описания структурированных данных. Описание данных при помощи XML обладает рядом преимуществ:
XML обеспечивает возможность сохранения данных в текстовом формате.
XML является отрытым, кросс платформенным стандартом, что обеспечивает однозначную интерпретацию данных на любой существующей платформе.
Для того чтобы получить доступ к данным не нужно специальное программное обеспечение.
XML похож на HTML, но обладает некоторыми существенными отличиями:
в то время как HTML в первую очередь предназначен для описания графического представления данных, XML описывает сами данный, оставляя их графическое представление пользовательским приложениям.
стандарт XML описывает только синтаксис описания, при этом названия тэгов могут быть произвольными и не несут ни какой смысловой нагрузки, помимо той, которую придает им пользователь.
XML документ представляет собой древовидную структуру, с одним и только одним корневым элементом.
Общая структура XML
-документа
XML-документ является иерархической структурой, которая визуально может быть представлена в виде дерева. Важнейшим синтаксическим требованием к любому XML-документу является наличие одного и только одного корневого элемента
. Это означает, что все остальные элементы документа должны находиться между открывающим и закрывающим тэгами корневого элемента. Поведения XML-процессора в случае отсутствия в документе корневого элемента все зависит от конкретной реализации. Например, процессор «XML++» просто «обернет» содержимое документа корневой элемент «xml». Для уточнения поведения используемого процессора в подобной ситуации необходимо проконсультироваться с документацией. Далее приведен пример простейшего правильно построенного XML-документа: <
hmm
>Этот документ
XML
описывает срытую Марковскую модель</
hmm
>.
Далее в данной работе
Первая строка XML-документа называется объявлением
XML
. Это не обязательная строка, указывающая версию стандарта XML, также здесь может быть указана кодировка документа и внешние зависимости. Далее представлен пример типичного объявления XML: <?xml version="1.0" encoding="UTF-8"?>
. Спецификация требует от процессоров XML обязательную поддержку Юникод-кодировок UTF-8 и UTF-16. Признаются допустимыми, поддерживаются и используются и другие кодировки, основанные на ISO/IEC 8859, также допустимы и другие кодировки.
Стандарт XML позволяет добавлять к разметке документа комментарии
. Отличительной особенностью XML является то, что комментарии могут предназначаться и для XML-процессоров. Существует возможность программного манипулирования комментариями или использования их в процессе обработки. Комментарии в XML-документах имеют следующий вид: <!-- Это комментарий. -->
.
Структура элемента
XML
Каждый элемент в документе XML состоит из следующих частей:
· Открывающий и закрывающий тэги.
· Переменные.
· Содержимое.
· Вложенные элементы.
Открывающий и закрывающий тэги
.
Открывающий тэг содержит название элемента и переменные и является обязательным: <
hmm
type = "discrete">
. Закрывающий тэг не является обязательным и используется только если у элемента есть содержимое и/или вложенные элементы:
<hmmtype="discrete">
<number_of_outputs>4</number_of_outputs>
3
</
hmm
>
.
1.3.1 Переменные
Переменные в XML-документе могут находиться только в открывающих тэгах элементов: <
hmm
type = "discrete">.
Значения переменной должно располагаться в кавычках, одинарных или двойных. Между названием переменной, знаком «равно» и значением переменной может находиться любое количество пробелов. Название переменной не может содержать пробелов, друг от друга переменные отделяются пробелами. В рамках одного элемента названия переменных должны быть уникальны.
1.3.2 Содержимое
Содержимое элемента представляет собой одну или несколько текстовых строк, расположенных между отрывающим и закрывающим тэгами: <hmm>Содержимое</hmm>. В случае, если содержимое представляет собой набор строк, разделенных символами новой строки, XML-процессор интерпретирует их как набор элементов содержимого. Например, XML-процессор “XML++” в таком случае вернет массив элементов типа XMLConents. Данная особенность представления позволяет, например, интерпретировать содержимое как флаги.
1.3.3 Вложенные элементы
Вложенные элементы любого XML-элемента располагаются между отрывающим и закрывающим тэгами элемента. Уровень вложенности является произвольным и определяется создателем документа, вложенные элементы подчиняются являются обыкновенными XML-элементами и ни чем не отличаются от элемента в который они вложены. Названия вложенных элементов уникальными не являются и могут повторяться сколько угодно раз на любых уровнях иерархии.
1.4 Выводы
Из сказанного выше видно, что XML является мощным хорошо стандартизированным инструментом, несомненно заслуживающим внимания в случае возникновения задачи обобщенного описания данных. Наличие множества реализаций XML-процессоров на разнообразных языках программирования, в том числе и бесплатных, под лицензией GPL, избавляет от необходимости написания собственного процессора не зависимо от целей и бюджета проекта. Также следует обратить внимание на возможность использования XML в качестве основы для создания новых языков, подразумевающих описание данные.
ГЛАВА 2. ТЕХНОЛОГИЯ МАЙКРОСОФТ
COM
Технология Майкрософт COM (Component Object Model - объектная модель компонентов) – это технологический стандарт от компании Майкрософт, предназначенный для создания программного обеспечения на основе распределенных взаимодействующих компонентов, каждый из которых может одновременно использоваться в нескольких программах[5]. Говоря о COM под «распределенными компонентами» нужно понимать, компоненты расположенные на одной машине, но не в одном выполняемом файле. Фактически COM-сервер является выполняемым файлом или dll (dynamic link library – динамически подгружаемая библиотека), которые соединяются с клиентом в процессе выполнения последнего по средствам специального заранее определенного интерфейса. Преимущество такого метода объединения компонент программы заключается в том, что в процессе компиляции и линковки клиентское приложение должно знать только программный интерфейс COM-сервера. Для соединения с сервером в процессе выполнения необходимо знать еще два числа - его идентификатор класса и идентификатор интерфейса, но они могут храниться в файле или системном реестре и подгружаться уже в процессе выполнения клиента. Идентификатор класса и идентификатор интерфейса являются уникальными числами, которые однозначно указывают на данный COM-сервер, зарегистрированный в системе. Эти числа являются гарантированно уникальными не только в рамках отдельно взятой машины, но и на любой другой машине т.к. они генерируются на основе MAC-адреса сетевой карты, который, как известно, уникален.[6]
Далее представлено описание базовых принципов, являющихся основой данной технологии.
2.1
Язык описания интерфейсов
Основой возможности обеспечения взаимодействия компонент написанных на разных языках программирования является idl (interface description language – язык описания сценариев), а для технологии COM – midl (Microsoft idl). Idl предоставляет новы, по сравнению с существующими языками программирования уровень абстракции при создании объектов. Фактически idl описывает только интерфейсы объектов не говоря ни слова о реализации. Idl обладает некоторыми ограничениями, которые с одной стороны позволяют на основе интерфейса генерировать реализацию на любом из языков, поддерживаемых стандартом, а с другой стороны – полностью скрывать от взаимодействующих компонент различия языков, на которых они были реализованы, а также скрывать возможную распределенность объектов и инкапсулировать сетевое взаимодействие. Midl в первую очередь ориентирован на язык C++ и поэтому допускает некоторые вольности в описании интерфейсов, такие как возможность использования указателей, также в качестве базовых типов данных в midl используются базовые типы языка C.
2.1.1
Анатомия Майкрософт idl файла.
В данной части будет приведен пример и описание базовых конструкций описания интерфейса:
import "mydefs.h","unknwn.idl"; [object,uuid(a03d1420-b1ec-11d0-8c3a-00c04fc31d2f),] interface IFace1 : IUnknown{HRESULT MethodA([in] short Bread, [out] BKFST * pBToast);HRESULT MethodB([in, out] BKFST * pBPoptart);}; [object,uuid(a03d1421-b1ec-11d0-8c3a-00c04fc31d2f),pointer_default(unique)] interface IFace2 : IUnknown{HRESULT MethodC([in] long Max, [in, max_is(Max)] BkfstStuff[ ], [out] long * pSize, [out, size_is( , *pSize)] BKFST ** ppBKFST);};
Ключевое слово import
является аналогом команды препроцессора C #include, она используется включения файла Mydefs.h, который содержит пользовательские типы и Unknwn.idl, который содержит определение интерфейса IUnknown, от которого наследуются IFace1 и IFace2.
Атрибут object
сообщает компилятору о том, что интерфейс является интерфейсом объекта и для него нужно сгенерировать прокси-код.
Атрибут uuid
устанавливает идентификатор интерфейса (IID). Каждому интерфейсу, классу и библиотеке присваивается собственный уникальный идентификатор. Для генерации идентификаторов используется утилита Uuidgen.exe. При создании idl-файла в ручную необходимо использовать также вручную вызвать данную утилиту и вставлять в код сгенерированный ей IID, в случае автоматической генерации idl-файла при помощи Visual Studio необходимые IID будут сгенерированы и вставлены в код автоматически.
Ключевое слова interface
определяет название интерфейса. Все объектные интерфейсы должны явно или не явно наследоваться от IUnknown.
Параметр in
обозначает, что значение передается только в одном направлении – от клиента к серверу, и значение параметра устанавливается клиентом. Параметр out
обозначает, что значение передается только от сервера к клиенту. Использование обоих параметров одновременно обозначает, что значение передается в обе стороны – от клиента к серверу и обратно.
Атрибут pointer
_
default
устанавливает тип указателя, используемый по умолчанию для всех указателей, кроме тех, которые включены в список параметров. В midl существует 3 типа указателей: unique
обозначает указатель к которому применимы следующие утверждения:
· может быть NULL
· во время вызова метода может изменяться с NULL на не-NULL, с не-NULL на NULL, с одного не-NULL значения на другое
· может выделять новую память в адресном пространстве клиента. Когда значение указателя меняется с NULL на не-NULL, данные, которые возвращаются из сервера записываются в новое хранилище
· может использовать уже выделенную в клиенте память. Данные, которые возвращаются с сервера записываются в ту же область памяти, на которую указатель указывал до вызова метода
· память, на которую указывает не нулевой указатель может быть никогда не освобождена в случае, если после изменения данного указателя у клиента не остается других указателей на данную область памяти
если пользователь не указывает типа указателей по умолчанию, mild предполагает unique типом указателей по умолчанию.
ref
обозначает указатель к которому применимы следующие утверждения:
· не может быть NULL, всегда указывает на область памяти
· никогда не изменяется во время вызова. Этот тип указателей указывает на одну и ту же область памяти до и после вызова
· не может выделять новую п
ptr
обозначает полноценный указатель, обладающий функциональностью, полностью соответствующей указателю языка С.
В приведенном примере BkfstStuff представляет собой массив, чей размер определяется во время выполнения программы. Атрибут max_is устанавливает переменную, которая содержит максимальное значение индекса массива.
Атрибут size_is также устанавливает размер массива или, как представленном примере, нескольких уровней указателей. Функция из примера может быть вызвана без наличия предварительных знаний о размере возвращаемых данных.
2.1.2
Компиляция idl-файла
Для любого idl-файла, в котором описаны один или несколько COM-интерфейсов и библиотека типов, компилятор MIDL генерирует следующие файлы:
· Filename.h – содержит определения типов и объявления функций для всех интерфейсов, определенных в idl-файле, а также определения дополнительных процедур необходимых для работы интерфейса
· Filename_p.c – покси-файл, который содержит замены точек входа клиентов и серверов
· Filename_i.c – содержит определения идентификаторов для каждого интерфейса, содержащегося в idl-файле
· Filename.tlb – содержит информацию о типах и объектах
· Dlldata.c – содержит информацию, необходимую для создания прокси dll
Классы, описанные в файле .h используются в качестве базовых классов для реализации интерфейсов, описанных в idl-файле.
2.1.3
Регистрация COM-компонент
Завершающим шагом создания COM-компонент является их регистрация в системе. Регистрация производится при помощи утилиты regsvr
32.
exe
, которая в качестве аргумента принимает путь к регистрируемому файлу. Если файл содержит COM-компонент и соблюдены все зависимости, регистрация завершается успешно и компонент готов к использованию. Для удаления COM-компонент из системы необходимо вызвать утилиту regsvr32.exe с опцией /
u
.
2.2
Выводы
Технология Майкрософт COM является мощным инструментом, делающим возможным модификацию и расширение функциональных возможностей программного обеспечения в процессе его использования конечным пользователем и без изменения «ядра» программы. Технология Майкрософт COM легла в основу многокомпонентной системы индексации аудио, описанной в следующей главе.
ГЛАВА 3. СИСТЕМА ИНДЕКСАЦИИ АУДИОПОСЛЕДОВАТЕЛЬНОСТЕЙ
Представленные в предыдущих главах стандарты легли в основу системы индексации аудиопоследовательностей, одним из разработчиком которой является автора данной работы. Главными требованиями, предъявляемыми к системы были:
· расширяемость – возможность дополнения функциональных возможностей сторонними разработчиками, кроме того система должна иметь возможность работы с различными форматами данных, в том числе и пользовательскими
· язык писания экспериментов – возможность описания последовательности действий над исходными данными
· визуализация – возможность графического представления как результатов всего эксперимента, так и любого его этапа
В данной главе будут представлены предложенные решения для первых
двух задач.
3.1
Процессоры
Решением первой задачи стало создания обобщенного программного интерфейса, с одной стороны предоставляющего унифицированный доступ ко всем компонентам обработки сигнала (получившим название процессоров
), а с другой стороны, предоставляющего пользователю доступ по всех возможностям настройки работы процессора. Решение объединило два описанных в предыдущих главах стандарта – описание настроек процессора при помощи XML позволило скрыть различия внутренней структуры процессоров от ядра системы, а общий для всех компонент COM-интерфейс позволил системе работать с любым процессором, зарегистрированным в системе вне зависимости от его функциональных особенностей. Ниже представлен интерфейс, который реализует каждый процессор, и который используется для взаимодействия процессоров с системой:
сlass Processor : public Idispatch {
public:
virtual HRESULT STDMETHODCALLTYPE loadSettings(const char* settings);
virtual HRESULT STDMETHODCALLTYPE work(DataStruct** data) ;
virtual HRESULT STDMETHODCALLTYPE getProcessorId(char** id) ;
virtual HRESULT STDMETHODCALLTYPE getSize(int* val) ;
virtual HRESULT STDMETHODCALLTYPE getStep(int* val) ;
virtual HRESULT STDMETHODCALLTYPE getSettings(char**) ;};
Метод loadSettings(const char* settings)
предназначен для загрузки настроек. Настройки представляют собой XML-строку. Если настройки не указываются, устанавливаются настройки по умолчанию.
В методе work
(
DataStruct
**
data
)
выполняется то, что должен выполнять процессор. Через аргумент передаются данные над которыми должен работать процессор и результат работы процессора.
Метод getProcessorId
(
char
**
id
)
возвращает через аргумент имя процессора.
Метод getSize
(
int
*
val
)
возвращает через аргумент размер данных, с которыми будет работать процессор.
Метод getStep
(
int
*
val
)
возвращает через аргумент шаг, с которым следует читать данные из базы.
Метод getSettings
(
char
**)
возвращает через аргумент XML-строку с дефолтными настройками.
3.2 Компоненты чтения
Компоненты чтения решают задачу возможности работы с различными форматами данных. Для добавления в систему поддержки нового формата данных пользователю необходимо реализовать представленный ниже интерфейс и зарегистрировать соответствующий компонент чтения в системе.
class ReaderInterface : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE open(const char*, ResultStruct*); virtual HRESULT STDMETHODCALLTYPE read(DataStruct**, ResultStruct);};
Метод open(const char* name, ResultStruct* result)
открывает файл с именем name
и возвращает результат открытия через result.
Если open
отработал успешно, метод read(DataStruct** data, ResultStruct* result)
считывает данные из файла в data
и возвращает результат чтения через result.
3.3 Язык описания сценариев
Разработанная система предоставляет пользователю простой, интуитивно понятный и в то же время предоставляющий определенную свободу действий язык описания сценариев, основанный на XML. В этом разделе представлено описания языка описания сценариев.
Эксперимент состоит из отдельных этапов, каждый из которых описывается своим именованным сценарием. Сценарий содержит в себе список обрабатываемых данных и список процессоров для обработки.. Результаты работы процессоров последовательно передаются по сценарию слева на право. Результаты работы сценария сохраняются в базу по заданному имени. Количество позиций в списке выходных данных должно соответствовать количеству позиций в списке входных данных. Каждая строка завершается точкой с запятой.
Общий вид сценария следующий:
[
имя_сценария] : [
входные_данные_1], [
входные_данные_2] … [
входные_данные_N] | [
процессор_1], [
процессор_2] … [
процессор_N] -> [
имя_результата_1], [
имя_результата_2] … [
имя_результата_N];
В качестве входных данных могут выступать данные, хранящиеся в базе или в файле. При использовании даны, в хранящихся в базе необходимо предварять имя данных знаком ’&’ Результаты работы сценария сохраняются в базу данных.
Для улучшения читаемости сценария предусмотрена возможность переименования данных, процессоров:
[
новое_имя] = [
имя_понятное_системе];
Переименование может производиться в любом месте файла эксперимента и действует глобально.
Имена файлов записываются в двойных кавычках “имя_файла”. Для каждого сценария может использоваться список специфических настроек для каждого процессора. Список настроек процессоров для сценария задается в следующем виде:
<@
имя_сценария>[
список настроек]</@>
Список настроек для процессоров выглядит следующим образом:
[
имя_процессора]:<
settings>
<
свойство_1>[
значение_свойства_1]</
свойство_1>
<
свойство_2>[
значение_свойства_2]</
свойство_2>
</
settings>;
3.4 Выводы
Представленные в данной главе решения задач, поставленных перед разработчиками системы индексации аудиопоследовательностей демонстрируют применение стандартов, описанных в первых двух главах для решения задач статистической радиофизики, одной и главных среди которых, на современном этапе развития, является задача индексации аудиопоследовательностей. Разработанная система обладает запасом гибкости, который может в дальнейшем позволить решать на ее основе и другие задачи обработки данных, например, задачу обработки изображений.
ЗАКЛЮЧЕНИЕ
Представленное в данной работе описание стандартов XML и COM и их применение для построения системы индексации аудиопоследовательностей демонстрирует возможность использования данных технологий. Язык XML был использован в качестве основы для языка описания сценариев, а также для описания данных внутри системы. Технология COM использовалась для того, чтобы сделать возможным подключение дополнительных модулей обработки данных в процессе использования системы конечным пользователем. Проведенные на основе системы эксперименты продемонстрировали возможности системы и подтвердили ее полезность.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Список использованных источников
1.
Xuedong Huang, Alex Acero, Hsiao-Wuen Hon. Spoken Language Processing, a guide to theory, algorithm and system development. //Prentice-Hall, 2001.
2.
Л.Р. Рабинер. Скрытые Марковские Модели и их применение в избранных приложениях при распознавании речи: Обзор. //ТИИЭР т. 77, №2, февраль 1989.
3.
Yi-Lin Lin, Gang Wei. Speech Emotion Recognition on HMM and SVM. Proceedings of the Fourth International Conference on Machine Learning and Cybernetics,// Guangzhou, 18-21 August 2005.
4. Ч. Кирк. XML в подлиннике.// BHV, 2003
5. Д.Роджерсон. Основы СОМ.
6.
Э. Трельсен. Модель COM и применение ATL 3.0.//BHV, 2005
Список публикаций
1. A - Трус А.А., Сорока А.М., Янь Цзиньбинь, У Ши, Егоров В.Н.Использование синтезатора речи по тексту в задачах образования // Тезисы международной научно-технической конференции, посвященной 45-летию МРТИ-БГУИР 19 марта 2009, Минск. - С. 291
2. A - Трус А.А., Сорока А.М., Алиев Р.М. Многокомпонентная система на платформе .NET для настройки и оптимизации алгоритмов анализа аудиосигналов // Труды VI Всероссийской научной конференции студентов, аспирантов и молодых ученых «Технологии Microsoft в теории и практике программирования» 1-2 апреля 2009, Москва. - С. 53 - 54
3. A - Трус А.А., Янь Цзиньбинь, У Ши,. Сорока А.М. Классификация аудиосигналов с использованием одноклассового метода опорных векторов для опорных векторов для систем поиска информации в мультимелиа-архивах // «Речевые технологии» №4 2009, Москва. – С. 15 - 24
4. A - Трус А.А., Янь Цзинбинь, Сорока А.М., Хейдоров И.Э., Верификация ключевых слов на основе мер доверительности и метода опорных векторов // «Электроника инфо» №5 2009, Минск. – С. 44 - 49
5. A - Трус А.А., Сорока А.М. Алгоритм построения векторов признаков на основе вейвлет-преобразования для классификации фонем русского языка // Труды 52-й научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук», Москва-Долгопрудный, 2009. - С. 103 - 106
6. A - Трус А.А., У. Ши. Обнаружение патологий голосового тракта на основе новых вейвлетных векторов признаков // Труды 52-й научной конференции МФТИ «Современные проблемы фундаментальных и прикладных наук», Москва-Долгопрудный, 2009. - С. 116 - 118
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
C
COM, 4, 10, 11, 14, 15, 16
I
idl, 11, 12, 14
Idl, 11
M
midl, 11, 13
X
XML, 4, 6, 7, 8, 9, 10, 16, 17
XML-процессор, 7, 8, 9, 10
М
Майкрософт, 10, 11, 15
П
Процессор, 7, 8, 9, 15, 16, 17, 18
С
Содержимое, 8, 9
Сценарий, 11, 17, 18
Т
Тэг, 8
Э
Элемент, 7, 8, 9
ИНТЕРНЕТ РЕСУРСЫ
1. http://msdn.microsoft.com – онлайн документация от Майкрософт
2. http://codeproject.com – ресурс, содержащий много полезной информации для разработчиков ПО.
3. http://ghmm.sourceforge.net – сайт проекта GHMM (general purpose hidden Markov model – скрытая Марковская модель общего назначения).
4. http://www.turboirc.com/xml/ - открытая реализация XML-процессора на языке С++.
5. http://www.gnu.org/software/gsl/ - страница GSL (GNU Scientific Library), открытой библиотеки, содержащей множество полезных математических фунций.
6. http://lancet.mit.edu/ga/ - реализация генетического алгоритма на языка С++
7. http://software.intel.com/en-us/intel-ipp/ - библиотека высоко оптимизированных функций для цифровой обработки сигнала от корпорации Intel.
8. https://ccrma.stanford.edu/software/stk/ - страница проекта STK (Synthesis ToolKit – инструментарий для синтеза), открытой библиотеки предназначенной для обработки и синтеза аудио сигналов.
9. http://www.csie.ntu.edu.tw/~cjlin/libsvm/ - реализация машины на опорных векторах на языке С.
10. http://www.boost.org/ - сайт библиотеки С++ шаблонов
11. http://omniorb.sourceforge.net/ - страница открытой высокопроизводительной реализации стандарта CORBA (Common Object Request Broker Architecture — общая архитектура брокера объектных запросов)
ЛИЧНЫЙ САЙТ
http://evilrugby.narod.ru/ - личный сайт личный сайт магистранта кафедры радиофизики Труса А.А.
ГРАФ НАУЧНЫХ ИНТЕРЕСОВ
Специальность 01.04.03 (
радиофизика)
Смежные специальности |
Основная специальность |
Сопутствующие специальности |
|||||||||||||
|
|
|
ТЕСТОВЫЕ ВОПРОСЫ ПО ОСНОВАМ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Вопрос
№1
<question type="close" id="052">
<text>Итератор это </text>
<answers type="request">
<answer id="1" right="0"> обобщенный указатель</answer>
<answer id="2" right="1"> класс, обладающий определенными свойствами</answer>
<answer id="3" right="0"> что-то не относящееся к информационным технологиям</answer>
<answer id="4" right="0">переменная, значение которой изменяется в цикле</answer>
</answers>
</question>
Вопрос
№2
<question type="close" id="552">
<text>boost это:</text>
<answers type="request">
<answer id="1" right="0"> кнопка на системном блоке</answer>
<answer id="2" right="1"> библиотека шаблонов</answer>
<answer id="3" right="0"> утилита позволяющая «разогнать» процессор</answer>
<answer id="4" right="0"> одна из консолей в линуксе</answer>
</answers>
</question>
ПРЕЗЕНТАЦИЯ МАГИСТЕРСКОЙ РАБОТЫ
finishwork.ppt – презентация магистрской работы.
СПИСОК ЛИТЕРАТУРЫ К ВЫПУСКНОЙ РАБОТЕ
1.
Елена Иванова. Microsoft Office Word 2007. //ЭКСМО - 2007.
2. Баричев С., Афанасьев Д., Office XP // Москва, Кудиц-образ, - 2002.
3. Минько П. Microsoft Office PowerPoint 2007 // Москва, ЭКСМО, - 2007
ПРИЛОЖЕНИЕ 1. СЛАЙДЫ ПРЕЗЕНТАЦИИ