Разработка приложения для визуализации речи для CAVE-систем

Анализ проблем взаимодействия систем распознавания речи с системами визуализации данных. Обзор методов построения приложения для визуализации речи для CAVE-систем. Моделирование программного приложения, описание взаимодействия модулей приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.09.2017
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

АННОТАЦИЯ

Тема дипломного проекта: "Разработка приложения для визуализации речи для CAVE-систем". Объём дипломного проекта содержит 48 страниц, он содержит 22 рисунка, 1 таблицу, 16 источников литературы. Ключевые слова: системы распознавания речи, системы визуализации данных, CAVE-системы, виртуальная реальность.

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

Theme of the diploma project: "Development of the application for visualization of speech for CAVE-systems". The volume of the thesis project contains 48 pages, it contains 22 figures, 1 table, 16 sources of literature. Keywords: speech recognition systems, data visualization systems, CAVE-systems, virtual reality.

Development of an application for CAVE-systems is an extension of the functionality of virtual reality systems, in particular CAVE-systems. The problem of interaction of speech recognition systems with data visualization systems is considered. A review and analysis of speech recognition systems and data visualization systems is conducted. The requirements to the developed application are formulated. Methods for constructing an application for visualizing speech for CAVE systems are proposed. Simulation of the software application is conducted, a logical scheme of the application is proposed, the interaction of the application modules is described. Results of experimental testing and practical application of the developed application are given.

ОГЛАВЛЕНИЕ

  • Введение
  • 1. Обзор и анализ систем распознавания речи и систем визуализации данных
    • 1.1 Системы распознавания речи
    • 1.2 CAVE-системы
  • 2. Выбор методов разработки приложения
    • 2.1 Выбор системы распознавания речи
    • 2.2 Выбор методов визуализации речи
  • 3. Моделирование приложения
  • 4. Практическая и экспериментальная части
    • 4.1 Программная реализация приложения
    • 4.2 Тестирование приложения
  • Заключение
  • Список используемой литературы
  • Приложение 1

ВВЕДЕНИЕ

Распознавание речи в CAVE-системах - это концепция развития функциональных возможностей в сферах 3D-технологий и VR (виртуальной реальности), подразумевающая использование средств по распознаванию речи для упрощенного общения пользователя с CAVE-системой.

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

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

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

Возникает потребность в создании программного продукта (реализации), способного на начальном этапе визуализировать речь в CAVE-системах, а в дальнейшем и управлять самой CAVE-системой.

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

Целью настоящей научно-исследовательской работы является разработка приложения для визуализации речи для CAVE-систем, которое даст возможность пользователям превращать сказанные ими слова в 3D-модели текстового вида и выводить их на экраны CAVE-системы.

Для достижения поставленной цели необходимо решение следующих задач: распознавание речь визуализация приложение

· обзор и анализ существующих решений;

· исследование методов и алгоритмов решения поставленной задачи;

· разработка приложения по визуализации речи;

· проведение тестирования (эксперимента).

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

Новизна заключается в разработке приложения, которое позволит пользователям визуализировать сказанные ими слова и выводить полученные данные на экраны CAVE-системы.

Практическая значимость исследования заключается в применении результатов исследования на практике. Приводятся результаты практического использования приложения по визуализации речи в CAVE-системах.

1. ОБЗОР И АНАЛИЗ СИСТЕМ РАСПОЗНАВАНИЯ РЕЧИ И СИСТЕМ ВИЗУАЛИЗАЦИИ ДАННЫХ

1.1 Системы распознавания речи

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

Рассматривая историю систем распознавания речи можно выделить основные даты в разработке таких систем:

· 1952 год - первое устройство для распознавания речи Audrey компании Bell Laboratories. Устройство распознавало только цифры.

· 1962 год - компьютер IBM Shoebox. Компьютер мог распознавать 16 слов на английском языке.

· 1972 год - программа Vip-100 распознавала несколько сот слов.

· 1987 год - кукла с функцией распознавания детской речи на основе тренировки.

· 1990 год - первая коммерческая программа для обычного пользователя Dragon Dictate. На тот момент программа была очень дорогая, связи с чем позволить себе могли только крупные компании.

· 1996 год - первый голосовой портал от VAL от BellSouth.

· 1997 год - улучшенная программа Dragon - NaturallySpeaking.

· 2001 год - система распознавания речи Microsoft.

· 2005 год - первая операционная система с функцией распознавания речи Mac OS X Tiger. Программа VoiceOver.

· 2006 год - Microsoft выпускает операционную систему с функцией распознавания речи Windows Vista.

· 2009 год - приложение Voice Search от Google.

· 2011 год - функция распознавания голоса в браузере Chrome.

· 2011 год - программа Siri для IPhone.

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

Распознавание речи - это процесс преобразования речевого сигнала, считанного с микрофона в цифровую информацию (текстовые данные).

Говоря о системах распознавания речи, важно назвать методы, которые используются в данных системах:

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

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

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

Выделяют несколько основных способов распознавания речи:

1. Распознавание отдельных команд - раздельное произнесение и последующее распознавание слова или словосочетания из небольшого заранее заданного словаря. Точность распознавания ограничена объемом заданного словаря

2. Распознавание по грамматике - происходит распознавание фраз, которые соответствующих определенным правилам. Обычно при задании грамматик используются языки XML, при этом данными передаются по протоколу MRCP.

3. Распознавание отдельных участков речи - проводится поиск ключевых слов в потоке произнесенной речи.

4. Распознавание речи на большом словаре - речь сказанная пользователем преобразуется в текст дословно.

5. Распознавание речи при помощью нейронных систем. При помощи нейронных сетей создаются обучаемые системы, которые используются в системах распознавания речи.

Алгоритм распознавания речи включает в себя следующие пункты:

· Получение исходного сигнала от пользователя

· Происходит начальный анализ, фильтрация и усиление полученного сигнала

· Система начинает проектирование отдельных слов

· Происходит распознавание отдельного слова

· Происходит распознавание полной сказанной речи

Структурная схема модуля распознавания слов приведена на рис. 1.

Рис. 1. Общая схема системы распознавания речи

Этапы распознавания:

1. Оценка качества речевого сигнала. Определяется уровень помех и искажений.

2. После оценки качества сигнал попадает поступает в модуль акустической адаптации, данный модуль управляет расчетом параметров речи, которые необходимы для распознавания произнесенной пользователем речи.

3. В полученном сигнале вычленяются куски речи. Происходит формирование фонем и семантики.

4. Поступление параметров речи в основной блок. Данный блок сравнивает полученные данные с имеющимися данными и происходит проверка схожести данных.

Говоря о технологиях использования и создания систем распознавания речи можно выделить несколько групп:

1. Наборы библиотек для разработки приложений.

2. Пользовательские приложения.

3. Специальные приложения для ведомственных структур.

4. Устройства, выполняющие распознавание на аппаратном уровне.

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

1.2 CAVE-системы

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

В среднем, площадь активной части CAVE-системы составляет 4 квадратных метра, но для размещения её аппаратной части требуется гораздо больше места, например, для CAVE-системы с активным потолком и полом потребуется не менее трех ярусов. К аппаратной части CAVE-системы относятся:

· Вычислительная машина или компьютер;

· Проекторы;

· Звуковое оборудование.

В CAVE-системах максимально возможным может быть шесть активных поверхностей, минимум функционирования составляет две активные поверхности. Боковые стены также задействованы, но не обязательно вместе, они могут быть использованы по отдельности. Передняя стена является наиболее важным компонентом CAVE-системы. Если необходимо создать эффект полного погружения в среду, так называемого шестистороннего пространства, то для этого потребуется использование сразу 6 поверхностей - потолка, пола и боковых стен.

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

Важным фактором для создания качественного погружения в виртуальную среду является высокое разрешение CAVE-системы. Стандартным разрешением для таких систем является 2К Ч 2К, однако часто встречаются системы с большим разрешением. Спрос на системы с разрешением 4К Ч 4К также растет. Самая дорогостоящая часть CAVE-системы - проекционное оборудование. Довольно крупным капиталовложением составит CAVE-система с шестисторонней активной поверхностью и разрешением 4К Ч 4К.

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

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

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

Некоторые фирмы программных CAD-менеджеров обеспечивают поддержку CAVE-систем. При отсутствии данной поддержки от фирм производителей можно воспользоваться промежуточным программным обеспечением.

К основным особенностям CAVE-системы можно отнести:

· Высокое разрешение изображения;

· Низкая задержка трекинга;

· Широкое поле зрения.

Поскольку технологии 3D-проекторов не стоят на месте, появляются более доступные модели принтеров, а, следовательно, стоит отметить, что цена комнат виртуальной реальности становится меньше.

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

По своей сути CAVE-система мало чем отличается от обычного компьютера и монитора, отличие лишь в одном - это большое разрешение экрана. Пример классической CAVE-системы приведен на рис. 2.

Рис. 2. Классическая CAVE-система

На данный момент существуют различные CAVE-системы: классические CAVE-системы в виде куба, и так называемые системы CAVE 2, которые представляют собой цилиндр, внутри которого стены обвешаны LCD-дисплеями (Рис. 3.).

Рис. 3. Система CAVE 2

2. ВЫБОР МЕТОДОВ РАЗРАБОТКИ ПРИЛОЖЕНИЯ

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

2.1 Выбор системы распознавания речи

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

Рассмотрим некоторые системы распознавания речи подробней.

Yandex SpeechKit - это публичный API для распознавания речи, который могут использовать разработчики под Android и iOS. Yandex SpeechKit позволяет напрямую обращаться к тому бэкенду, который успешно применяется в мобильных приложениях Яндекса. Правильность распознавания слов в навигаторе - 94%, в веб браузере -84%. Для распознавания речи используется скрытая марковская модель.

CMU Sphinx - исходники движка распространяются под лицензией BSD и доступны как для коммерческого, так и для некоммерческого использования. Sphinx -- это не пользовательское приложение, а, скорее, набор инструментов, который можно применить в разработке приложений для конечных пользователей. Sphinx сейчас - это крупнейший проект по распознаванию речи. Он состоит из нескольких частей:

· Pocketsphinx -- небольшая быстрая программа, обрабатывающая звук, акустические модeли, грамматики и словари;

· библиотека Sphinxbase, необходимая для работы Pocketsphinx;

· Sphinx4 -- собственно библиотека распознавания;

· Sphinxtrain -- программа для обучения акустическим моделям (записям человеческого голоса).

В отличие от облачного способа, когда работа по распознаванию речи ложится на плечи серверов Google ASR или Яндекс SpeechKit, Sphinx работает точнее, быстрее и дешевле. И полностью локально. Основа CMU Sphinx -- библиотека Sphinx4 -- написана на Java.

Web Speech API - веб сервис, работающий в Chrome подобных браузерах, дает возможность распознавания и воспроизведения речи. Не обладает 100% результатом.

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

Microsoft Speech API - библиотека программ под Windows для распознавания и синтезирования голоса в различных приложениях. Активно используется в программах по преобразованию текста в голос, а также для голосового управления операционной системой и отдельными программами. Распознавание речи происходит в несколько этапов. Сначала компьютер захватывает звук из микрофона и оцифровывает его. Затем происходит преобразование звука в фонемы, построение из них слов и последующий анализ контекста слов. Если слово не вписывается в контекст, оно заменяется похожим по звучанию. Непосредственно синтез речи для определенного языка и голоса реализуется голосовым движком, называемым Text-To-Speech или TTS. Microsoft Speech API совершенно бесплатно, и все речевые модули (или движки) голосовых функций для самых распространенных языков тоже бесплатны.

Speech Recogniser - это многоязычная программа для распознавания речи, которая превращает звуки в текст. Для работы приложению необходим доступ к микрофону и подключение к Интернету. Речь обрабатывается на серверах Nuance Communications, которые, также отвечают за работу голосового ассистента Siri. Apple Siri - Данное приложение использует обработку естественной речи, чтобы отвечать на вопросы и давать рекомендации. “Siri - «разумный» личный помощник, который помогает выполнять различные действия. Siri может отправлять сообщения, набирать телефонные номера, следить за календарем и многое другое”.

Поскольку разработка приложения будет производиться на операционной системе Windows и написана на языке C# то нам необходимо выбрать оптимальный вариант системы, которую мы будем использовать в данной работе. Для этого составим таблицу сравнительного анализа систем распознавания речи (таблица 1).

Таблица 1. Сравнительный анализ систем распознавания речи.

Yandex SpeechKit

CMU Sphinx

Web Speech API

Voice Navigator

Microsoft Speech API

Speech Recogniser

Необходимость оплаты услуг по пользованию сервисом

+

-

-

-

+

-

-

Возможность работы оффлайн

-

+

-

+

+

-

Возможность разработки под Windows

-

+

+

-

+

+

-

Распознавание русской речи

+

-

+

+

+

+

Проанализировав таблицу можно сделать вывод, что наиболее подходящая для нас система распознавания речи - это Microsoft Speech API.

Обзор и анализ методов разработки приложения позволяет сформулировать научную новизну предлагаемого решения. На основе анализа был сформулирован вывод о том, что фреймворк Microsoft Speech API обладает наибольшей эффективностью для использования его при написании приложения.

2.2 Выбор методов визуализации речи

Рассматривая методы для визуализации речи, будут выбраны две наиболее популярные API - OpenGL и DirectX.

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

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

OpenGL - это низкоуровневым процедурным API.

DirectX - это набор API, который позволяет решать задачи программирования под Microsoft Windows.

DirectX состоит из следующих компонентов:

· DirectX Graphics - набор интерфейсов вывода растровой графики и трехмерных примитивов;

· DirectInput - интерфейс, который используется при обработки данных, поступающих с периферийных устройств;

· DirectPlay -сетевой коммуникатор игр;

· DirectSound - компонент, необходимый для работы со звуком;

· DirectMusic - интерфейс для воспроизведения музыки в форматах Microsoft;

· DirectShow - компонент для ввода и вывода аудио и видео данных;

· DirectX Instruments - технология для создания и использования, на основе мультимедийногоAPI DirectX, программного синтезатора;

· Direct2D - интерфейс для работы с двухмерной графикой.

При выборе одной из этих технологий необходимо выделить основные преимущества одной спецификации над другой. Во-первых, DirectX работает только под определенной ОС - Windows, в то время как OpenGL является кроссплатформенной спецификацией. OpenGL может быть использован любым язаком, который поддерживает вызов функций бибилиотек. DirectХ фиксирован в пределах одной версии. Измененеия в DirectX происходят только с выходом новой версии.

Весь функционал OpenGL - это расширения. Развитие OpenGL идёт при помощи появления нового функционала, производитель реализовывает его в своем драйвере и документирует доступное расширение.

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

OpenGL, зачастую, опережает DirectX в плане инноваций, поскольку производитель может добавить расширение к OpenGL, никого не дожидаясь.

Исходя из этих выводов, можно сделать упор на OpenGL и выделить ряд преимуществ над DirectX:

· OpenGL мощнее, чем DirectX;

· OpenGL кроссплатформенная;

· OpenGL обладает большими перспективами, чем DirectX.

Выбор фреймворков.

Выбирая фреймворки для работы с OpenGL упор будет сделан на наиболее популярные и наиболее эффективные для работы на языке программирования C#, такие как:

TAO Framework - это свободно-распространяемая библиотека, предназначенная для быстрой и удобной разработки кроссплатформенного мультимедийного программного обеспечения в среде .NET Framework. Данная библиотека обладает открытым исходным кодом.

TAO Framework позволяет использовать технологию OpenGL при разработке приложения в среде .NET на языке программирования С#.

В состав библиотеки входят средства, необходимые при разработке мультимедийного программного обеспечения:

· Библиотеки OpenGL;

· реализация библиотеки FreeGlut и все содержащиеся в ней функции;

· библиотека DevIL.

Несмотря на все достоинства этой библиотеки, она устарела, последняя версия была выпущена в 2008 году. На данный момент библиотека TAO Framework менее востребована, чем SharpGL.

SharpGL - это открытая библиотека, позволяющая писать графические приложения на C#. Данная библиотека поддерживается на данный момент и продолжает разрабатываться. Обладает поддержкой WinForms и WPF. Библиотека направлена на объектно-ориентированные функции и спецификации. SharpGL намного проще подключать и использовать в проекте.

Преимущества SharpGL:

· использование удобного объектно-ориентированного языка C#

· нет необходимости использовать дополнительные библиотеки для визуализации

· поддержка технологии WinForms и WPF

Исходя из вышеизложенных фактов, можно сделать выбор в сторону библиотеки SharpGL.

3. МОДЕЛИРОВАНИЕ ПРИЛОЖЕНИЯ

При моделировании приложения необходимо описать его составляющие и то, как оно будет функционировать. Приложение должно включать в себя две подсистемы: средство распознавания речи и средство для визуализации данных (Рис. 4).

Рис. 5. Подсистемы приложения

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

Алгоритм работы программы. При проектировании приложения необходимо разработать алгоритм работы данного приложения. Алгоритм работы приложения состоит из следующих пунктов:

1. запуск приложения и ожидание отклика от пользователя;

2. считывание произнесенной речи с микрофона;

3. обработка сигнала и получение текстовых данных;

4. сопоставление полученных данных с алфавитом;

5. формирование сказанной речи и сопоставление ее с 3D моделями;

6. построение 3D модели;

7. вывод полученной 3D модели и текстовых данных на окно графического интерфейса приложения.

Рассматривая приложение как систему, можно выделить его основные модули:

· Микрофон;

· Тело приложения;

· Модуль распознавания речи;

· Модуль визуализации данных;

· Графический интерфейс.

Все пять модулей составляют логическую схему приложения (Рис. 6).

Рис. 7. Логическая схема приложения

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

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

К входным данным будут относиться:

· Произнесенная пользователем речь;

· Полученные из модуля распознавания речи текстовые данные;

· Полученная из модуля визуализации данных 3D модель.

К выходным данным относятся:

· Текст и изображение 3D модели в окне графического интерфейса.

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

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

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

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

Нижнее значение частот не должно быть меньше 100 Гц. Что касается верхних частот, то планкой ограничения послужит отметка в 10000 Гц. Чувствительность микрофона должна составлять примерно 60 Дб. Данные значения позволят системе корректно считать звуковой сигнал, переданный пользователем для распознавания.

Интерфейс ввода данных может быть, как USB, так и миниджек 3.5 - это стандартные интерфейсы ввода/вывода информации, которые используются на всех современных компьютерах.

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

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

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

Говоря о речи, произнесенной пользователем, важно сказать, что для корректного распознавания речи, необходимо произносить её четко, громко и связно.

Тело приложения осуществляет прием и передачу данных между модулями приложения. Это ядро, которое скрепляет все модули воедино, образуя целостное приложение.

При взаимодействии тела приложения с другими модулями важно определить какие данные принимаются телом приложения и какие данные передаются в другие модули. Взаимодействие тела приложения с модулем распознавания речи и микрофоном приведено на рисунке 8.

Рис. 8. Взаимодействие тела приложения с модулем распознавания речи и микрофоном

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

Рис. 9. Взаимодействие тела приложения с модулем визуализации данных и модулем графического интерфейса

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

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

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

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

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

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

Модуль распознавания речи должен обладать следующими возможностями:

· распознавание русской речи;

· перевод считанной речи в текстовые данные;

· передача текстовых данных в тело приложения.

Процесс распознавания речи проходит в следующих этапах (Рис. 10):

1. захват произнесенного в микрофон звука;

2. оцифровка сигнала;

3. преобразование полученного оцифрованного сигнала в фонемы - минимальные различимые по смыслу единицы языка;

4. построение слов из фонем;

5. разбор контекста, в котором было произнесено слово, и при необходимости, замена слова на другое, схожее по звучанию.

Рис. 10. Процесс распознавания речи

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

· распознанный текст;

· значения вероятностей правильного распознания;

· семантические значения, полученные при помощи разметки интерпретации семантики.

Возможности распознавания речи ограничиваются размером правил грамматики.

Модуль визуализации данных необходим для построения 3D модели и ее передачу через тело приложения на окно графического интерфейса приложения.

Модуль визуализации данных должен обладать следующими функциями:

· отрисовка и управление сценой;

· геометрическое представление сцены;

· наличие готовых моделей;

· отрисовка примитивов;

· построение 3D объектов;

· отрисовка объекта по полученным данным.

Алгоритм функционирования модуля визуализации данных состоит из следующих пунктов:

· получение данных от тела приложения;

· анализ переданных данных и их сопоставление с данными 3D модели;

· отрисовка 3D модели;

· передача данных обратно в тело приложения для вывода на окно графического интерфейса.

Модель взаимодействия модуля визуализации данных с телом приложения представлена на рисунке 11.

Рис. 11. Модель взаимодействия модуля визуализации данных с телом приложения

Поток данных, переданных от тела приложения, поступает в блок анализа данных, в котором происходит сопоставление переданных данных с параметрами 3D моделей и формируется команда для отрисовки. После анализа данных, сформированная команда поступает в блок отрисовки. Данный блок реализует отображение графических представлений 3D моделей. Редактор моделей содержит информацию и сведения о 3D моделях, необходимые для отрисовки графического представления, и передает данные по запросу блока отрисовки. После того, как готовая модель будет составлена, происходит обмен данными с телом приложения и вывод полученного 3D изображения на окно графического интерфейса приложения.

Графический интерфейс приложения представляет собой сцену для отрисовки 3D модели и вывода текстовых данных, для их сопоставления.

Графический интерфейс включает в себя стандартные элементы интерфейса и типовые экранные формы. Отображение происходит при помощи функций модуля визуализации данных.

С точки зрения технической реализации графический интерфейс - это экраны обратной проекции CAVE-системы, куда выводится изображение с проекторов передаваемое из тела приложения.

С точки зрения программной реализации графический интерфейс - это типовая форма, которая состоит из двух элементов (Рис. 12):

· элемент сцены для отображения 3D модели;

· элемент для отображения текстовых данных.

Рис. 12. Графический интерфейс приложения

Основной функцией данного модуля является отображение данных, полученных от тела приложения и вывод данных на экраны CAVE-системы.

Взаимодействие пользователя с приложением. Основными действующими лицами при взаимодействии с приложением:

· Пользователь;

· CAVE-система;

· Приложение.

После описания всех модулей и их взаимодействия друг с другом, можно представить диаграмму использования приложения пользователем (Рис. 13).

Рис. 13. Взаимодействие пользователя с приложением

Взаимодействие пользователя с системой обусловлено двумя действиями:

· Пользователь произнес речь;

· Пользователь получил визуализированные данные в виде 3D модели.

Моделирование приложения для визуализации речи для CAVE-систем позволяет сформулировать научную новизну предлагаемого решения:

· Предложена логическая схема, позволяющая разработать алгоритмы построения приложения;

· Описаны алгоритмы работы программы;

· Определены входные и выходные данные;

· Проведено описание модулей приложения и их взаимодействия друг с другом.

4. ПРАКТИЧЕСКАЯ И ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТИ

4.1 Программная реализация приложения

Язык программирования. Как уже было сказано, реализация приложения будет проходить в среде разработки Microsoft Visual Studio на языке программирования C#.

Язык C# - это объектно-ориентированный язык программирования, который обладает строгой типизацией, позволяет создавать приложения, работа которых основана на платформе .NET Framework. С# был унаследован от С++ и Java, это означает, что он перенял все лучшее от этих двух языков программирования и позволяет реализовать все необходимые задачи, стоящие перед разработчиком.

Синтаксис языка C# прост и удобен в реализации, упрощает многие сложности в С++, но при этом предоставляет отсутствующие в Java мощные функции. Язык C# поддерживает универсальные методы и типы, обеспечивающие высокий уровень производительности и безопасности.

Как уже было сказано выше C# - это объектно-ориентированный язык программирования, это значит, что он поддерживает все основные функции объектно-ориентированного языка программирования, а именно:

· Инкапсуляция;

· Наследование;

· Полиморфизм.

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

По сравнению с С и С++ язык С# прост в построении, по сравнению с Java является более гибким. В С# не используются отдельные файлы заголовка, а, следовательно, нет необходимости объявлять в определенном порядке типы и методы. Исходный файл C# может определить любое число классов, структур, интерфейсов и событий.

Исходя из всех перечисленных выше преимуществ и удобств языка С#, был выбран именно он.

Подключаемые библиотеки. Для того чтобы Visual Studio могло использовать систему распознавания речи Microsoft Speech API и библиотеку SharpGL необходимо подключить соответствующие библиотеки и установить необходимые компоненты.

Речевая платформа Microsoft Speech Platform включает в себя следующие компоненты:

· Microsoft Speech Platform Runtime - компонент времени выполнения, необходим для использования приложения;

· Microsoft Speech Platform SDK - средство разработки речевых приложений и служб;

· Microsoft Speech Platform Language Runtime - компонент языковых модулей.

Данные компоненты необходимо скачать с официального сайта Microsoft и установить на компьютер. После установки необходимо подключить библиотеку по распознаванию речи Microsoft.Speech.dll в приложение:

using Microsoft.Speech.Recognition;

Для функционирования подключаемого языка в приложении необходимо подключить библиотеку языков:

using System.Globalization;

Для функционирования библиотеки SharpGL необходимо скачать компонент SharpGL Core, содержащий в себе необходимые компоненты для работы с технологией OpenGL.

SharpGL Core включает в себя следующие компоненты:

· SharpGL;

· SharpGL.SceneGraph;

· SharpGL.Serialization;

· SharpGL.WinForms;

· SharpGL.WPF.

Поскольку разработка приложения будет производиться при помощи форм, то необходимым компонентом является SharpGL.WinForms, который содержит в себе библиотеки, которые необходимо подключить к приложению:

· SharpGL.dll;

· SharpGL.SceneGraph.dll;

· SharpGL.WinForms.dll.

Все подключенные к проекту библиотеки представлены на рисунке 14.

Рис. 14. Подключенные к приложению библиотеки

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

Рис. 15. Задание параметров ширины и высоты окна формы приложения

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

В переменные SW и SH передаются значения параметров ширины и высоты системы соответственно. Значения этих переменных используются для задания параметров ширины и высоты окна формы приложения.

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

Считывание речи происходит с устройства подключенного по умолчанию. Приложение подбирает устройство для считывания речи по умолчанию при помощи функции:

sre.SetInputToDefaultAudioDevice();

Язык распознавания, используемый в приложении, задается при помощи следующих команд:

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ru-ru");

SpeechRecognitionEngine sre = new SpeechRecognitionEngine(ci);

В данном случае указан язык для распознавания русской грамматики. Класс CultureInfo предоставляет сведения об определенном языке и региональных параметрах, в которые входят имена языков, региональные параметры, система письма, используемый календарь, порядок сортировки строк и форматы дат и чисел.

В качестве модуля считывания речи был взят пользовательский микрофон Genius MIC-01A Silver, представленный на рисунке 16. Данный микрофон обладает следующими характеристиками:

· Назначение - компьютерный;

· Вид - настольный;

· Тип - конденсаторный;

· Проводной;

· Радиус действия - 3 метра;

· Полярность - всенаправленный;

· Сопротивление - 2200 Ом;

· Чувствительность - 62 Дб;

· Нижнее значение частот - 100 Гц;

· Верхнее значение частот - 10000Гц;

· Интерфейс - миниджек 3.5;

· Вес - 64 г.

Рис. 16. Микрофон Genius MIC-01A

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

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

4.2 Тестирование приложения

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

1. Пользователь запускает приложение;

2. Приложение отображает графическую сцену и текстовое поле на экране CAVE-системы;

3. Пользователь произносит речь;

4. Приложение считывает речь, производит анализ полученных данных и выводит 3D модель на экран CAVE-системы;

5. Пользователь завершает работу приложения.

Примером работы приложения будет следующий эксперимент. Эксперимент проводится на стационарном компьютере (не в CAVE-системе).

При запуске приложения пользователь видит текстовое поле и графическую сцену - изображение, приведенное на рисунке 17. Приложение ждет отклика от пользователя для начала работы.

Рис. 17. Запуск приложения

При произнесение речи, например, слова «пирамида», на экране появляется следующее изображение и сопровождающий её текст (рисунок 18).

Рис. 18. Пирамида

Если пользователь повторно произносит слово, но уже отличное от предыдущего, например, слово «чайник», приложение заменит предыдущее изображение на новое и соответственно сопровождающее его слово (рисунок 19).

Рис. 19. Чайник

Следует отметить, что 3D модели имеют свою ось вращения, а не просто выгружаются на графическую сцену.

При произнесении пользователем слова «выход», приложения заканчивает свою работу и закрывается. Закрытие приложения можно также осуществить нажатием клавиши «Esc».

Тестирование приложения также проходило в CAVE-системе. Результаты работы приложения в CAVE-системе приведены на рисунках 20, 21, 22. Фотографии были сделаны в различных ракурсах для наглядного отображения работы всех активных поверхностей CAVE-системы.

Рис. 20. Проведение тестирования в CAVE-системе

Рис. 21. Проведение тестирования в CAVE-системе

Рис. 22. Проведение тестирования в CAVE-системе

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

ЗАКЛЮЧЕНИЕ

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

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

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

Обзор и анализ методов разработки приложения позволил сформулировать вывод о том, что фреймворки Microsoft Speech API и SharpGL обладают большей эффективностью, по сравнению с другими аналогами, для реализации приложения.

В результате моделирования приложения была разработана логическая схема приложения, позволяющая разработать алгоритм построения приложения, проведено описание взаимодействия всех модулей приложения, что позволило перейти к следующему этапу - написание приложения в программной среде Microsoft Visual Studio на языке программирования С#.

Было разработано программное приложения для визуализации речи для CAVE-систем, позволяющее при помощи голоса пользователя выводить 3D изображение сказанного слова на экраны CAVE-системы.

Результаты эксперимента подтвердили эффективность предложенных методов и алгоритмов. Приводятся результаты практического тестирования и использования приложения для визуализации речи в CAVE-системах.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Perez-Mendez I., Trawick D. J., Anikst M. T. Speech recognition system : пат. 5754978 США. - 1998.

2. Rabiner L. R., Juang B. H. Fundamentals of speech recognition. - 1993.

3. Woo M. et al. OpenGL programming guide: the official guide to learning OpenGL, version 1.2. - Addison-Wesley Longman Publishing Co., Inc., 1999.

4. Shreiner D. et al. OpenGL programming guide: the official guide to learning OpenGL, versions 3.0 and 3.1. - Pearson Education, 2009.

5. Rost R. J. et al. OpenGL shading language. - Pearson Education, 2009.

6. Cruz-Neira C., Sandin D. J., DeFanti T. A. Surround-screen projection-based virtual reality: the design and implementation of the CAVE //Proceedings of the 20th annual conference on Computer graphics and interactive techniques. - ACM, 1993. - С. 135-142.

7. Burdea Grigore C., Coiffet P. Virtual reality technology. - London: Wiley-Interscience, 1994.

8. Ryan M. L. Narrative as virtual reality: Immersion and interactivity in literature and electronic media. - Johns Hopkins University Press, 2001.

9. Williams M. Microsoft Visual C# (core reference). - Microsoft Press, 2002.

10. Радченко Г. Распознавание речи. Часть 2. Типичная структура распознавания речи. [Электронный ресурс]. 2009. URL: https://geektimes.ru/post/64594/ (Дата обращения 23.12.2016).

11. Вестник ИГЭУ: Аналитический обзор методов распознавания речи в системах голосового управления. // Гребнов С.В. 2009. С. 2-3.

12. Воронцов Н. Adobe показала управляемый голосом фоторедактор. [Электронный ресурс]. 2017. URL: http://wi-fi.ru/desktop/news/239/1538190 (Дата обращения 13.01.2017).

13. Evl: CAVE2: Next-Generation Virtual-Reality and Visualization Hybrid Environment for Immersive Simulation and Information Analysis. [Электронный ресурс]. URL: https://www.evl.uic.edu/core.php?mod=4&type=1&indi=424 (Дата обращения 13.01.2017).

14. Джеймс Маккафри. Распознавание голоса: Распознавание голоса с помощью классических приложений .NET // Распознавание речи с применением настольных .NET-приложений. Microsoft magazine, 2014.

15. OpenGLBook [Электронный ресурс]. - Режим доступа: http://openglbook.com/the-book.html (Дата обращения 14.04.2017 г.).

16. Lo R. C. H., Lo W. C. Y. OpenGL Data Visualization Cookbook. - Packt Publishing Ltd, 2015.

ПРИЛОЖЕНИЕ 1

В приложении 1 представлен листинг программы.

Размещено на Allbest.ru


Подобные документы

  • Назначение и возможности разработанного приложения для визуализации картографической информации. Хранимые процедуры, функции и триггеры. Взаимодействие пользователя с приложением. Описание экранной формы по работе с картами. Визуализация карты в MS Visio.

    курсовая работа [2,1 M], добавлен 14.08.2014

  • Разработка программной базы для исследований в области распознавания речи и поиска ключевых слов в ней. Расчет mel-фильтров. Скрытые марковские модели. Применение в алгоритме сверточного декодирования Витерби. Методы визуализации и обработки аудиоданных.

    курсовая работа [1,1 M], добавлен 01.06.2015

  • Общая схема работы приложения Android. Разработка обучающего приложения для операционной системы Android, назначение которого - развитие речи посредством произнесения скороговорок. Описание компонентов разработанного приложения, его тестирование.

    дипломная работа [1,2 M], добавлен 04.02.2016

  • Обзор и анализ предметной области. Актуальность проекта, сравнение аналогов, сферы применения. Виртуальная реальность: CAVE-системы, Leap Motion. Выбор методов построения системы. Обзор игровых движков. Использование баз данных. Разработка интерфейса.

    курсовая работа [4,6 M], добавлен 30.06.2017

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

    курсовая работа [3,6 M], добавлен 16.07.2016

  • Основные инструменты построения Web-приложения. Язык сценариев PHP. Системный анализ предметной области базы данных. Коды SQL запросов на создание таблиц. Разработка Web-приложения. Описание функциональности модулей. Система управления содержимым статей.

    курсовая работа [4,8 M], добавлен 28.04.2014

  • Общая характеристика игровых движков, история их создания и совершенствования, современное состояние и перспективы. Сущность и значение шейдерных эффектов, программирование данных программ. Механизм и этапы разработки 3D-приложения, его тестирование.

    дипломная работа [2,2 M], добавлен 16.06.2011

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

    научная работа [355,5 K], добавлен 06.03.2009

  • Функциональные возможности библиотеки OpenGL. Разработка процедуры визуализации трехмерной сцены, интерфейса пользователя и подсистемы управления событиями с целью создания приложения для построения динамического изображения 3D-модели объекта "Самолет".

    курсовая работа [1,7 M], добавлен 28.06.2011

  • Описание существующих технологий, поддерживающих концепцию распределенных объектных систем. Особенности технологии DCOM. Разработка параметров приложения. Выбор инструмента разработки и его обоснование. Схема взаимодействия для локального приложения.

    курсовая работа [769,8 K], добавлен 05.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.