Понеже дълго време никой не пише тук, реших да обърна внимание на едни задачи, които ме интересуват; има практическо приложение с математически проблеми.
Една от задачите които имаме при 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 е огромно; разпознаването на звук е само частен пример, който използвах. Мога да посоча твърде много примери и подобни задачи, като обработка на образи, инфра-червени или спътникови снимки, ехо-графски сигнали, ...
|