Главная » Просмотр файлов » Домашнее задание

Домашнее задание (953556), страница 3

Файл №953556 Домашнее задание (Homework) 3 страницаДомашнее задание (953556) страница 32013-09-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

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

2.5 Заключение

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

В заключительной части работы – протестируйте слова своего коллеги. Занесите результаты теста в таблицу, как на рис. 15 (здесь приведено по десять тестов, в вашем случае будет по четыре теста). Желтым цветом выделены верно распознанные слова, внизу указано количество верно распознанных слов для каждой десятки тестов и итог- среднее ариф­метическое значение.

Часть 3: Автоматизация

Выше был описан алгоритм «ручного» создания базы данных признаков и нечёткой модели. Этот процесс является достаточно утомительным, особенно при использовании большого числа фраз (например, 15 фраз по 5 образцов записи на каждую). Одним из путей облегчения программирования является использование системы MATLAB – мощной среды программирования, содержащей инструменты для работы со звуковыми файлами и анализа сигналов. Составить в MATLAB программу для автоматического построения нечёткой модели и векторов признаков не особенно сложно.

Как вариант реализации данного подхода предлагается рассмотреть пример готовой программы.

3.1 База данных признаков

Итак, у нас есть исходный материал - по три звуковых файла на каждую команду плюс файл с «чистым сигналом». Для работы со звуковыми файлами необходимо установить “Signal processing ToolBox” для MatLab.

Все необходимые файлы находятся в папке SoundRec, которую необходимо поместить в рабочую папку программы MatLab, например: “c:\Program Files\MATLAB\R2006a\work\”. Также необходимо задать путь к данной папке. Это можно сделать, например, через меню File -> Set Path(рис. 16).

Откройте файл «generate_model.m». В его начале находится описание будущей базы данных признаков.

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

Для каждой фразы указаны имена соответствующих звуковых файлов. Расширение “.wav” можно опустить. Все строки должны быть набраны латинскими буквами – при необходимости переименуйте звуковые файлы. Количество образцов для каждой фразы должно быть одинаково.

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

Еще необходимо задать значения следующих переменных:

Для совпадения с результатами, полученными вручную установите следующие значения:

Iow_bound = 54;

high_bound = 4005;

Параметр delta необходим для того, чтобы АЧХ были построены на одинаковых частотах.

После вычисления все АЧХ пересчитываются для частот:

[low_bound, low_bound+delta, low_bound+2∙delta, … , high_bound]

Далее откройте файл «getAFCs.m» и проверьте, соответствует ли путь к звуковым файлам Вашему пути к папке Samples. Если нет, исправьте его. Если Вы поместили папку SoundRec в рабочую папку MatLab по-умолчанию, то путь должен быть следующим:

обратите внимание на обратный слеш в конце строки!

Запустите программу, набрав её имя в командной строке MATLAB:

Через некоторое время на экране появятся график аппроксимированных АЧХ фраз, график среднего квадратичного отклонения (СКО) аппроксимированных АЧХ (используется для выбора ключевых частот для построения векторов признаков), диаграммы векторов признаков. Также создаются переменные:

  • vectors - матрица векторов признаков;

  • wordNames - массив имён фраз;

  • MODEL - структура, соответствующей нечетко-логической модели.

Программа почти дословно повторяет все этапы вычисления признаков, описанные выше, с одним существенным отличием: АЧХ аппроксимируются методом наименьших квадратов полиномом степени n. Степень полинома можно поменять в файле «getAFCs». Существует много хороших книг по программированию в Matlab – подробное описание использованных процедур выходит за рамки этого пособия (полный и подробно комментированный текст предлагаемой программы смотри в приложении). Укажем лишь ключевые моменты и особенности.

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

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

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

Здесь существует следующая проблема – если отрезок window мал, частоты выбираются близко друг к другу, большая область АЧХ в модель не попадает. Если же отрезок window широк, могут быть пропущены явные пики СКО, т.е. самые лучшие частоты для создания признаков. (Или, быть может, для надёжного распознавания достаточно малого участка АЧХ – той области, где СКО имеет узкое «плато»)?

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

3.2 Постановка задачи

Известны вектора признаков слов-эталонов и вектор признаков распознаваемого слова. Необходимо определить, к какому из слов-эталонов распознаваемое слово наиболее близко. Для решения этой задачи используется аппарат нечеткой логики, реализованный в Fuzzy Logic Toolbox системы Matlab.

3.3 Построение нечетко-логической модели

Нечетко-логическая модель в Fuzzy Logic Toolbox представляет из себя множество входных переменных, которые соответствуют компонентам вектора признаков распознаваемого слова, множество выходных переменных, которые соответствуют словам-эталонам, и множество правил, согласно которым определяется принадлежность распознаваемого слова к одному из эталонных классов. Рассмотрим этапы построения нечетко-логической модели в Matlab.

  1. Инициализация структуры, соответствующей нечетко-логической модели, производится функцией newfis. Синтаксис функции следующий:

FIS = newfis(FISNAME);

где FIS – имя переменной, FISNAME – название модели.

  1. Создание входных и выходных переменных. Функция addvar. Синтаксис функции:

fuzzyStruct = addvar(fuzzyStruct, varType, varName, varBounds);

здесь fuzzyStruct – структура, соответствующая нечетко-логической модели, varType – тип переменной (‘input’ – входная, ‘output’ – выходная), varName – имя переменной, varBounds – вектор, описывающий область определения переменной.

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

  1. Определение функций принадлежности. Функция addmf. Синтаксис функции:

fuzzyStruct = addmf(fuzzyStruct, varType, varIndex, mfName, mfType, mfParams);

где fuzzyStruct – структура, соответствующая нечетко-логической модели, varType –тип переменной, к которой будет добавлена функция принадлежности (‘input’ – входная, ‘output’ – выходная), varIndex – индекс переменной, к которой будет добавлена функция принадлежности, mfName – имя функции принадлежности, mfType – тип функции принадлежности, mfParams – вектор, который определяет значения функции принадлежности в ключевых точках.

Функции принадлежности входных переменных соответствуют соответствующим компонентам векторов признаков слов-эталонов и являются функциями треугольного типа (mfType = 'trimf'). Но возможно, что это не оптимальный выбор с точки зрения точности распознания.

  1. Определение правил. Функция addrule. Синтаксис функции:

fuzzyStruct = addrule(fuzzyStruct, ruleList);

где fuzzyStruct – структура, соответствующая нечетко-логической модели, ruleList – матрица правил.

Матрица правил имеет размерность n x (m + n + 2), где n – число выходных переменных, m – число входных переменных. Матрица имеет следующий вид:

1 1 … 1 1 0 0 … 0 1 1

2 2 … 2 0 1 0 … 0 1 1

… … …

n n … n 0 0 0 … 1 1 1

Строка i является правилом, выявляющим i-ое слово-эталон.

Подробнее о синтаксисе и работе каждой функции можно узнать из справочной системы Matlab.

3.4 Распознавание слова

Для распознавания слова по заданному вектору признаков необходимо воспользоваться FIS Editor (команда Matlab – fuzzy). С помощью него можно просмотреть созданную нечетко-логическую модель (команда File -> Import -> From Workspace… имя структуры, соответствующей нечетко-логической модели - в программе она названа MODEL) и ее работу (команда View->Rules). Заглавные буквы в слове MODEL – принципиальны!

Часть 4: Выполнение первой и второй части с использованием аппроксимации АЧХ и сравнение решения с третей частью

В данной части необходимо сделать все то же самое, что и в первой части, используя файл «Анализ.xlsm», и сравнить результат с третьей частью. При открытии файлов необходимо разрешить выполнение макросов. Возможно, у Вас установлен высокий уровень безопасности макросов, и варианта не отключения макросов у Вас не будет. Для того чтобы изменить уровень безопасности необходимо пройти по следующей последовательности меню: Сервис –> Параметры -> Безопасность -> Безопасность макросов и выбрать средний уровень (рекомендуется) либо низкий уровень. При следующем открытии файла будет предложено не отключать макросы, что и следует выбрать. В файле «Анализ.xlsm» листы с 1 по 6 необходимо заполнить своими данными и переименовать под свои слова. Заполнять нужно аналогично тому, как это сделано в файле. На листе «Итоги» необходимо заполнить опорные частоты (рис. 17).

Кнопка «Построить графики» перед построением графиков запускает сервер MatLab, который используется для вычисления значения ячеек «Без микр. (аппрокс)» аппроксимацией методом наименьших квадратов. Выполняется функция getAver, файл которой находится в папке SoundRec. Именно в этот момент важно, чтобы в путях MatLab эта папка была прописана. Строятся графики аппроксимированной и не аппроксимированной АЧХ.

Кнопки «Вычислить таблицы по не аппроксимированным данным» и «Вычислить таблицы по аппроксимированным данным» в особых пояснениях не нуждаются. Первая вычисляет все то же самое, что вычислялось в первой части задания. Вы можете проверить себя, вписав частоты из первой части. Вторая кнопка вычисляет таблицы по аппроксимированным данным, аналогично тому, как это делается в MatLab в третьей части.

Часть 5: Алгоритм распознавания, построенный на нейронной сети

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

В данной части будет проверяться работа алгоритма по векторам признаков, полученным еще в п.1.5. Напомню, что вектором признаков данного слова называем 7-компонентный массив чисел, полученный как разность соседних амплитуд на выбранных частотах сравнения.

Характеристики

Тип файла
Документ
Размер
10,07 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее