|
Страници по тази тема: 1 | 2 | (покажи всички)
Тема
|
Математически задачи срещани в DSP
|
|
Автор |
b33 () |
Публикувано | 09.03.01 22:39 |
|
Понеже дълго време никой не пише тук, реших да обърна внимание на едни задачи, които ме интересуват; има практическо приложение с математически проблеми.
Една от задачите които имаме при DSP (Digital Signal Processing) се състои в разпознаването на определен сигнал, който обикновенно е функция на напрежението U от времето t, или U(t):[0,безкрайност)-->[a, b]. Например, ако компютъра взема данни от един микрофон, той получава дискретна редица стойности U0, U1, U2, … което е напрежение в моментите t0, t1, t2, … съотвестватстващо на отклонието на мембраната на микрофона под въздействието на звуковата вълна.
Най-накрая получаваме функция U(t) която много прилича (и ние така я възприемаме) на сума от няколко синусоиди.
Една от задачите ни е да разпознаем в сигнала (функцията) U(t) отделните фонеми на изречените думи по микрофона. Това означава, че накъсваме сигнала на парчета в отрязъците [a1, a2], [a2, a3], [a3, a4]… Всяко едно парче съответства на една фонема (звуковете а, о, и, е, с, т, ...).
Сега, програмиста може да направи предварителен запис на фонемите в компютъра, т.е. да има шаблонните функций f1, f2, f3, … съответни на всяка фонема. В последствие, когато компютъра “слуша” глас, той може да сравнява шаблонните функции с чутите, което при дускретизиране се състои в сравняване на редици от числа (по една крайна редица от дискретни стойности за всяка фонема или функция). Да речем, че това сравнение можем да направим чрез средно-квадратично отклонение, като така ще открием коя от шаблонните функции е на “най-малко разсрояние” от чутата фонема.
Изглежда просто, но този проблем SR(Speech Recognitiom) е много труден. Първо фонемите (например ‘е’) звучат различно дългов различните думи; това зависи и от начина на говорене на човека; например можем да имаме ‘е’ или ‘еее’ или ‘ееееееее’. Второ, когато фонемите се комбинират, те си изменят формите (като функции); например ‘ек’, ‘ев’, ‘ес’; в тези случаи от графиката на чутата функция се вижда, как ‘е’ плавно преминава в ‘к’ или във ‘в’. Трето, от микрофона може да се чува смущаващ шум идващ не от говорящия.
Технологиите които разпознават не сравняват директно сигналите (функциите). Обикновенно те първо накъсват входния сигнал на парчета [0, d], [[d, 2d], [2d, 3d], … [(n-1)d, nd]. След това на всяко парче се прави преобразувание на Фурие (обикновенно), като се взимат първите честоти(коефиенцти). Чак след това се прави сравнение по средно-квадратично отклонение със вече преобразуваните шаблони.
По-нататък, откритите с някякво приближение “микро-фонеми” се подават на един алгоритъм, обикновенно базиран на стохастичен процес (или Маркови вериги); това са статистически методи, които базирайки се на налична информация от думи, се опитват чрез статистически методи да разкрият буквите в думата, разглеждайки отделните фонеми свързани. Резултата е с някаква вероятност за достоверност.
Тук отново има голям проблем; а именно, къде свършва едната дума и къде започва другата. Когато се говори непрекъснато, без паузи и със сливане на думите, е много трудно да стане разпознаването.
И така.
Общо взето, задачата е за разпознаване на функции. Освен горе споменатото преобразование на Фурие, използват се преобразуванията на Хаар и Уош-Адамар. Някои изследователи използват и Wavelets, които по същество са различни съвкупности от функции образуващи база в Хилбертово пространство, както такава база са 1, sin(x), cos(x), sin(2x), … в случая на Фурие.
По-нататък освен стохастически процеси, се използват и невронни мрежи при откриването на думите.
В цялата тази задача има много математика.
Точно за това пиша тук.
Нека някой ако се интересува или има информация, да сподели някои нови методи.
Практическото приложение на DSP е огромно; разпознаването на звук е само частен пример, който използвах. Мога да посоча твърде много примери и подобни задачи, като обработка на образи, инфра-червени или спътникови снимки, ехо-графски сигнали, ...
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: b33]
|
|
Автор | BOlAN (Нерегистриран) |
Публикувано | 10.03.01 21:41 |
|
Hei Boiko,
Ne sym se zanimaval s tova, vypreki che s Fourier bi tryabvalo da sym na ti. Vse pak edin vupros. Kakvo imash predvid pod preobrazuvanie na Fourier? T.nar red na Fourier e edno neshto i preobrazuvanieto(transformaciyata na Fourier) e negov analog v neprekysnatiya sluchai. Transformaciyata na fourier vryshta funkciya i ne sym siguren kakvo imash predvid pod chestotite. Inache v "standartniya red na Fourier" chestotite se vizhdat lesno.
Vse pak struva mi se, che zadachkata ti e po-skoro v definiraneto i obuchavaneto na kompyutyra otkolkoto v chisto matematicheskiya aspekt na aproksimaciite.
Boian
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: b33]
|
|
Автор |
Pixel (член) |
Публикувано | 10.03.01 22:55 |
|
Както винаги си изчерпателен. Все пак пропусна LPC
| |
Тема
|
подробности
[re: BOlAN]
|
|
Автор |
b33 () |
Публикувано | 11.03.01 14:01 |
|
Ясно е какво е преобразувание на Фурие. В преобразуваната функция свободната променлива се обозначава обикновенно с ‘омега’ и се нарича честота.
Идеяата на прилагане на преобразуванието на Фурие е следната. Ние първо преобразуваме шаблонните функции (отговарящи на ‘а’, ‘е’, ...) и така си ги помним в комютъра – преобразувани. След това, когата компютъра чуе сигнал, той също се преобразува. В последствие търсим растояние между преобразуваните вече шаблони и чути сигнали чрез стандартното разстояние в L^2.
За ефективност, в това сравнение интегрираме по крайна начална отсечка около нулата и пренебрегваме по-големите стойности на свободната променлива (честота). Смята се, че ниските честоти носят съществената информация за функцията, което се потвърждава от практиката. Ниските честоти дават основната форма на сигнала, а високите дават подробности (малки толеранси) които можем да пренебрегнем.
При Хаар и Уош-Адамар е аналогично на Фурие. Тези преобразования се наричат ортогонални.
Проблема не е само компютърен. Всяка фонема съответства на някакво допустимо под-множество на L^2 (моножество, понеже изговора на ‘e’ не е единствен възможен или единствена функция, а имаме много, близки една до друга, възможности). Така се разбива L^2 на няколко подмножества, към които трябва да причислим чутия по-късно сигнал.
Работата е, че не винаги можем добре да отделим тези множества (понякога се припокриват).
В математиката има дефеиниции за разстояние от точка до множество, но как да го кодираме в компютъра, така че да класифицираме най добре сигналите? Да става бързо?
Математическия проблем тук, е да се намерят такива средства, че да се отделят колкото се може по-добре тези подмноожества. Търси се и ефективност при смятането. Поради това, някои хора се опитват с Wavelets да намерят нови по-хубави базови функции за L^2; хубави, в смисъл по-добре да отделят фонемите.
Тези проблеми са свързани и с математическата статистика. Ние на практика искаме да класифицираме (с някаква достоверност) входния сигнал към даден брой класове.
Методите с неврони-мрежи са си информационни задачи, но в тях също има математика.
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: Pixel]
|
|
Автор |
b33 () |
Публикувано | 11.03.01 14:06 |
|
Какво е LPC?
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: b33]
|
|
Автор |
Pixel (член) |
Публикувано | 12.03.01 22:14 |
|
Коефициенти на линейно предсказване (Linear Prediction Coefficients). Използват се в много области на DSP. Добър резултат за моментен анализ дават и Mel-scale кепстралните коефициенти. Но честотните характеристиките на сигнала във времеви прозорец са просто първото и елементарно ниво на разпознаване. Като че ли няма значение кое точно ортогонално преобразуване ще използваш. Аз не бих казал че разпознаването на реч е чисто математическа задача ;). Вече 40 години стотици екипи и милиарди $ са хвърлени в това направление. Резултатът е нищо повече от програмки, позволяващи разпознаване на думи/команди от ограничен речник. При това нещастния диктор трябва да си загуби поне един ден за да обучи програмката на гласа и артикулацията си. А най-често се получава, че самия диктор бива обучен на това как да произнася думите, така че да бъде разбран .
Универсалното разпознаване на реч (фонеми->морфеми->думи->граматика, изрази->контекст->тема ) си стои далеч в бъдещето. И е много по-близо до изкуствения интелект, отколкото до чистата математика.
| |
Тема
|
корекция
[re: Pixel]
|
|
Автор |
b33 () |
Публикувано | 19.03.01 21:18 |
|
Първо, съществено е какво преобразувание ще се използва. Линейните преобразувания по различен начин свиват или разтягат или проектират пространството по някои координати, или го завъртят около началото. По този начин се деформира областта (под-множеството) в което попада отделна фонема (или feature). Ясно е защо преобразуванията са важни.
След това, граматиката и контекста, може да е в областта на искуствения интелект, но вече е реалност. Дори в Speech SDK на Microsoft има компилатор на контекстно-свободна граматика.
Системите за разпознаване на говор са реалност. Когато става дума за прости команди, има вградени системи вече и в компютрите на автомобилите. Все пак, още не е достигнато съвършенство, и тук именно може да помогне математиката. Главно, в днешно време компютрите се снабдиха с бързи процесори и много памет; може да се направи нещо повече по въпроса. Човешкото ухо едва ли е по съвършенно от аналогичните технически средства. На човека му помага семантиката (разбиране на ситуацията и разговора), че да може по-добре да разпознава говор; в никакъв случай човешкото ухо не е по съвършенно от техническите средства.
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: b33]
|
|
Автор | lm[F(x)] (Нерегистриран) |
Публикувано | 11.04.01 17:40 |
|
Аз се интересувам и имам информация, но далеч не толкова систематизирана и подробна колкото би ми се искало. Нещо повече, хванал съм се да правя фонетично разпознаване, само дето математическата част ми е леко досадна и скучна - нещо като изтръпнала ръка, безполезна ти е ама трябва да я търпиш ... Още съм на етап "черна работа" - Фурието, вход-изход на звуков сигнал през ПЦто, и тепърва ще има бая играчка по сравняването с модели. (Жалко че не е толкова просто, колкото си го написал:)))
Та, накратко, аз съм програмист и много повече ме възлнува практическата реализация. Теорията съм я оставил на по-умните:) За мен Фурието или моделите на Марков и тн. са само алгоритми, дето трябва да се запрограмират, няма значение как се извеждат или доказват - важно е да вършат работа. Но както сам посочи, на всяка стъпка изникват проблеми. А моя основен проблем в момента е бързината (нищо че имам бърз процесор и много памет:). Не смогва машинката да запише входния буфер и да изсмята спектъра в реално време, какво остава за самото сравнение с шаблони, да не говорим, че там сигурно ще играе невронна мрежа.
Когато отстраня този проблем сигурно ще възникне такъв с отделянето на шума ... Като цяло, всяка една корекция, добавка или преработка на основните алгоритми за да включват някакви единични случаи, затормозва и забавя. Затова отсега търся да имплементирам някакви, макар и евристични алгоритми, които да работят бързо макар и с някакво приближение. Така да речем в момента съм преработил FFT алгоритъма, не може да се познае:) Абе въобще, хване ли се човек с такваз задача - дупе да му е яко :)))
Извинявам се ако много съм опорочил идеята на клуба, щото това не е директно свързано с математиката. Пък и за първо писане тука доста надращих ...
айде със здраве
и предварително благодаря за евентуална помощ
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: lm[F(x)]]
|
|
Автор | Moss (Нерегистриран) |
Публикувано | 11.04.01 20:13 |
|
За реални зададачи в DSP PC не е особенно подходящо. TI DSK+ (Digital starter kit) ти дават около 30-40MIPS(реални, а иначе 100MIPS). За обработка на глас(8KHz) това трябва да стига. Има и DSK koeто е съвсем ефтино.
| |
Тема
|
Re: Математически задачи срещани в DSP
[re: Moss]
|
|
Автор | lm[F(x)] (Нерегистриран) |
Публикувано | 12.04.01 12:03 |
|
Мерси за предложението, но вече съм го обмислил. Има сигнални процесори и на Analog Devices ина други фирми, предназначени точно за тая цел - да свършат "мръсната работа" :) И наистина не са кой знае колко скъпи, заедно с кита за тестване и развойната среда.
Малък недостатък е обаче че като го поръчам ще дойде най рано след месец-два, ще ми отнеме поне още толкова докато разбъзичкам самия процесор и разбера как да го ползвам пълноценно и освен всичко друго ще трябва да проектирам и платка която да ми замести звуковата карта и да ползва въпросния процесор. Нямам го това време - става въпрос за дипломна работа и крайният срок е юли.
Пределно ми е ясно че никой няма да иска от мен гениални постижения, само че аз не обичам претупаните работи. Това е сериозна задача и аз сериозно съм се захванал с нея. Друг е въпроса дали трябваше да се набутвам като си я пиша за дипломна ...
| |
|
Страници по тази тема: 1 | 2 | (покажи всички)
|
|
|