Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Конструкторская часть. 3.1. Функциональная схема аппаратных средств






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

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

· тактовая частота процессора не менее 800 МГц;

· ОС Windows 7 и старше;

· не менее 512 Мб оперативной памяти;

· не менее 512 Мб графической памяти;

·.Net Framework версии 4.0 и старше;

· Super Video Graphics Array (SVGA) монитор;

· клавиатура любого производителя;

· компьютерная мышь любого производителя.

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

3.2 Функциональная схема программного средства

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

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

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

· идентификация пользователей;

· получение информации о программном средстве.

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

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

Так же программа несет информацию о своем предназначении и о разработчике.

База данных является неотъемлемой частью всего программного средства. Она состоит из:

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

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

Функциональная схема представлена на рисунке 3.1.

Основная программа Регистрация пользователя   Успешная/неуспешная регистрация Идентификация пользователя   Успешная/неуспешная идентификация
База данных     Обработка запроса и выполнение операции    

 

 


Рисунок 3.1 Функциональная схема программного средства


3.3 Информационная схема программного средства

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

  База данных
  Пользователь
  Микрофон
Обработка записанного голоса
Преобразование записи
  Пользователь
  Микрофон
Обработка записанного голоса
Преобразование записи
Не зарегистрирован
  Зарегистрирован
Вывод на экран результата


 

 

       
 
   
 

 

 


Рисунок 3.2 Информационная схема программного средства

3.4 Алгоритм программного средства

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

1. Входной сигнал.

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

Ø частота дискретизации - 44100 Гц;

Ø число каналов - 1;

Ø кодирование 16 бит.

Пример входного сигнала продемонстрирован на рисунке 3.3.

Рисунок 3.3 Входной сигнал

 

2. Разбитие входного сигнала на перекрывающие области длительностью 20 - 30 мс.

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

Рисунок 3.4 Область сигнала длительностью 0.23 мс

3. Фильтрация сегмента.

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

.

В итоге получаем сегмент, очищенный от различных шумов (рис.3.5)

Рисунок 3.5 Фильтрация сегмента

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


 

4. Вычисление спектра каждого сегмента.

Чтобы получить спектр сигнала, нужно использовать функцию преобразования Фурье:

где k = 0,..., N-1.

Пример полученного спектра сегмента представлен на рисунке 3.6.

Рисунок 3.6 Спектр сегмента сигнала

5. Треугольные перекрывающие фильтры на мел-частотной области.

После того, как мы получили спектр, нам нужно перевести его в мел-частотную область.

Первым делом следует расположить полученный спектр на мел-шкале. Для этого используем формулу:

В итоге мы получаем окна, которые равномерно расположены на мел-оси (рисунок 3.7).


 

Рисунок 3.7 Окна на мел-оси

Далее следует перевести этот график в шкалу с частотами. В итоге получим то, что показано на рисунке 3.8.

Рисунок 3.8 Частотная шкала

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

На каждый сегмент сигнала приходится по 12 мел-частотных кепстральных коэффициентов. Чтобы их найти используем формулу:

где .

Часть таблицы с полученными коэффициентами сигнала представлена на рисунке 3.9. В каждом сегменте сигнала находится 12 мел-частотных кепстральныъ коэффициентов.

Рисунок 3.9 Таблица мел-частотных кепстральных коэффициентов

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

Рисунок 3.10 График MFCC двух разных личностей

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

Рисунок 3.11 График MFCC одного человека

Невооруженным глазом видно, что разница между мел-частотными кепстральными коэффициентами не существенна.

7. Вычисление расстояний.

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

где С1 и C2 являются массивами с мел-частотными кепстральными коэффициентами. На рисунке 3.12 показаны вычисленные расстояния между 14 различными записанными речами, некоторые из которых совпадают.

Рисунок 3.12 Таблица вычисленных расстояний

 

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

Рисунок 3.13 Блок-схема основного алгоритма программного средства

3.5. Язык программирования и среда разработки

Для разработки программного средства был выбран язык программирования C++. Основные факторы выбора: поддержка OpenAL, возможность подключения программной библиотеки обработки мультимедиа данных Integrated Perfomance Primitives (IPP). В целом С++ является более подходящим языком программирования для реализации программного средства, основой которого является аудио-файлы. Данный язык предназначается для разработки программ любого назначения.

Недостатки:

· низкая потокобезопасность;

· плохая поддержка модульности;

· сложность обучения.

Средой разработки была выбрана Microsoft Visual Studio 2013. Данная интегрированная среда содержит в себе огромный набор инструментов и служб. В Visual Studio можно разрабатывать приложения на любой вкус и на большом количестве языков, в том числе и С++, на котором написано программное средство для дипломного проекта. К плюсам так же можно отнести простой и удобный интерфейс, возможность разработки не только консольных приложений, но и приложения с графическим интерфейсом.


 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.