![]() |
|
![]() ![]() ![]() |
|
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
Гость |
|
|||
Unregistered |
А если я скажу, что ещё в СССР серийно производилась плата с ДП-алгоритмом? Всё ещё будете считать это плохой математикой?? |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Ну и что? Я вот когда-то придумал устройство для решения задач целочисленного линейного программирования. Все зависит от того, какую задачу надо решить. Если задачу удалось формализовать только так, что возможно применить только метод ДП, то куда деваться? Здесь надо выбирать, чем можно поступиться: быстродействием, точностью, требуемой памятью и т.д. |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Абсолютно согласен с Вами, PODVAL. ДП - это достаточно сложный и медленный алгоритм для распознавания с большим словарём, но вместе с тем и самый надёжный. Тут уж против этого ничего не скажешь... Правда и вевлет анализ во времена СССР еще не был распространён... У меня просьба... не могли бы Вы более детально описать мне структуру алгоритма распознавания путём вейвлетов...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
ОК, только попозже. Полно работы.
Немного терпения! ![]() |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Уважаемые участники обсуждения! Я немного сменил свой аватар... Теперь у меня пирамида... вместо солнца. Но в общем это неважно...
Продолжая данную тему... На сайте http://www.datacompression.info я обнаружил небольшую статью под названием: "How can I build a simple speech recogniser?" В общем, в статье говорится, что простой распознаватель речи можно постройть используя следующий алгоритм: Цитирую: 1. Find the begining and end of the utterance. 2.Filter the raw signal into frequency bands. 3.Cut the utterance into a fixed number of segments. 4.Average data for each band in each segment. 5.Store this pattern with its name. 6.Collect training set of about 3 repetitions of each pattern (word). 7.Recognize unknown by comparing its pattern against all patterns in the training set and returning the name of the pattern closest to the unknown. У меня просьба, не могли вы прокомментировать данную последовательность действий и, если несложно, немного формализировать до конкретного алгоритма... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
интересно было бы реализовать вышеописанное. Что посоветуете для частотного анализа? БПФ?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
Step ты что увлекся Deeptown'ом ?
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
На самом деле это абсолютно неважно... Сейчас не стоит вопрос о способах вычисления Фурье... Бери простое ДПФ и не засоряй алгоритм. Самое интересное - структура и способ задания эталонных элементов... Я уже пробовал реализовывать этот алгоритм, но наткнулся на непонимание того, что из себя в конечном счете должен представлять эталон... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
как я понял эталон -- это набор амплитуд частот (band), набор имеет фиксированую длинну, скажем все слова (звуки отделенные друг от друга тишиной) бьются на 64 блока в каждом ищется для каждой band ее амплитуда и все это является эталоном.
Это сообщение отредактировал(а) cully - 31.1.2003, 02:15 -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
podval |
|
||||||||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
КОММЕНТАРИИ
Вот после выполнения этих шагов и получим эталон. Эти шаги повторяем для всех классов, подлежащих распознаванию.
Это попытка так сказать "усреднить" каждый из эталонов, улучшить их свойства стационарности.
Будьте внимательными! "Неизвестный" означает, что мы не знаем заранее, какому из эталонов он наиболее близок. Но это не значит, что на вход можно подать абы какой сигнал. Он обязательно должен принадлежать одному из известных (образцы которых у нас хранятся) классов. Последнее замечание можно завернуть и таким образом. Ввести в систему распознавания некий элемент самообучения. Допустим, что действительно на вход пришел сигнал, образец которого в базе отсутствует. Это можно обнаружить, например, по достижению некоторого порогового (экстремально возможного) значения критерия близости. Тогда необходимо составить новое эталонное описание для принятого сигнала и записать его в базу эталонов. |
||||||||
|
|||||||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Хорошо, а теперь давайте посмотрим внимательнее...
1. Find the begining and end of the utterance. Да, это действительно просто. Найти начало и конец слова можно по установленному порогу амплитуды... 2.Filter the raw signal into frequency bands. Первые непонятные моменты... Каким окном мы будем "идти" по сигналу? Но ладно... Предположим, что идём мы окном по 80 дискрет. Итого, получили линейку из 80 амплитуд частот. 3.Cut the utterance into a fixed number of segments. Непонятно, по какому критерию происходит сегментация частот. Каково количество сегментов, каковы их длины. 4.Average data for each band in each segment. Усреднить значения частот в каждом сегменте, как это? 5.Store this pattern with its name. Тут уже по обстоятельствам... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
podval |
|
||||||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Дело в том, что здесь надо провести кое-какую экспериментальную работу.
Это как сам решишь. Подбирай.
Я бы выбрал те сегменты, где концентрируется основная энергия сигнала. А как иначе? Какое их количество - опять смотри, думай и подбирай. Возьми несколько примеров, тогда сможешь определить примерное количество сегментов, достаточное для работы. А вот каковы их длины - видно на частотной диаграмме. Можешь сортировать по пороговому значению амплитуды, а если не хочешь - сломай в себе привычное Фурье-представление о спектрах. В вейвлет-пакетах такой вопрос просто не возникает.
Скорее всего, речь идет о том, чтобы отнормировать значения амплитуд спектральных компонент к максимальному значению. Это для того, чтобы все эталоны имели как бы одну шкалу (от 0 до 1). А то получатся одни эталоны "громкие", другие "тихие" - это лажа, так низя ![]() |
||||||
|
|||||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Большое спасибо, podval, за ценные ответы...
А если подходить к проблеме, используя аппарат вейвлет анализа... Как я понимаю, вейвлеты - это базисные функции, сжатие и растяжение которых обеспечивает аппроксимацию входного сигнала. Тогда, в рамках вейвлетов, как можно трансформировать этот алгоритм... Какие параметры (эталоны) нам дают вейвлеты? -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
Еще одна проблема... Непонятно, как использовать Расстояние Махаланобиса в рамках решения задачи классификации сигналов.
Кратко дам теорию: В общем, расстояние Махаланобиса является мерой расстояния между двумя точками в пространстве, определяемым двумя или более коррелированными переменными. Например, если имеются всего две некоррелированных переменные, то вы можете нанести точки (образцы) на стандартную 2М диаграмму рассеяния. Расстояние Махаланобиса между точками будет в этом случае равно расстоянию Евклида, т.е. расстоянию, измеренному, например, рулеткой. Если имеются три некоррелированные переменные, то для определения расстояния вы можете по-прежнему использовать рулетку (на 3М диаграмме). При наличии более трех переменных вы не можете более представить расстояние на диаграмме. Также и в случае, когда переменные коррелированы, то оси на графике могут рассматриваться как неортогональные (они уже не направлены под прямыми углами друг к другу). В этом случае простое определение расстояния Евклида не подходит, в то время как расстояние Махаланобиса является адекватно определенным в случае наличия корреляций. Расстояние Махаланобиса и классификация. Для каждой совокупности в выборке вы можете определить положение точки, представляющей средние для всех переменных в многомерном пространстве, определенном переменными рассматриваемой модели. Эти точки называются центроидами группы. Для каждого наблюдения вы можете затем вычислить его расстояние Махаланобиса от каждого центроида группы. Снова, вы признаете наблюдение принадлежащим к той группе, к которой он ближе, т.е. когда расстояние Махаланобиса до нее минимально. -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |