Сохрани и опубликуйсвоё исследование
О проекте | Cоглашение | Партнёры
В работе предложен алгоритм разработки программного модуля.
Комментировать 0
Рецензировать 0
Скачать - 742,8 КБ
Enter the password to open this PDF file:
-
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «РОССИЙСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ Г.В. ПЛЕХАНОВА» Факультет математической экономики, статистики и информатики Кафедра информатики «Допустить к защите» Заведующая кафедрой Информатики д.э.н., доцент О.В. Китова «__»_____ 2016г. Выпускная квалификационная работа Направление: 09.03.02 «Информационные системы и технологии» Тема: «Разработка программного модуля голосовой идентификации пользователя» Выполнил студент Павлов Роман Игоревич Группа 42 – Д/О Научный руководитель выпускной квалификационной работы к.т.н., доцент Попов А.А. Подпись ____________ Автор Москва – 2016 ____________
СОДЕРЖАНИЕ Перечень сокращений…………………………………………………………………… ВВЕДЕНИЕ……………………………………………………………………………... ГЛАВА 1. ИССЛЕДОВАНИЕ РЫНКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ РАСПОЗНАВАНИЯ РЕЧИ И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ………………………………………………………………….. 1.1. Обзор существующих методов обработки и анализа речевого сигнала……………………………………………………………… 1.2. Анализ рынка программного обеспечения для голосовой биометрии…………………………………………………………... 1.3. Исследование предметной области (распознавание речи)……… 1.4. анализ информационных потребностей пользователя………….. 1.5. выводы по первой главе…………………………………………… Вывод по первой главе………………………………………………………………….. ГЛАВА 2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ПРИЛОЖЕНИЯ ДЛЯ ГОЛОСОВОГО ДОСТУПА………………………………………………. 2.1. требования, предъявляемые системе……………………………... 2.2. сравнение существующих по на мировом рынке………………... 2.3. требования к разрабатываемому программному обеспечению… 2.4. общий алгоритм работы программного модуля голосовой идентификации пользователя……………………………………... 2.5. алгоритм работы встроенного программного модуля определения голосовой активности………………………………. 2.6. алгоритм сопоставления временных отрезков массивов данных 2.7. выбор платформы проектирования и его обоснование…………. 2.8. проектирование базы данных……………………………………... 2.9. иерархия форм и интерфейс программы…………………………. Вывод по второй главе………………………………………………………………….. ГЛАВА 3. РЕКОМЕНДАЦИИ ПО ЭКСПЛУАТАЦИИ И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРИЛОЖЕНИЯ…………………………………….. 3.1. рекомендации по использованию программного приложения…. 3.2. тестирование и отладка программного модуля…………………... 3.2.1. Особенности тестирования программных продуктов…... 3.2.2. Различные подходы к тестированию…………………….. 3.3. Способы тестирования и виды тестов ……………………………. 3.4. Подготовка к тестированию……………………………………….. 3.4.1. Тестирование главной формы……………………………. 3.4.2. Тестирование главной классов…………………………… 3.4.3. Тестирование дополнительных программных модулей... 3.5. Результаты тестирования………………………………………….. 3.6. Экономический эффект……………………………………………. 3.6.1. Расчет затрат на разработку программного модуля……. 3.6.1. Определение стоимости программного модуля………… Вывод по третий главе…………………………………………………………………... ЗАКЛЮЧЕНИЕ………………………………………………………………………….. 2 4 5 8 9 11 15 18 23 25 26 26 27 28 29 32 41 47 51 57 58 59 61 66 66 67 68 70 70 70 70 71 73 73 74 76 77
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………………. 79 ПЕРЕЧЕНЬ СОКРАЩЕНИЙ ДПФ – дискретное преобразование Фурье VAD – Voice Activity Detector (детектор голосовой активности) DTW – Data Time Warping (масштабирование (сопоставление)массивов данных по времени) ROC – Receiver Operator Characteristic (операционная характеристика приёмника) СКД – система контроля доступа БС – биометрическая система ТЭП – технико-экономические показатели ПП – программный продукт ООП – объектно-ориентированное программирование ОС – операционная система ПК – персональный компьютер ПМ – программный модуль ПО – программное обеспечение 3
ВВЕДЕНИЕ Системы биометрической идентификации человека основаны на принципе распознавания и сравнения уникальных характеристик человеческого организма: отпечатков пальцев, рисунка сетчатки глаза или индивидуальных особенностей голоса. Голосовая идентификация – это одна из наименее ресурсоемких технологий ограничения доступа. Голосовая идентификация является одной из ветвей развития технологии обработки речи и применяется при создании различных систем охраны и разграничения доступа. Идентификация голоса – технология автоматического сравнения неизвестного голоса с фонотекой известных голосов, предназначенная для использования в системах разграничения и управления доступом. Всем известны технологии идентификации человека по отпечаткам пальцев или по радужной оболочке глаза. Однако потенциал еще одного, казалось бы, лежащего на поверхности метода до сих пор недооценивался. В Университете Северной Каролины совершенствуется технология, анализирующая голос с высокой точностью и позволяющая использовать его для распознавания личности. При этом сам механизм речи основан на том, что в гортани на определенных частотах вибрируют голосовые складки, содержащие голосовые связки и мышцы. В результате воспроизводится уникальный звук, присущий только данному индивидууму. Ученым фактически остается довести до ума наработки в области компьютерного распознавания голоса и сличения его характеристик с уже имеющимися образцами. Дело в том, что современное оборудование, выполняющее такие задачи, тратит на распознавание очень много времени для того, чтобы получить широкое признание. Чтобы сократить время идентификации до мгновений без увеличения ошибок, исследователи вносят изменения в уже существующие компьютерные модели. Фактически речь идет об эволюционном развитии программного обеспечения для речевой аутентификации. Все это приблизит момент начала использования технологии, 4
которая со временем, возможно, начнет восприниматься как практичный и надежный инструмент. В настоящее время – век мобильной электроники и высоких требований к защите информации, речевая аутентификация может иметь множество применений. Потенциальные пользователи этой технологии – это госструктуры, финансовые и медицинские учреждения, а также телекоммуникационная отрасль. Сфера ее применения – от пресечения мошенничеств, в случае кражи удостоверений личности до защиты данных». Распознавание речи является задачей классификации образов акустических характеристик речевых сигналов. В системах распознавания речи выделяются два основных блока: блок акустического информативных анализа, акустических предназначенный характеристик для речевого выделения сигнала и формирования акустического образа, и набора характеристик; блок классификации путем сравнения с обученными акустическими моделями – эталонами. DTW метод, является наиболее подходящим методом, для анализа нестационарных сигналов, частотно-временной являющихся образ позволяющий сигнала. нестационарными, получать Поэтому для DTW многокомпонентный речевых обеспечивает более сигналов, точное представление, чем методы анализа, предполагающие стационарность сигнала. Обработка биометрических данных, в первую очередь, восстребована для решения ряда важнейших задач с точки зрения обеспечения высокой безопасности и повышения качества обслуживания. Биометрические системы используют для идентификации набор неотъемлемых характеристик человека, что является предпочтительным с точки зрения защиты от краж, копирования или потери идентификационных признаков. Биометрические технологии в данный момент внедряются в системы контроля и управления доступом в качестве основных или вспомогательных средств идентификации, внедряются в 5
качетстве вспомогательных идентификационных технологий в сферу обслуживания (в том числе, при обслуживании важных лиц) и в системы правоохранительных органов. Голос – такая же неотъемлемая черта каждого человека, как и его лицо или отпечатки пальцев. Широкое распространение средств связи открывают большие возможности для применения данного идентификатора; кроме того, распознавание по голосу весьма удобно для пользователей и требует от них минимум усилий. Целью выпускной работы является: повышение эффективности систем контроля и разграничения доступа с использованием метода идентификации пользователя по его голосовым характеристикам. Задачи: исследование рынка распознавания речи для СКД; сравнительный анализ существующих программных решений; анализ требований к ПП для голосового доступа; выбор средств и среды разработки программного продукта; разработка схем алгоритмов работы программного продукта; разработка программного приложения для распознавания речи с использованием языка программирования C++; отладка и тестирование программного модуля; разработка руководства пользователя; экономическое обоснование разработки и внедрения программного продукта. В приложение 1 приведен фрагмент исходного кода программного модуля. 6
ГЛАВА 1. ИССЛЕДОВАНИЕ РЫНКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ РАСПОЗНАВАНИЯ РЕЧИ И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ Рынок программного обеспечения, (ПО) предлагает немало программных продуктов, для решения возникшей проблемы контроля доступа. К распространенным методам можно отнести системы контроля доступа (СКД) и ПО, использующие электронные ключи и карты доступа. К достоинствам этих методов можно отнести: 1) дешевизна оборудования; 2) относительная дешевизна ПО; 3) универсальность. К недостаткам можно отнести следующее: 1) большое количество оборудования и идентификаторов доступа; 2) необходимость оператора или вахтёра; 3) сложность внедрения СКД и настройки ПО; 4) для поддержания работоспособности требуется администратор; 5) низкая степень защиты и обеспечения безопастности. Сравнительно недавно на рынке данных услуг появились новые технологии, использующие дактилоскопические методы защиты. На Российском рынке крайне мало компаний, предлагающих программные продукты (ПП) данной категории, одной из них является Biolite Net. К достоинствам этих методов можно отнести: высокая степень защиты и контроля доступа; универсальность; высокая надёжность работы. К недостаткам можно отнести следующее: дорогостоящее оборудование; 7
дорогостоящее ПО. Таким образом, проблема состоит либо в качестве продукта, либо в его цене. Для решения этих проблем крайне важно чётко определить цели и задачи проекта, решение которых позволит создать программный модуль, удовлетворяющий современным требования в области защиты информации и контроля доступа. Необходимо внимательно изучить данный сегмент рынка, провести анализ предметной области определиться со средой программирования, обеспечить криптографическую защиту системы. Так же необходимо провести тесты и испытания данного программного модуля голосовой идентификации пользователя в реальных условиях. 1.1. Актуальность применения систем распознавания речи Системы биометрической идентификации человека основаны на принципе распознавания и сравнения уникальных характеристик человеческого организма: отпечатков пальцев, рисунка сетчатки глаза или индивидуальных особенностей голоса. Голосовая идентификация – это одна из наименее ресурсоемких технологий ограничения доступа. Голосовая идентификация является одной из ветвей развития технологии обработки речи и применяется при создании различных систем охраны и разграничения доступа. На сегодняшний день созданы десятки различных систем идентификации по голосу, имеющих различные параметры и требования к процессу идентификации в зависимости от конкретных задач. В настоящий момент многие компании продолжают разработку систем голосовой идентификации. Например, технология распознавания голоса для верификации/ идентификации диктора от SPIRIT базируется на методах обработки речевых сигналов и алгоритмах классификации. Система SVI, 8
использующая эту технологию, не зависит от языка, специфики речи диктора и диалекта. Верификация диктора может производиться как непосредственно через микрофон, подключенный к системе, так и через телефонную сеть. Решение от SPIRIT отличается высоким качеством системы распознавания речевых команд/фраз, которая распознает команды с высокой точностью (вплоть до 99,9%). Высокий уровень проработки технологии, а также решение серьезных математических и алгоритмических проблем позволило компании вывести на мировой рынок один из лучших продуктов в своем сегменте. Еще одним преимуществом является высокая устойчивость к шумам, то есть способность выделять и узнавать команды в условиях зашумленной среды, будь то шум в машине или помещении, где играет музыка и звучат посторонние голоса. Система по-прежнему будет распознавать речевые команды и показывать очень хорошие результаты. Что касается отечественного рынка, то в нашей стране разработан узкий ряд законченных программных продуктов, которые уже нашли применение в различных ведомствах. Например, программно-аппаратная система текстонезависимой идентификации говорящего «СИГ», программно-аппаратная система разграничения доступа к информационным ресурсам на основе верификации говорящего (используется в по Министерстве парольным обороны), фразам «Голосовой автоматизированная ключ» система идентификации лиц по фонограммам русской речи «Диалект» (используется в Министерстве внутренних дел). Отсюда следует, что нынешний рынок биометрических технологий достаточно беден, и количество компаний, занимающихся этой проблемой тоже не велико. В нашей же стране биометрические технологии используются только в правоохранительных органах и спецслужбах. В России проблема внедрения биометрических систем в различные отрасли науки актуальна. 9 и производства очень
На данный момент уже сформированы основные и очень конкретные задачи, которые должны быть решены с помощью голосовой идентификации: разграничение и контроль доступа на основе биометрических данных; используя голосовые биометрические данные, уникальные для каждого человека, предоставлять автоматизированным телефонным системам дополнительный уровень безопасности; система не должна зависеть от языка клиента и должна позволять выбрать легко запоминающееся ключевое слово; обеспечивать персонализацию голосовых сервисов благодаря идентификации; клиентов и предоставлению предпочитаемых ими опций; уменьшать вероятность фальсификаций и мошенничества при использовании базы данных подозрительных голосов и переключении подозрительных абонентов на службу безопасности; легко интегрироваться в систему любой архитектуры. 1.2. Обзор существующих методов обработки и анализа речевого сигнала На сегодняшний день биометрические системы востребованы как никогда, они набирают популярность в самых различных отраслях. Иные способы контроля доступа, к сожалению, не приносят нужных результатов. Проведя анализ существующих программных продуктов, можно сказать следующее, что рынок достаточно беден. В России существует только ряд закрытых фирм, конечные продукты используются спецслужбами, такими как ФСБ, СВР. Для общего пользование подобные продукты недоступны. Что касается зарубежного рынка, то их ассортимент невелик, но они доступны для всеобщего пользования. Рассмотрим каждый продукт в отдельности. SPIRIT Corp. Системы верификации и идентификации диктора от SPIRIT 10
Corp. различных версиях SVI-системы используются НММ и DTW- классификаторы. Данная программа имеет многооконный интерфейс, что от части, упрощает её в использовании, и предназначена в основном для работы с IP-телефонией. Интерфейс одного из окон данной оболочки показан на рис. 1.1. Рис.1.1 Интерфейс ПП SPIRIT Corp. GritTec. GritTec представил в 2016 года новую версию программы голосовой идентификации с GUI интерфейсом - 'GritTec Speaker-ID: The mobile client (Version 2.50)'. GritTec обновил программный продукт 'GritTec Speaker-ID: The mobile client' до версии 2,50 с поддержкой последней версии 2,990 движка голосовой идентификации. Обновление было сделано засчет оптимизации скорости вычислений результатов идентификации и их отображения. Также в новую версию была добавлена форма поиска целевых дикторов. Форма поиска целевых дикторов позволяет делать автоматизированный поиск дикторов в базе идентифицированных файлов (рис. 1.4). Гибкая система настроек запроса, форм отображения результатов поиска и форм отображения сигналов текущего идентифицируемого файла и файла целевого образца 11
позволяют эффективно проводить поиск и изучение результатов идентификации полученного запроса. На рис.1.2 представлен интерфейс данной программы, но несмотря на все её преимущества и достоинства есть и минусы. Программа очень громоздка и сложна как в написании, так и в использовании, а следствием этого является и высокая цена. Необходим специально обученный оператор для отслеживания всех процессов. Рис.1.2. Интерфейс системы GritTec ПО в виде персонального помощника и вопросно-ответной системы Apple. Программный продукт, имеющий название «Siri», который был специально разработан, для продуктов, сходящих с конвейера компании «Apple», 28 ноября 2010 был представлен на мировом рынке, для всеобщего пользования. С данным приложение можно вести активный диалог, программа обрабатывает речь пользователя, проводит анализ и далее отвечает на вопросы, 12
дает какие – либо рекомендации. За все время использования программного продукта, «Siri» проводит анализ, делает логические заключение, с целью подстроиться под каждого пользователя индивидуально. Проектирование ПО было начато в 2007 году Дагом Китлауссом (CEO), Адамом Чейером и Томом Грюбером, совместно с Норманом Винарским из SRI International. Разработки Siri контролировало Управление перспективных исследовательских программ. Сам программный продукт сошел с конвейера Международного центра искусственного интеллекта SRI. Microsoft. Программный продукт от компании Microsoft, носящий название «Cortana», был представлен на мировом рынке 2 апреля 2014 года. Cortana - это ПО, с элементами искусственного интеллекта, которое будет использоваться в виде виртуального голосового помощника. Само ПО может быть интегрировано на такие платформы как Windows 10, Windows Phone, Android, так же входит в планы интеграция на IOS, Xbox One. ПО призвано потребности пользователя предугадывать. Для более высокого уровня полезности программного продукта, следует разрешить доступ к личным данным. При интеграции Cortana, на свое устройство, она заменит стандартную поисковую систему, чтобы вызвать виртуального помощника следует нажать кнопку «Поиск». Нужный запрос можно как напечатать вручную или задать голосом. Интерфейс Cortana имеет гибкие настройки конфиденциальности. Google. ПО от компании Google носит название «Google Now», программный продукт представлен был всему миру 27 июня 2012 года. Данное ПО представлено в виде виртуального поискового помощника, оно вызывается с помощью команды «О'кей Google». После обработки нашего голосового запроса, Google Now предоставит свои решения по данному вопросу. Приложение выдаёт информацию с учётом текущего местоположения пользователя, его личной информации и его личных предпочтений. Данный интерфейс является наиболее удобным 13 для постоянного обновления
информации, по словам самих разработчиков. 1.3. Анализ рынка программного обеспечения для голосовой биометрии На данный момент времени для рынка данные по голосовой биометрии распределяются следующим образом следующим образом: биометрия занимает 2,9% (прогнозируется рост до 4-10%) в сегменте систем ограничения доступа; голосовые биометрии занимают долю в 11% среди всех биометрий. Себестоимость рынка голосовой биометрии оценивается в $ 30-190 млн. По оценкам агентства Frost & sullivan, выручка компаний, действующих на этом сегменте биометрического рынка, к 2016 году достигнет $ 533,7 млн. Потенциальный рынок, в котором востребованы данные технологии, постоянно растет. Увеличивается число клиентов электронных платежных систем (epay, e-cash, webmoney и т.д.). Растет число корпоративных коллцентров, в которых необходима авторизация звонящего при переходе в определенное меню. Среди сотрудников увеличивается необходимость в удаленном доступе к внутренним ресурсам компании, находящихся в командировке, через vpn. Возможно использование как дополнительная ступень биометрической аутентификации при доступе к системам. Сегодня системы распознавания речи (СРР) приобретают ключевое значение в конкурентной борьбе. Каким бы ни был бизнес компании, все больше потенциальных клиентов ожидают от этого бизнеса повышенного удобства, лучшего качества и скорости обслуживания. Особенно это относится к поставщикам таких услуг, как мобильная и телефонная связь, управление своим счетом по телефону, удаленный доступ к информации, call-центры и т.д. там, где клиент взаимодействует с компанией главным образом посредством своего голоса (речи), использование таких систем является наиболее естественным. 14
Верификация/идентификация диктора – обеспечивает высокую надежность распознавания и может быть использована в устройствах «безопасной телефонии», голосовых замках, для голосового контроля доступа и во многих других приложениях. [11] Современные системы разграничения доступа. Современные СКД, использующие карты доступа, или дактилоскопические методы контроля, в большинстве своём очень громоздки и сложны. Для их внедрения необходимы большие финансовые ресурсы. Рассмотрим схематическое изображение такой системы (рис.1.3). Рис.1.3. Схема СКД со считывателем для карт доступа В основе данных систем лежит наличие у пользователя специального, программируемого идентификатора (электронная карта или ключ). СКД данного типа используют специальные 15 считыватели для данных
идентификаторов. При поднесении идентификатора к считывателю происходит процесс обмены данных типа запрос-ответ, и по результату ответа развешает, либо запрещает доступ. Недостатки данных СКД: 1) необходимость специального оборудования (контроллер СКД, преобразователь интерфейсов, считыватели для карт и сами карточки доступа); 2) необходим компьютер со специальным программным обеспечением и оператор (вахтёр, охрана); 3) слабая защита от взломов и проникновений. Биометрическая СКД схематически представлена на рис.1.4. Рис.1.4. Схема биометрической СКД 16
Достоинства данной системы заключаются в следующем: 1) вместо считывателей карт применяется микрофон, для которого не нужно использование дополнительных контроллеров и преобразователей интерфейсов (он напрямую подключается к компьютеру); 2) кнопка включения / выключения микрофона не требуется (этот процесс автоматизирован на программном уровне); 3) обеспечение высокой степени защиты от взлома и проникновений; 4) надёжность работы в любых условиях; 5) простота в интеграции и использовании, и дешевизна данной СКД. При данном подходе невозможно обойтись без контроллеров электронных замков и герконов. 1.4. Исследование предметной области (распознавание речи) Подлинность диктора связана с физиологическими и поведенческими характеристиками системы производства речи конкретного диктора. Эти характеристики извлекаются из огибающей спектра (характеристики речевого тракта) и выше-сегментных признаков (характеристики голосового источника) речи. Обычно используют краткосрочные спектральные измерения кепстральных коэффициентов и их регрессионные коэффициенты. В качестве регрессионных коэффициентов, обычно, использую коэффициенты первого и второго порядков, т.е производные временных функций кепстральных коэффициентов, извлеченные с каждого периода кадра, представляющие спектральную активность. Эти коэффициенты регрессии соответственно называются дельта кепстральные и дельта-дельта кепстральные коэффициенты. 17
Распознавание дикторов может быть разделено на идентификацию и верификацию диктора. Идентификация диктора – это процесс определения, кто из зарегистрированных дикторов произнес фразу. Верификация диктора – это процесс принятия или отклонения заявленной личности диктора. Большинство приложений, в которых используется голосовые данные подтверждают личность диктором, классифицируемым верификацией диктора. Идентификация. В задаче идентификации диктора речевое высказывание неизвестного диктора анализируется и сравнивается с речевыми моделями известных дикторов. Неизвестный диктор идентифицируется как диктор, чья модель наиболее соответствует входному высказыванию. В верификации диктора, неизвестный диктор заявляет о своей подлинности, и высказывание этого неизвестного диктора сравнивается с моделью диктора, чью подлинность он заявил. Если соответствие достаточно хорошее, т.е. выше порога, заявленная личность подтверждается. Высокое значение порога создает трудности для самозванцев быть принятыми системой, но с большим риском ложного отклонения правомерных пользователей. Низкое значение порога дает возможность правомерным пользователям быть однозначно принятыми, но с большим риском принятия самозванцев. Необходимо устанавливать порог на желаемый уровень клиентского отказа (ложный отказ) и принятия самозванца (ложный допуск), данные показывают распределение клиентов и самозванцев. Основное различие между идентификацией и верификацией – это количество альтернативных решений. В идентификации количество альтернативных решений равно размеру популяции, тогда как в верификации только два выбора: принятие или отклонение, несмотря на размер популяции. Поэтому, эффективность идентификации диктора уменьшается при увеличении размера популяции, тогда как эффективность верификации диктора приближается к постоянной, независимо от размера популяции, но распределение физических характеристик крайне важно. Существует также случай, называемый «открытый выбор» идентификации, в котором относительной модели для 18
неизвестного диктора может не существовать. В этом случае необходимо дополнительное альтернативное решение «неизвестный не соответствует ни одной модели». Верификация. Верификация может быть рассмотрена частным случаем «открытого выбора» метода идентификации, в котором известен размер популяции равный единице. В верификации или идентификации дополнительный тестовый порог может быть применен для определения близко или соответствует принятое решения, если нет, то запрашивается новое испытание. Эффективность систем верификации диктора может быть оценена с помощью ROC кривой, принятой от психифизики. Кривая ROC получена путем определения двух вероятностей. Это вероятности правильного признания (процент ложного отклонения) и вероятности неправильного признания (процент ложного признания). По вертикальной и горизонтальной осям соответственно, и различные значения порога принятия решений. Также , компромисс обнаружения ошибки кривой, в котором проценты ложного отклонения и ложного признания, определены на вертикальной и горизонтальной осях соответственно. Кривая погрешности, как правило, наносится на нормальное отклонение масштаба. Равный уровень ошибок (ERR) является общепринятой мерой эффективности системы. Это соответствует порогу, в котором процент ложного признания равен проценту ложного отклонения. [12] Тексто-зависимые и тексто-независимые. Методы распознавания диктора часто делят на тексто-зависимые (фиксированные пароли) и текстонезависимые (без специальных паролей) методы. Первые требуют от диктора предоставления ключевых слов или предложений, один и тот же текст будет использован и для обучения, и для распознавания, тогда как последние не зависят от произнесения конкретного текста. Тексто-зависимые методы обычно основаны на шаблона/модели последовательности соответствующих методов, в которых временная ось входящего речевого образца и связанных шаблонов или 19
моделей записанных дикторов выровнена, и схожесть между ними накапливается с самого начала к концу высказывания. Так как этот метод может напрямую использовать голос личности, связанный с каждой фонемой или слогом, то он обычно достигает наибольшей эффективности распознавания, чем тексто-независимый метод. Существуют различные применения, такие как судебно-экспертная экспертиза и наблюдение, в которых заранее заданные слова не могут быть изменены. Кроме того, человек может распознать дикторов, независимо от их содержания высказывания. Поэтому, тексто-независимые методы привлекают большее внимание. Другое достоинство тексто-независимого распознавания это то, что оно может быть сделано последовательно, пока не будет достигнуто желаемое значение, без неприятного повторения слов диктором снова и снова. Тексто-зависимые и тексто-независимые методы имеют серьйозные недостатки. Это то, что эти системы безопасности можно легко обойти, потому что кто-то может воспроизводить записанный голос зарегистрированного диктором выражения ключевых слов или предложений в микрофон и быть принятым как зарегистрированный пользователь. Другая проблема – это то что людям часто не нравятся тексто-зависимые системы, потому что им не нравится их идентификационный номер, такой как номер социального страхования при прослушивании других людей. Для того, чтобы справиться с этими проблемами, некоторые методы используют маленькое множество слов, таких как цифры в качестве ключевых слов, и каждому пользователю будет предложено произнести последовательность ключевых слов, которые система случайно каждый раз выбирает. Однако даже этот метод не является достаточно надежным, так как он может быть взломан современными устройствами звукозаписи, которые могут произвести ключевые слова в заданном порядке. Поэтому был предложен тексто-подсказочный метод распознавания диктора, в котором парольные предложения полностью заменяются через некоторое время. Тексто-зависимые методы распознавания дикторов делятся на методы 20
DTW (динамическое искажение времени) и HMM (скрытые марковские модели). 1.5. Анализ информационных потребностей пользователя Владельцам крупных и средних предприятий крайне необходим жёсткий контроль и отчётность, как в сфере безопасности, так и в сфере работы персонала. Биометрические системы в свою очередь удобны как для начальства, так и для подчинённых. Рассмотрим более подробно, потребности возникающие у каждой из сторон – потребности руководства: 1) стоимость внедрения СКД; 2) простота внедрения СКД (наличие спец. оборудования, турникетов, электронных замков, идентификационных карт); 3) эффективность данной СКД (пропускная способность, вероятность пропустить злоумышленника); 4) обслуживающий персонал СКД (оператор); 5) безопасность и бесперебойность СКД. Биометрические СКД, и голосовые СКД в том числе способны удовлетворить все эти потребности. Стоимость внедрения СКД с голосовой идентификацией невелика благодаря отсутствию специальных средств и оборудования, за исключением микрофона. Данную систему можно ставить как на ПК, так и на любую другую, пусть даже и самодельную систему анализа и обработки аналогового сигнала со встроенным АЦП, и контроллером микрофона и турникета: необходим только турникет. Так что простота интеграции и введения в эксплуатацию очевидна. Эффективность данной СКД бесспорна: нет необходимости в магнитных картах, которые при желании можно передать другому лицу, в результате чего , безопасность будет нарушена. В системе идёт прямое соответствие голоса конкретному пользователю, поэтому проблематично. 21 обмануть данную систему очень
Присутствие оператора не обязательно, программа создаёт учётный журнал посещения, который при необходимости можно просмотреть, но присутствие человеческого фактора всегда полезней в любой системе. Данную систему достаточно сложно взломать и вывести из строя, в отличие от систем, использующих магнитные карты – потребности работников и служащих: 1) информационная защищённость от кражи и потери документов, пропусков (злоумышленник не сможет воспользоваться вашими данными или именем); 2) нет необходимости носить с собой пропуск, магнитную карту (ваш пропуск – это ваш голос); 3) также отсутствует возможность потерять или забыть пропуск. 22
Выводы по первой главе Результаты проделанной работы: было проведено предварительное исследование рынка системы распознавания речи; сформулирована актуальность проблемы, так же была исследована предметная область системы контроля доступа, выявлены все достоинства и недостатки; рассмотрены существующие методы обработки и анализа голоса, обзор существующих ПО; выявлены информационные потребности потребителя; 23
ГЛАВА 2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ПРИЛОЖЕНИЯ ДЛЯ ГОЛОСОВОГО ДОСТУПА 2.1. Требования, предъявляемые системе В работе представлено описание программной оболочки для анализа и распознавания речевых сигналов с использованием DTW метода. Данная оболочка имеет целью создание современного, эргономичного инструмента для изучения, сравнения и анализа голосовых характеристик диктора, содержащихся в речевых сигналах, а также методов распознавания голоса, для использования их в системах разграничения и предоставления доступа. В настоящей работе на основе системы распознавания, реализованной в программной оболочке, собраны воедино и применены современные алгоритмы выделения, преобразования и сравнения акустических сигналов, требующие минимальные затраты информационных. Основной задачей систем анализа и идентификации пользователей, является контроль и разграничение доступа, а также предотвращение несанкционированного доступа к конфиденциальной информации. Кроме основных задач, перед системой могут стоять и вторичные (побочные) задачи: 1) создание архивных файлов журнала пользователей (посетителей) на случай возможных в будущем расследований инцидентов; 2) предотвращение использования работниками казённых информационных и материальных ресурсов в личных целях; 3) разграничение уровней доступа к различным ресурсам; 4) отслеживание посещаемости сотрудников, время их прихода на работу и ухода с неё. 24
2.2. Сравнение существующих ПО на мировом рынке На сегодняшний день рынок программных продуктов в области голосовой биометрии во всём мире очень беден: в России его попросту нет. Сейчас в нашей стране начали развиваться и внедряться системы, использующие дактилоскопические методы контроля и разграничения доступа. Существует лишь ряд закрытых характеристиками фирм, голоса. Все которые занимаются законченные биометрическими проекты используются спецслужбами и ФСБ, однако некоторые из более известных коммерческих проектов приведены в таблице 2.1. Таблица 2.1. Характеристики фирм, занимающихся биометрическими характеристиками голоса Выполняемые функции Анал Анализа из тор Распозн Распозн Подде Поиск голос авание голосов авание ржка по аи ой голоса языков голосу команд сред активн ы ости Компа ния Синте затор речи Испо льзо вани ев СКД Ведущие компании в области голосовых технологий GritTec + + + + – – – + SPIRIT Corp. + + + + + + – + IDEAS + – – + + + – + Компании, занимающие голосовыми технологиями в частных целях MS Agent – + – – – – + – Elan – – + – – – + – IBM ViaVoice – – – – – – + – Lernout& Haus. – – – – – – + – 25
Продолжение таблицы 2.1. Отечественные программы, использующие голосовые технологии Диктогр – – – – + – – – аф 5. Горыныч 5.0 – – – – + – – – Рассчеты производились на основании данных с сайтов [21], [22], [23]. Зарубежные разработки и программные продукты представляют больший интерес для использования их в сфере защиты информации и контроля доступа. 2.3. Требования к разрабатываемому программному обеспечению Разрабатываемое программное обеспечение главным образом должно обеспечить выполнение следующих функциональных действий: 1) анализ речевой информации с последующим предоставлением или отказом в доступе; 2) ведение (создание) архивных файлов журнала посещаемости; 3) вывод информации об анализе и статусе предоставления доступа сотруднику; 4) предоставление отчетов о работе программного обеспечения. Структура входных и выходных данных Входными данными являются: 1) голосовой массив данных (речевые сигналы); 2) словарь эталонных фраз зарегистрированных пользователей; Выходными данными являются: 1) сообщения о предоставлении или об отказе в доступе данному пользователю; 2) отчеты о работе программы. 26
Требования к надёжности Для обеспечения надежности предъявляются следующие требования: 1) программное обеспечение должно стабильно функционировать при ограниченном объеме оперативной памяти и процессорного времени; 2) сохранение информации о работе программного обеспечения в электронном виде; 3) сохранение результатов работы программного обеспечения в электронном виде. Требования к информационной программной совместимости Данное программное обеспечения должно функционировать в операционных системах Windows 2000/XP/Vista/7/8/8.1/10. 2.4. Общий алгоритм работы программного модуля голосовой идентификации пользователя В работе был произведен анализ трех основных методов обработки и анализа биометрической информации: метод построения самообучающихся нейронных сетей; метод скрытой Марковской модели; метод линейного предсказания. Изучив и сравнив эти методы, а также проанализировав возможности их реализации на программном и программно-аппаратном уровне, были выявлены сильные и слабые стороны каждого из них. В результате вышеописанного было принято решение использовать метод линейного предсказания (LPC) и условно разделить разработку алгоритма и программного модуля на два этапа. 27
Первый этап – создаётся база эталонов, так же как и в нейронных сетях. Записываются звуковые массивы данных из ключевых (эталонных) слов каждого пользователя. Далее происходит обработка этих данных и результат записывается в базу. Второй этап – идентификация пользователя путём сравнения его фразы с уже записанной эталонной фразой. В каждом из этапов присутствуют несколько программных подмодулей: VAD (Voice Activity Detector) – идентификатор голосовой активности; LSP (Linear Spectral Pair) – метод линейных спектральных пар; DTW (Dynamic Time Warping) – динамическое выравнивание по времени. [18], [19] 2.5. Алгоритм работы встроенного программного модуля определения голосовой активности (VAD) В 1993 году, в целях уменьшения средней частоты битов для хранения передачи и обработки речевых массивов данных, был разработан, так называемый, метод «подавления тишины». Смысл этого метода заключается в том, что пока микрофон (спикер) находится в состоянии тишины, запись всё равно идёт и назначаются младшие или отсутствующие биты, что увеличивает объём хранимой и обрабатываемой информации. Использование голосовым обработчиком детектора голосовой активности (VAD) может значительно сократить эти объёмы. В среднем при беседе человек говорит менее чем 40 % всего времени, оставшееся время он молчит. В процессе прерывистой передачи данных (разговора) алгоритм VAD переключает режимы микрофона с активного в неактивный когда наступает промежуток тишины, и с неактивного в активный, когда передача голоса возобновляется. Используя данную технологию, мобильные системы связи, могут увеличить системную пропускную способность, благодаря уменьшению необходимой полосы пропускания и передачи данных. Для выявления периодов 28
тишины в системах, где уровень фонового шума очень низок, может использоваться простой алгоритм обнаружения уровня голоса. Наиболее известный алгоритм VAD этого вида – G.729B VAD (Рекомендация ITU-T, 1996). В других случаях, где присутствует большой уровень шума, при использовании простого алгоритма обнаружения голоса, невозможно, различить человеческую речь, от фонового шума. В том же 1993 году был предложен улучшенный алгоритм, основанный на принципе VAD использующий средние подгруппы с приоритетом отношение сигнал-шум. Однако, его эффективность не достаточно хороша в случае с малым отношением сигнал-шум. Поэтому, возникла необходимость в более продвинутом и интеллектуальном алгоритме. В результате в 1998 году, был предложен алгоритм, основанный на статистической модели. Однако, в меняющейся с течением времени шумовой обстановке, VAD с неподвижным пороговым уровнем, неспособен следовать за колебаниями сигнала и уровня шума. Это ограничивает его эффективность в случае, когда уровень шума всё время меняется. На основе выше сказанного, было решено использовать адаптивный порог, который будет направлен, на увеличение эффективности работы алгоритма VAD, даже с меняющимся во временем отношением сигнал-шум. Именно поэтому в работе было принято решение применить статистически улученную базовую модель алгоритма VAD, использующую предварительную обработку и адаптивный пороговый уровень. [13] 2.6. Алгоритм сопоставления временных отрезков массивов данных Задачей данного алгоритма является сравнение двух различных временных отрезков акустических данных и построение кротчайшего пути. Расстояние между двумя точками x= [x1, x2,…,xn] и y =[y1, y2,…,yn] в nмерном пространстве может быть вычислено следующим образом: Dist(x, y) = |x – y| = [(x1 – y1)(x2 – y2)…]. 29
Однако, если длина x отличается от длины y, то нельзя воспользоваться вышеприведенной формулой для расчета расстояния, т.е. нужен более гибкий метод, позволяющий найти наилучший путь от элементов в x к элементам в y для вычисления расстояния. Цель Dynamic Time Warping (сокращенно DTW) найти лучший путь с минимальным расстоянием, используя DP. Метод называется «искажением времени», так как x и y представляют собой обычные вектора временной последовательности и нам нужно их сжать или, наоборот, растянуть во времени для того чтобы найти лучшую карту пути, то есть карту с минимальными расстояниями. Примеры алгоритма DTW: Пример 1. После преобразований Фурье имеем два входных вектора. vec1=[71 73 75 80 80 80 78 76 75 73 71 71 71 73 75 76 76 68 76 76 75 73 71 70 70 69 68 68 72 74 78 79 80 80 78]; vec2=[69 69 73 75 79 80 79 78 76 73 72 71 70 70 69 69 69 71 73 75 76 76 76 76 76 75 73 71 70 70 71 73 75 80 80 80 78]; Эти вектора содержат коэффициенты дискретного преобразования Фурье [minDist, dtwPath, dtwTable] = dtw1(vec1; vec2); dtwPlot(vec1, vec2, dtwPath); Здесь было использовано ограничение D (i-2; j-1), D (i-1; j-1), D (i-1; j-2), то есть переходы только под углами 27, 45 и 63 градуса (рис.2.9). Благодаря этому ограничению выброс в vec1 пропущен. 30
Рис.2.9. Матрица D для векторов vec1 и vec2 со всеми узлами и ограничением (27, 45, 63) Пример 2. Те же вектора vec1 и vec2, но с другими локальными ограничениями. Здесь мы использовали другое ограничение, то есть переходы только под углами 0, 45 и 90 градуса (рис.2.10). Благодаря этому ограничению выброс в vec1 не может быть пропущен. 31
Рис. 2.10. Матрица D со всеми узлами и ограничением (0, 45, 90) Здесь получена результирующая картина соответствия точек выровненных векторов при использовании DTW с разными граничными условиями. 2.7. Выбор платформы проектирования и его обоснование Для разработки современных программных модулей (корпоративных приложений) применяются языки программирования Java (платформа J2EE), Delphi7, С++ и C# (платформа Microsoft .Net). Компилятор языка Java и Delphi7 является свободно распространяемым, в отличии от языка C# и С++, что говорит в пользу выбора языка программирования для написания автоматизированной системы управления доступом к ресурсам сетевой информационной среды. Однако они не обладают компонентной системой модели создания приложений (как и С#) и имеют сложную структуру подключения и управления внешними данными. 32
Рассмотрим основные преимущества и недостатки реализующих платформ выбранных языков программирования. Java 2 Platform, взаимодействующих разработанных Edition Java-технологий, фирмой представляющих Enterprise «Sun стандарт (J2EE) базирующихся Microsystems» разработки – на это комплекс спецификациях, (http://java.sun.com/j2ee), серверных приложений уровня предприятия. Платформа J2EE – это стандартная платформа для реализации приложений J2EE. Стандарты J2EE характеризуют следующие важные моменты: независимость от платформы; простота разработки приложения уровня предприятия на основе компонентных технологий; переносимость и расширяемость; поддержка многопользовательского режима; возможность разработки распределенных приложений; возможность интеграции с другими платформами; Возможность интеграции с существующими корпоративными информационными системами; обеспечение надежной защиты информации; интернет-ориентированный стандарт. Недостатком платформы J2EE является поддержка только одного языка программирования – Java. Таким образом, платформа Java 2 Platform, Enterprise Edition удовлетворяет высоким требованиям современных, интернет-ориентированных корпоративных систем. J2EE предоставляет многоуровневую и многосвязную архитектуру приложений. Она основанна на компонентной организации и дает в руки разработчиков набор необходимых интерфейсов. [7] Delphi 7 (Object Pascal) – представляет собой комбинацию важных 33
технологий: высокая производительность компилятора в машинный код; объектно-ориентированная модель компонент; возможность визуального построения приложений из программных прототипов; широкий спектр масштабируемых средств для построения баз данных. Модель в Delphi ориентирована в первую очередь на то, чтобы максимально производительно использовать код. Конечно, это позволяет очень быстро разрабатывать приложения, так как уже существуют заранее подготовленные объекты. А так же вы можете создавать свои собственные объекты, без каких-либо ограничений. Язык Delphi – строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. В стандартную поставку Delphi входят основные объекты из 270 базовых классов. На этом языке очень удобно писать, как приложения к базам данных, так даже и игровые программы. Microsoft’s .Net является разработкой фирмы «Microsoft». Эта технология предлагает среду с поддержкой полнофункционального языка программирования. Платформа Microsoft’s .Net характеризуется следующими особенностями: явная зависимость от платформы (приложения Microsoft’s .Net рассчитаны только на работу под операционной системой Windows); поддержка нескольких языков программирования, в том числе объектноориентированных; простота процесса интеграции с другими платформами. Но интеграция возможна только под операционной системой Windows; поддержка многопользовательского режима осуществляется программно; поддержка различных версий 34 HTML, что дает возможность
формирования HTML-страниц различных форматов; упрощение взаимодействия с прикладным программным интерфейсом (API) Windows. В целом платформы J2EE и Microsoft’s .Net очень похожи, похожи и сами языки программирования Java и C#. Выбор технологии. Исходя из того, что технология Microsoft .NET позволяет поддерживать многопользовательский режим, позволяет поддерживать несколько языков программирования и обеспечивает надежную защиту информации, для реализации автоматизированной системы управления доступом к ресурсам как локальной, так и сетевой информационной среды, была выбрана именно она (таблица 2.2). Таблица 2.2. Языки программирования ПРОГРАММНЫЕ СРЕДСТВА Характеристики Язык Принцип работы кода Visual C++ Delphi 7 C++ Visual Studio.NET Pascal C# компилятор компилятор компилятор Каркасная Компонентная Компонентная Модель создания приложений 35
Редактор классов, Технология редактор ресурсов (draf-and-drop) Обработка исключений Опыт использования Редактор Редактор объектов (drag-and-drop) объектов (drag-and-drop) Объект Объект Объект + – + Исследования производились на основании основании данных с сайтов [24], [25]. Платформа Microsoft Visual Studio C++ 2008 Express Edition – специально предназначена для создания приложений уровня предприятия и представляет собой общепризнанный унифицированный стандарт для разработки распределенных систем. 2.8. Проектирование базы данных Проектирование БД Проектирование БД включает в себя ряд задач, таких как обеспечение хранения в БД всей необходимой информации. А также обеспечение возможности получения данных по всем необходимым запросам и сокращение избыточности и дублирования данных. Для БД необходимо обеспечить целостности базы данных. Создание инфологической модели предметной области Инфологическое проектирование заключает в себе построение семантической модели предметной области, то есть информационной модели наиболее высокого уровня абстракции. Такая модель создаётся без ориентации на какую-либо конкретную СУБД и модель данных. Термины «семантическая 36
модель», «концептуальная модель» и «инфологическая модель» являются синонимами. Кроме того, в этом контексте равноправно могут использоваться слова «модель базы данных» и «модель предметной области» (например, «концептуальная модель базы данных» и «концептуальная модель предметной области»), поскольку такая модель является как образом реальности, так и образом проектируемой базы данных для этой реальности. Создание даталогической модели базы данных Под даталогической моделью базы данных (БД) понимается модель, отражающая логические взаимосвязи между элементами данных безотносительно их содержания и физической организации. При этом даталогическая модель разрабатывается с учётом конкретной реализации системы управления базой данных (СУБД), также с учётом специфики конкретной предметной области на основе ее инфологической модели СУБД. Для разработки базы данных была выбрана СУБД MySQL. Ниже а таблице 2.3 приведено сравнение распространенных СУБД. Таблица 2.3. Сравнение СУБД Характеристика MySQL Firebird СУБД InterBase 75648,16 79055,72 50793,65 69930,21 Да Нет Нет Нет Oracle Производительность (количество обработанных строк/час)* Наличие установленной СУБД на предприятии 37
Поддержка объёма Ограничен Ограничен Теоретически До 1048510 информации, объёмом объёмом хранящейся в базе физической физической данных Опыт разработчика памяти Да 140 Тб Тб памяти Да Нет Нет Да Нет Да Нет Да Да Нет Нет Параллельная обработку оперативных и аналитических запросов Усиленная безопасность (меньше уязвимостей) Исследования производились на основании основании данных с сайтов [26], [27], [28], [29]. Требования, предъявляемые к системе, полностью можно было реализовать с помощью СУБД MySQL. Она обеспечивает достаточно большое быстродействие на отдельном компьютере и в пределах небольшой локальной сети, а также является бесплатной для использования. Проектирование базы данных База данных – это поименованная совокупность взаимосвязанных данных, находящихся под управлением СУБД. Ядром любой базы данных является модель данных, которая представляет собой структуру данных, соглашения о способах их представления и операций манипулирования ими. Иными словами, это формализованное описание объектов предметной области и взаимосвязей между ними. Различают три основных типа моделей данных: иерархическую, сетевую и реляционную. 38
Наиболее удобным и для пользователя, и для компьютера является представление данных в виде двумерной таблицы - большинство современных информационных систем работает именно с такими таблицами. Базы данных, которые состоят из двумерных таблиц, называются реляционными, (поанглийски «relation» - отношение). Основная идея реляционного подхода состоит в том, чтобы представить произвольную структуру данных в виде простой двумерной таблицы. Реляционная база данных – это совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Однако пользователи могут воспринимать такую базу данных как совокупность таблиц. В основе реляционной модели данных лежит идея о том, что любой набор данных можно представить в виде двумерной таблицы. Простейшая реляционная база данных может состоять из единственной таблицы, в которой будут храниться все необходимые данные. Однако на практике реляционная база данных обычно состоит из множества таблиц, связанных по определенным критериям. Реляционная модель данных отличается простотой структуры данных, удобным для пользователя табличным представлением и возможностью применения формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Наименьшая единица данных реляционной модели – это отдельное атомарное (неразложимое) для данной модели значение данных. Так, в одной предметной области фамилия, имя и отчество могут рассматриваться как единое значение, а в другой – как три различных значения. Процесс проектирования является достаточно сложной задачей. Можно выделить следующие этапы проектирования: 1. Системный анализ и словесное описание информационных объектов предметной области и выявление требований конечных пользователей и решаемых задач. 39
2. Проектирование инфологической модели предметной области – т.е. создание частично формализованного описания объектов предметной области в терминах некоторой семантической модели. 3. Даталогическое проектирование БД, то есть описание БД в терминах выбранной СУБД, на конкретном диалекте языка SQL. 4. Физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения. Структура процесса проектирования представлена на рис. 2.13. Системный анализ предметной области (часть реального мира, отражаемая в БД) Инфологическое проектирование (описание предметной области) Даталогическое Проектирование Физическое проектирование (описание хранимых данных) Рис.2.13. Этапы проектирования БД Описание объектов и их свойств Для проектирования структуры БД необходимо иметь исходную информацию желательно в формализованном виде. Формализованным видом представления информации является инфологическая модель. Инфологическая модель (ИЛМ) предметной области – это описание 40
информационных аспектов предметной области, выполненное с помощью специальных языковых средств, не зависящее в дальнейшем от выбранных средств разработки. В инфологической модели организуются лингвистические отношения обусловленные особенностями отображения предметной области в языковой среде. Лингвистические отношения могут иметь форму толкового словаря, в котором содержится толкование тех терминов и понятий, которые используются при описании предметной области. В инфологической модели должны быть отражены алгоритмические зависимости, которые характеризуют объекты предметной области. Фиксируются также алгоритмы и формулы, по которым рассчитываются значения зависимых показателей. Сущность – реальный или воображаемый объект, имеющий существенное значение для рассматриваемой предметной области. Каждая сущность должна обладать: уникальным идентификатором (имя эталона); одним или несколькими атрибутами, которые либо принадлежать сущности, либо наследуются через связь; одним или несколькими атрибутами, которые однозначно идентифицируют каждый экземпляр сущности; Связь – поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области. Атрибут – любая характеристика сущности, значимая для рассматриваемой предметной области и предназначенная для квалификации, идентификации, классификации, количественной выражения состояния эталона. 41 характеристики или
2.9. Иерархия форм и интерфейс программы Несмотря на сложность алгоритмов обработки сигналов и объемность программного кода, данный программный модуль имеет всего две основных формы графического интерфейса. Одна из них (MainForm) выполняет роль главного окна, на котором собраны все элементы управления данными. Вторая форма – форма AbotBox, хранящая в себе информацию о версии продукта, дате создания и о самом разработчике. Так же в работе программного модуля голосовой идентификации используются обработчики исключений и стандартные оконные формы MassageBox. Интерфейс главного окна показан на рис. 2.14. Рис. 2.14. Главное окно программного модуля голосовой идентификации пользователя Выводы по второй главе Результаты проделанной работы: исследована предметная область и проведен сравнительный анализ систем контроля доступа, выявлены основные преимущества СКД, основанной 42
на биометрических показаниях; определен состав функций, выполняемых разрабатываемым программным модулем; определены требования, предъявляемые к программному модулю; в качестве среды для разработки выбрана среда разработки Visual C++; выбраны методы построения модели фона (шума), выделения и обработка голоса, сегментации голосовых массивов, анализ и сравнение их с эталонами. Так же для данных методов были разработаны алгоритмы реализации; была разработана методика испытаний, и проведены все необходимые тесты ГЛАВА 3. РЕКОМЕНДАЦИИ ПО ЭКСПЛУАТАЦИИ И ТЕСТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ Одним из самых сложных и трудоемких этапов технологического 43
процесса разработки программ является их тестирование и отладка. Как известно, при создании типичного программного проекта около 50 % общего времени и более 50 % общей стоимости расходуется на проверку (тестирование) разрабатываемой системы и ее отладку. На разных этапах жизненного цикла программного обеспечения для каждой части программного модуля ставятся свои цели при тестировании для которых можно применить определенные виды тестирования. Каждый вид тестирования имеет специальное назначение для выявления ошибок определенного типа. Под понятием тестирование следует понимать, что это процесс исполнения программы с целью обнаружения ошибки, в качестве которой принимается любое отклонение от эталона. Хорошим считается тест, который имеет высокую вероятность обнаружения еще не выявленной ошибки. Под отладкой понимается процесс, позволяющий получить программу, функционирующую с требуемыми характеристиками в заданной области входных данных. Таким образом, в результате отладки программа должна соответствовать некоторой фиксированной совокупности правил и показателей качества, принимаемой за эталонную для данной программы. При этом будут рассматриваться следующие виды тестирования: Модульное – проверка корректности структуры модулей и их основных конструктивных компонент (циклов, блоков, разветвлений), функций и данных (входных и выходных); Интеграционное – проверка корректности управляющих и информационных связей между модулями. При проведении интеграционного тестирования важным является порядок сбора модулей в единую программу. Существует два основных подхода к комбинированию модулей: Пошаговое – каждый модуль подключается к набору ранее оттестированных модулей (сверху вниз или снизу вверх); Монолитное – все модули одновременно объединяются в программу; 44
Системное – проверка соответствия, интегрированной в единое целое программной системы, спецификациям с учетом среды и режима выполнения. Модульное и интеграционное тестирование основано на структурных методах (принцип белого ящика). При применении этих методов существенно используются знания о структуре программы вне зависимости от того, является ли она отдельным модулем или группой модулей. При структурном тестировании программы всегда и существует критерий модель, проведения отражающая тестирования, логику причем работы количество необходимых тестов при этом ограничено. При проведении системного тестирования используется методология функционального тестирования (принцип «черного ящика»), в которой для построения тестов не используется информация о структуре программы, а используются ее функциональные спецификации. При функциональном тестировании средних и больших программных проектов трудно предложить правила, ограничивающие необходимый объем тестирования, т. к. системное тестирование включает в себя множество категорий тестов, в том числе тесты для проверки: функциональности программы; работы на предельных объемах; работы на предельных нагрузках; удобства эксплуатации программы; защиты от несанкционированного доступа; производительности; требований к памяти; конфигураций оборудования; совместимости; удобства инсталляции; надежности; восстановления при сбоях; документации на программу. [18] 3.1. Рекомендации по использованию программного приложения Назначение и условия применения программного модуля. Программный модуль голосовой идентификации 45 пользователя предназначен для
автоматизации процесса контроля доступа путём идентификации пользователя по его голосовым характеристикам. Данный программный модуль является частью системы активного контроля и разграничения доступа. Состав выполняемых функций. Программный модуль голосовой идентификации пользователя выполняет следующие функции: сегментация массива акустических данных; выделение кадров с голосом; подавление шумов с применением адаптивного порога чувствительности; обработка голоса с применением фильтров и ограничений; создание вектора изменения амплитудно-частотной характеристики цифрового сигнала голоса методом дискретное преобразование Фурье; сопоставление по времени два голосовых отрезка; расчёт дополнительных параметров сравнения векторов. Требования к временным и качественным характеристикам. При обработке и анализе аудиопотока в режиме реального времени, одной из важнейших характеристик программы является скорость ее работы. Это обусловлено тем, что потеря данных вследствие недостаточно быстрой работы, может значительно искажать результаты выполнения основных функций, тем самым уменьшая достоверность выявленной при анализе информации, и приводить к некорректной работе системы идентификации пользователя. Так же необходима высокая чувствительность микрофонов для работы вне помещений и в зашумлённой среде. От чувствительности микрофонов зависит интенсивность и чёткость звукового сигнала, что позволит максимально достоверно провести анализ голоса и идентификацию пользователя. Таким образом, к быстродействию программного модуля голосовой идентификации пользователя предъявляются особые требования Программный модуль должен обеспечивать потоковую обработку данных, поступающих на компьютер одновременно с шести и более микрофонов. При 46
этом качество звука по возможности должно быть максимальным, чтобы сократить потери и время обработки данных. Требования к надежности. Так как система голосовой идентификации пользователя работает непрерывно в течении долгого промежутка времени, например, несколько недель или месяцев, ко всем ее компонентам предъявляются особые требования надежности. Программный модуль должен обеспечивать непрерывную, постоянную работу системы, быть доступным в любой момент времени. Недопустимы сбои в его работе, критические ошибки и аварийные выходы, должны быть предусмотрены пути восстановления нормального режима работы при некорректных входных данных. Особое внимание при реализации стоит уделить освобождению динамически выделяемой памяти, недопустимы даже малейшие ее утечки, которые при долгой работе неизбежно приведут к критической ошибке и аварийному выходу. К параметрам входных данных требований не предъявляется, его будет осуществлять управляющая подсистема. Входные данные контролируются только на уровне поступивших команд, и в случае неправильной команды должен быть предусмотрен путь восстановления нормального режима работы, как обозначено выше. Требования к составу и параметрам тенических средств. К техническим средствам, предъявляются следующие требования: частота системного процессора должна быть не меньше 1 ГГц; объем установленной оперативной памяти (RAM) не меньше 256 МБ; объём памяти жёсткого диска (HDD) не менее 8 ГБ Характеристика идентификации программы. пользователя Программный предоставляет полный модуль набор голосовой функций необходимый для осуществления автоматического контроля доступа. Он способен обрабатывать аудиоинформацию, поступающую более чем с шести 47
микрофонов повышенной чувствительности. Обращение к программному модулю. Обращение к программному модулю голосовой идентификации пользователя на этапе обучения осуществляется управлением оператора с помощью элементов управления главной формы. При автономной работе управление осуществляется при помощи микрофона. При переходе микрофона в активный режим начинается запись голоса. При переходе микрофона в статический режим происходит обработка полученного массива данных и вывод сообщения о предоставлении доступа. Входные и выходные данные. Входными данными для программного модуля голосовой идентификации пользователя, являются звуковые данные поступающие с микрофона. Длина одного отрезка данных составляет 4 секунды. Аналоговый сигнал преобразуется в цифровой и данный отрезок фрагментируется на равные кадры размером 256 бит. Это наиболее удобный размер звукового кадра для его обработки. Промежуточными выходными данными являются: выделенные кадры с голосом; направляющий вектор изменения амплитудно-частотной характеристики цифрового сигнала голоса; уровень адаптивного порога чувствительности; коэффициент пренебрежения; результат сравнения кротчайших путей двух векторов Рис. В таблице 3.1 приведен перечень элементов управления программным модулем глосовой идентификации пользователя, а так же структура соответствующих им сообщений: Таблица 3.1. Набор команд и формат сообщений 48
Элемент управления Button_Trainin g (Кнопка тренировки) Функция Описание Сообщения при ошибке При нажатии на (Massage_Box) Голос не обнаружен, Переход в кнопку программа повторите попытку режим запишет 1 эталон обучения для выбранного пользователя Зелёный: эталон Цвет меняется в успешно записан и Индикатор Цвет зелёный зависимости от USERS или красный результата записи добавлен в базу Красный: произошла эталона ошибка записи при List_Box Отображает ошибке Пользователи (Список пользователей отсутствуют, добавьте эталонов) системы свою запись Edit_Box (Текстовое поле) Поле для регистрации нового пользователя Вводите имя и фамилию пользователя и нажимаете кнопку «OK» Недопустимый символ, Кнопка Button_OK регистрации нового пользователя После ввода имени и фамилии в поле регистрации нажать кнопку «OK» введите данные заново Слишком длинное имя, введите данные заново (максимум 50 символов) Поле пусто, введите данные Lable Индикатор Показывает коли- (Неактивное эталонов чество записанных текстовое эталонов для 49
Элемент управления Функция Описание Сообщения при ошибке (Massage_Box) каждого пользо- поле) вателя (1 до 10) При нажатии Button_ Identification (Кнопка идентификаци Запускает подпрограммы происходит запись, обработка и Доступ разрешён Доступ запрещён Нет совпадений сравнение голоса с и) Button_Recog эталонами Меняет режим Неверный формат nition получения данных файла (Кнопка Смена режимов с микрофона на переключения режим «открыть из ) файла» 3.2. Тестирование и отладка программного модуля 3.2.1. Особенности тестирования программных продуктов Основными особенностями, программ, как объектов тестирования, являются: отсутствует определение понятия эталона и его параметров, по которому должны оцениваться результаты тестированияпрограммного модуля; высокая сложность программных модулей и отсутствие возможности построения тестовых наборов; низкая степень критерия качества процесса тестирования; наличие в программных модулях вычислительных компонентов и также компонентов, которые характеризуются динамическим и стохастическим поведением. Экспериментально установлено, что даже если проведено тщательное 50
тестирование, в любом программном модуле, в процессе использования, неисключено обнаружение ошибок. Из выше сказанного можно сделать вывод: невозможно провести всеобъемлющее тестирование и гарантировать устранение всех ошибок в сложных программных продуктах. Поэтому тестирование проводится в минимальных объемах, которые необходимы, для проверки программного модуля и условий функционирования. Ограниченность в ресурсах тестирования приводит к необходимости упорядочения всех методов тестирования. 3.2.2. Различные подходы к тестированию Процесс тестирования программных продуктов обычно включает: создание эталонов, которым должен соответствовать программный модуль, по своим характеристикам, показателям; тестирование разработанного программного продукта и вывод результата проводимого тестирования; диагностика и локализация причин отклонения результатов проводимого теста, от заданного эталонного значения и правил; ведение работ, по модернизации программного модуля, с целью приближения к эталону; реализация корректировки программного модуля, с целью обеспечения соответствия программного модуля заданному эталону. Традиционно используются два основных метода тестирования: по методу «Черного ящика» и по методу «Белого ящика». Метод «Черный ящик». Тестирование по методу «Черного ящика» предполагает отсутствие у тестирующей стороны каких-либо специальных знаний о составе и принципах работы тестируемого продукта. Используемые методы тестирования эмулируют действия потенциальных злоумышленников, пытающихся взломать систему защиты. 51
Метод «Белый ящик». Метод «белого ящика» предполагает составление программы тестирования на основании практически полного знания о тестируемом продукте (о его структуре, конфигурации, алгоритмов работы и т.д.). В ходе тестирования проверяется наличие и работоспособность механизмов безопасности, соответствие состава и конфигурации системы защиты требованиям безопасности и существующим. Выводы о наличии уязвимостей делаются на основании анализа исходных текстов, технической и пользовательской документации, настроек конфигурации, а затем проверяются на практике. Внимательное изучение этих методов тестирования показывает, что они дополняют друг друга, то есть различные методы находят разные ошибки. Поэтому наиболее эффективные процессы разработки ПО используют некоторую комбинацию методик «Черного ящика» и «Белого ящика». [18] 3.3. Способы тестирования и виды тестов Существует следующие основные способы тестирования: алгоритмическое, аналитическое и содержательное. Алгоритмическое тестирование служит разработчику для контролирования таких этапов как: алгоритмезация, прогроммирования. Разработчики создают тесты, параллельно готовят эталонные результаты на этапе алгоритмизации, далее используют их на следующем этапе отладке. Функциональное или аналитическое тестирование предназначено для контроля выбранного метода решения задачи. Тесты разрабатывают после выбора метода, а используются на заключительном этапе отладки. Содержательное корректности тестирование поставленной задачи. предназначено Для контроля для проверки используются, статистические характеристики программы и качественные оценки и т.п. При проведении данного тестирования, активное участие принимают заказчики или 52
идущие пользователи программы. Содержательные и аналитические тесты проектируются, в целом, для проверки правильности работы программы или составных частей, в то время как алгоритмические тесты, ориентированы для проверки работы отдельных блоков или операторов программного модуля. Основные типы тестов программного обеспечения. 1. Вырожденный тест - касается работы программного модуля поверхностно. Как правило, тест служит, для проверки выполнения внешних функций программного модуля. 2. Тест граничных значений - проверка работы программного модуля для граничных значений параметров, определяющих вычислительный процесс. 3. Аварийный тест - проверка реакции программного модуля, на возможность выхода из строя программы, в частности, вызванных неверно указанными исходными данными. Кроме автономных тестов, предназначенных для контроля отдельных блоков программы, существуют стыковочные и комплексные тесты: 1. Стыковочные тесты - предназначены для проверки взаимосвязи уже готовых частей программного модуля; 2. Комплексные тесты проверяют правильность работы всего прошраммного модуля или большинства частей. Переход к большим программам требует выского уровня подгтовки со стороны специалистов. Тестирование модулей представляет собой процесс тестирования отдельных подпрограмм или процедур программы. Иными словами, для тестирования программного модуля в целом, сначала следует провести тестирование отдельных его частей. 53
3.4. Подготовка к тестированию 3.4.1. Тестирование главной формы Главная форма предоставляет возможность оператору выбрать действия, которые он собирается совершать в системе: регистрация нового пользователя, вход в систему, обучение системы. Оператор возможность работать со списком пользователей: добавлять новых, удалять существующих. Оператор может напрямую работать с пользователями (сотрудниками), обучать систему и записывать эталоны с их речи. Так же существует возможность сохранять аудиозаписи и обучать систему по ним. Ошибки в работе данной формы выявляются путем сопоставления элемента управления и выполняемой функции. 3.4.2. Тестирование остальных классов Тестирование остальных классов происходит в процессе тестирования основной формы, так как из неё происходит вызов методов, определенных в других классах. 3.4.3. Тестирование дополнительных программных модулей К дополнительным подпрограммам относятся модуль голосовой идентификации пользователя (VAD), и модуль выравнивания и сопоставления звуковых отрезков данных по времени (DTW). Эти подпрограммы тестировались отдельно на этапе эскизного проектирования. Данные модули 54
включают в себя совокупность всех вышеописанных методов идентификации голоса. На первом этапе тестировалось разложение звукового сигнала методом дискретного преобразования Фурье и представление его в векторном виде. На втором этапе тестировался модуль DTW. На последнем чувствительности. использованием этапе Для тестировался этого различных было методов модуль написано адаптивного несколько определения порога программ порога, и при с их тестировании результаты сравнивались друг с другом для нахождения оптимального условия, удовлетворяющее требованиям ТЗ. 3.5. Результаты тестирования Переход к большим программам требует специальных способов структурирования процесса тестирования. Тестирование модулей (или блоков) представляет собой процесс тестирования отдельных подпрограмм или процедур программы. Здесь подразумевается, что прежде чем начинать тестирование программы в целом, следует протестировать отдельные небольшие модули, образующие эту программу. В результате выпускной работы были разработаны тесты: 1) Методом «черного ящика» для каждой функции. 2) Методом «белого ящика»: условный переход в каждом направлении При отладке программного модуля голосовой идентификации пользователя использовался стандартный встроенный отладчик Microsoft’s C++ (рис.3.1). 55
Рис.3.1. Отладчик в среде разработки Microsoft Visual Studio .NET Так же были проведены испытания программного модуля голосовой идентификации пользователя. При испытании для каждого человека записывалось от 1 до 10 эталонов. Во всех случаях не было выявлено ни одной ошибки ложного вызова и ни одной ошибки идентификации. Программный модуль продемонстрировал высокий уровень надёжности, защиты и 100% результат верной идентификации пользователя. 56
3.6. Экономический эффект 3.6.1. Расчет затрат на разработку программного модуля П k =13265 команд . Длительность 3 разработки программного продукта составляет 3 t p =0,08 √ П k =0,08 √ 13265=1,9 года . В году 250 рабочих дней, тогда производительность труда будет П 13256 k составлять P= t ∙ 250 = 1,9 ∙ 250 =27,926 человек/ команд в день. p Предполагаемое время эксплуатации данного программного продукта составляет t э = 10 лет. Затраты на разработку программного продукта определяются следующим выражением K 1 p= Пk ∙ П ij Cij . P Далее следует определить затраты на разработку программного модуля по формуле указанной выше: K 1 p= Пk1 ∙ П ij Сij =108,16 P Чтобы вычислить затраты на разработку [чел/ день]. K1 p в рублях, необходимо полученную величину умножить на: Количество специалистов, принявших участие в разработке S=1 человек; Среднедневную заработную плату на одного сотрудника S g =893,333 рубля. Также следует прибавить накладные расходы, включающие в себя: хозяйственные нужды (300 рублей); почтовые и транспортные расходы (200 рублей); приобретение специальной литературы (4150 рублей); амортизацию (1000 рублей). Окончательно получаем: K 1 p=108,16 ∙1 ∙ 839,333+300+200+ 4150+1000=102272 рубля . 57
Стоимость машинного времени составляет a=7 рублей в час. Затраты на ЭВМ составляют K 4 p =a t p ∙ 250∙ ТДН =7 ∙1,9 ∙ 250 ∙7=23275 рублей , где ТДН – количество машинного времени, затраченного в день. ТДН = 7 часов. K2 p Затраты на изготовление опытного образца ПП определяются необходимостью обеспечить отчуждение всего комплекса программ от его первичных непосредственных разработчиков. Удельный вес этих затрат находится в пределах 10 - 15 % от общих затрат на разработку программного продукта K 1 p : K 2 p=10227 рублей. Суммарные затраты на разработку данного программного продукта составляют: K p=K 1 p + K 2 p + K 4 p=102272+10227+23275=135774 рублей. 3.6.2. Определение стоимости программного модуля Затраты на разработку программного продукта «голосовой идентификации пользователя» составляют 135774 рублей, т.е. себестоимость C = 251000. Рассчитаем договорную цену Ц данной разработки: Ц=С + П , П - прибыль. Прибыль составляет 30% от себестоимости: П=0,3 ∙ 251000=75300 рублей. Таким образом, Ц=251000+75300=326300 получаем, что цена программного модуля: рублей. При расчете договорной цены в общую стоимость закладывается сумма налога на добавленную стоимость, равного 20 % от оптовой цены. Цена продажи Ц пр данной работы с учетом НДС составляет: Ц пр=Ц +0,2 ∙ Ц =326300+65260=391560 рублей. Экономическая эффективность у разработчика ПП: 58
E= Ц ∙Nc Доход = =2,4 Затраты Kp Данный коэффициент показывает экономическую обоснованность разработки программы. Рентабельность= Прибыль 75300 ∙ 100 = ∙100 =30 Затраты 251000 Выводы по третий главе Программный модуль идентификации пользователя по голосу был успешно протестирован и отлажен, ошибки обнаружены и исправлены. 59
Проводилось ролевое тестирование программного модуля с привлечением большого количества пользователей различного уровня подготовки. Сбоев в работе программного модуля выявлено не было. Экономический эффект: рентабельность разрабатываемого программного продукта составила 30%. ЗАКЛЮЧЕНИЕ В результате выполнения выпускной квалификационной работы был разработан программный модуль голосовой идентификации пользователя, удовлетворяющий всем требованиям утвержденного технического задания. 60
Программный модуль выполняет следующие основные функции: оцифровка аналогового голосового сигнала; запись эталонных акустических данных; дискретное преобразование Фурье для акустических массивов данных; спектральный анализ голоса; выделение голоса из зашумлённой речи; определение динамического порога чувствительности; обработка и фильтрация голоса; построение матрицы тождественности для двух массивов; выравнивание и сравнение двух массивов данных по времени; идентификация пользователя. При выполнении выпускной работы была исследована предметная область. Так же, при разработке программного модуля была изучена архитектура программного обеспечения систем SPIRIT Corp., GridTec и других. Исходный код программного модуля голосовой идентификации пользователя написан на языке программирования C++. В качестве среды разработки программного модуля использовалась среда Microsoft Visual C++ 2008 Express Edition. При отладке и тестировании программного модуля использовались следующие методы и средства: встроенный отладчик среды разработки среда Microsoft Visual C++; вывод отладочных сообщений или их запись в файл; специальные отладочные модули, для тестирования функций голосового анализа при различных шумовых средах, выделения оптимального адаптивного порога, сегментирования голосовых массивов и поиска кротчайшего пути; тесты, для оценки быстродействия функций обработки кадров. Результаты испытаний показали, что программный модуль удовлетворяет всем требованиям технического задания. Таким образом, программный модуль голосовой идентификации пользователя полностью реализован и соответствует требованиям технического задания и выполняет все заданные функции. 61
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Межгосударственный стандарт 2.104-68 конструкторской документации. Основные надписи. 62 единой системы
2. Межгосударственный стандарт 2.105-95 единой системы конструкторской документации. Общие требования к текстовым документам. 3. Межгосударственный стандарт 2.106-68 единой системы единой системы конструкторской документации. Текстовые документы. 4. Межгосударственный стандарт 2.316-68 конструкторской документации. Правила нанесения на чертежах надписей, технических требований и таблиц. 5. Межгосударственный программной документации. стандарт Требования 19.106-78 к единой программным системы документам, выполняемым печатным способом. 6. Межгосударственный стандарт 19.701-90 (ИСО 5807-85). Схемы алгоритмов, программ, данных и систем. 7. Брайан У. Керниган, Деннис М. Ритчи. Язык программирования C/ Брайан У. Керниган, Деннис М. Ритчи. – М.: Форум, 2015. – 304 с. 8. Бьерн Страуструп. Язык программирования С++: учебное пособие / Страуструп Бьерн. – М.: Бином, 2011. – 1136 с. 9. Герберт Шилдт. Полный справочник по С. 4-е / Шилдт Герберт. – М.: «Вильямс», 2002. – 704 с.: ил. 10. Казарин С.А., Клишин А.П. Среда разработки Java-приложений Eclipse: (ПО для объектно-ориентированного программирования и разработки приложений на языке Java): учебное пособие / С.А Казарин, А.П. Клишин. – М.: Форум, 2008. — 77 с. 11. Колдаев В.Д. Основы алгоритмизации и программирования: учебное пособие/ В.Д. Колдаев. – М.: Форум, 2014. – 426 с. 12. Литвиненко Н.А. Технология программирования на С++/ Н.А. Литвиненко. – СПБ.:БХВ – Петербург, 2012. – 288 с. 13. Мартынович, П.А., Свириденко, В.А.. Система верификации диктора для его надежного распознавания через телефонную сеть / П.А. Мартынович, В.А. Свириденко // - М.: Известия вузов, 2016. - с.211-216. 63
14. Свириденко В.А. Речевые технологии в биометрике: верификация и идентификация диктора / В.А. Свириденко // Доклад на конференции «Биометрия-2002» //- М.: 2002. 15. Сергиенко А.Б. Цифровая обработка сигналов: учебное пособие/ А.Б. Сергиенко. –М.: Форум, 2005. – 606 с. 16. Секунов Н.В. Программированиена С++: учебное пособие/ Н.В. Секунов. – М.: Форум, 2011. – 368 с. 17. Секунов Н.В. Обработка звука:учебное пособие/ Н.В. Секунов.М.:Форум, 2001. – 296 с. 18. Сирыч, А.В., Стецюк, Л.В. Цифровая обработка сигналов. Технологии анализа голоса / А.В Сирыч, Л.В. Стецюк // Научно-технический журнал «CHIP NEWS».№3(101), 2009. – c.31-34. 19. С. Макконнел. Совершенный код. Практическое руководство по разработке программного обеспечения / C. Макконнел. – СПб: «Питер», 2005. – 897с. 20. Чесебиев И.А. Компьютерное распознавание и порождение речи: учебное пособие/ И.А. Чесебиев. – М.: Форум, 2008. - 128 с. 21. Deller J.R., Jr., Proakis J.G., Hansen J.H.L. Discrete-Time Processing of Speech Signals / J.R. Deller, J.G. Proakis, J. Hansen. - N.J.: Prentice Hall, 1993. 800 с. 22. Pandit, M., Kitter, J. Алгоритм DTW сопоставления аременных отрезков массивов данных / M. Pandit, J. Kitter // Feature selection for DTW-based speaker verification - N.Y.: ICASSP, 1998. - с.769-772. 23. Delphiseven: Официальный сайт [Электронный ресурс]/ delphiseven. – 1995 - 2016. – Электрон. дан. – Режим доступа: http://www.delphiseven.ru (дата обращения: 12.04.2016). 64
24. Embarcadero: Официальный сайт [Электронный ресурс]/ embarcadero. – 2001 - 2016. – Электрон. дан. – Режим доступа: https://www.embarcadero.com (дата обращения: 12.04.2016). 25. Firebirdsql: Официальный сайт [Электронный ресурс]/ firebirdsql. – 2006 - 2016. – Электрон. дан. – Режим доступа: http://www.firebirdsql.org/(дата обращения: 12.04.2016). 26. Grittec: Официальный сайт [Электронный ресурс]/ Grittec. – 2002 2016. – Электрон. дан. – Режим доступа: http://www.grittec.ru /(дата обращения: 17.04.2016). 27. Microsoft: Официальный сайт [Электронный ресурс]/ Microsoft. – 1995 - 2016. – Электрон. дан. – Режим доступа: https://www.microsoft.com/ (дата обращения: 13.04.2016). 28. Oracle: Официальный сайт [Электронный ресурс]/ Oracle. – 1999 2016. – Электрон. дан. – Режим доступа: http://www.oracle.com/ru/ (дата обращения: 13.04.2016). 29. Rbcdaily: Официальный сайт [Электронный ресурс]/ Rbcdaily. – 2000 2016. – Электрон. дан. – Режим доступа: http://www.rbcdaily.ru/ (дата обращения: 13.04.2016). 30. Spirit: Официальный сайт [Электронный ресурс]/ Spirit. – 2004 - 2016. – Электрон. дан. – Режим доступа: http://www.spirit.ru/ (дата обращения: 13.04.2016). 65
Отзывы:
Авторизуйтесь, чтобы оставить отзыв