Linux за българи: Форуми

Хумор, сатира и забава => Живота, вселената и някакви други глупости => Темата е започната от: gat3way в Mar 06, 2016, 03:00



Титла: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 06, 2016, 03:00
Сега не знам колко от вас се водят в категорията "вече дърти" и имат някакви спомени от соца и 80-те, обаче един доста лошо набит детски спомен от това време е едно радиопредаване по БНР, "Пулсиращи ноти" или нещо от сорта, където се объркваха и пускаха капиталистическа музика, конкретно Yellow Magic Orchestra, аз тогава естествено не знаех че се казват така, сещам се само за едно парче оттогава, което десетилетия след това идентифицирах, понеже това толкова лошо ми се беше загнездило в детското съзнание, че нямаше как да го пропусна. Специално това:

https://www.youtube.com/watch?v=nch0Qj_bEDI

Специфичното човек ако се замисли в цялата работа е гласа на тия жълтурите който в "реално време" звучи роботски. Това става благодарение на т.нар vocoder ($2) и тогава това се е случвало изцяло по "аналогов" начин - с подходящи филтри. Днес нещата са доста различни, всичко е дискретизирано и всичко е по-лесно, та всичките тези неща може човек в реално време да си ги прави чисто софтуерно без да запоява платки, да врътка потенциометри и да подвързва железария. Обаче странно защо, под линукс няма много софтуер по въпроса или поне аз не мога да открия. Иначе намерих един андроидски app, който прави доста доволно добре същото, обаче въпреки това изглежда леко несериозно. Но може и просто да не търся както трябва, та някой знае ли линукски vocoder софтуер за експерименти?

Нямам желание да тероризирам разни хора и институции с prank calls с роботски глас ако някой това му се върти в главата, просто съм много очарован от цялата идея, защото без да искам разбрах че е имала огромно значение за моето себеосъзнаване (съвсем сериозно) - най-малкото ми е определило и музикалните предпочитания и начина ми на живот за поне десетилетие и при всичко това без изобщо да знам.


Титла: Re: Vocoder-и за линукс?
Публикувано от: Stancho_25 в Mar 06, 2016, 07:50
Може би нещо такова?...

http://www.sirlab.de/linux/descr_vocoder.html


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 06, 2016, 11:45
Виж плъгини за Audacity. При мен се мъдри един.

Едно време като студенти ни водеха БГ радиото. Та там ни демонстрираха такова нещо. Взимаш микрофона и говориш а гластът ти излиза като на Чип и Дейл от анимационен филм. Голям смях падна.
Само че апаратурата я наричаха Цифров ревербератор. Сега не знам дали просто 'ревербератора' не бяха го настроили така че да прави 'Вокодерски' ефекти или така наистина се казваше апаратурата им която може синтезира всякакви ефекти - реверберация, ехо, ефект на хорово пеене, вокодер ....
Както и да е има много начини за изкривяване на Звука/Гласа. Всичките правят някакво изкривяване и манипулиране на спектъра.

Кокото до софтуера - да наистина няма - но няма защото е много спецефично нещо и лежи в областа на математиката и теория на сигналите. Т.е може и да има но да е скрито под някое 'математическо име'. Преди например търсих плъгин за ДеРевербератор - да махне кънтенето от един файл. Е изобщо неможах да намеря такова нещо. Но трябваше да търся и за 'Цифрова деконволюция' или за 'цифрова сляпа деконволюция' и разни такива.





Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 06, 2016, 13:15
Да, v2 vocoder плъгина за audacity....ама вади някаква ужасно неразбираема грешка и не работи нещо :(

P.S обаче за андроид намерих това: https://play.google.com/store/apps/details?id=com.mikrosonic.RoboVoxLite&hl=en

Което върши прекрасна работа. Даже се чудя дали да не си купя pro версията, голяма забава било да слушаш роботизирани псувни, спукал съм се да се хиля.


Титла: Re: Vocoder-и за линукс?
Публикувано от: laskov в Mar 07, 2016, 17:01
... голяма забава било да слушаш роботизирани псувни, спукал съм се да се хиля.
Навремето имаше говореща програма за Правец 8. Подавахме и един текстов файл с вицове, който постоянно допълвахме и той бърбореше с часове.
И ние се спуквахме от смях :)

Между другото, виж резултатите за "linux voice distortion"


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 07, 2016, 18:21
Сещам се за балоните с хелий. може да потърсиш за 'helium voice changer'

Та понеже хелият е много рядък, това прави скоростта на звука много по голяма, променяли се резаонансите в гласовият тракт - изместват се към по високите честоти. А Някои казват че гласните струни почвали да вибрират с по-висока честота заради по редкият газ.

Та това ме навежда на мисълта за shift-ване на спектъра към високите честоти - или само на хармониците - а може и даже и нелиниейно shift-ване.
Или ако се shift-не надолу ще изкараш дебелашко/мутренски глас. Всякакви идиотизми може да се измислят.


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 08, 2016, 01:07
Аз това с хелиевите балони съм го правил много пъти, но никога не съм се замислял защо се получава този ефект. Очевидно е че се измества към по-високи честоти, но наистина нямам идея защо. На мен субективните усещания иначе са ми по-забавни, примерно много често (особено първите пъти) изобщо не разбирах че се получава - хората около мене се хилят, а според мен гласът ми си е съвсем нормален, което е странно, и понеже също много често гласът ми на запис ми звучи доста различно от това което съм сигурен че казвам не само като тембър, ами дори като интонация, а иначе съм доста убеден че чувам какво казвам, странният извод който си вадя е че  може би възприятията за това какво казвам не са базирани 100% на слуха или може би част от това не идва като "вибрации на въздуха", а такива на УНГ органите там - сигурно не се изразявам много академично, ама какво да направя :)  Странно обаче понякога като говоря с вдишан хелий, чувам добре че звучи различно, особено когато _очаквам_ да звучи така, абе странна работа.

Другото което ми е правило впечатление с хелиевите балони е понеже за да стане номера като хората, трябва да си изпразниш дробовете, да вдишаш добре и тогава да говориш малко по-бързо от обикновено, хелият който вдишваш не вярвам да е примесен с кислород, обаче като го вдишам, нямам първоначално усещането че се задушавам и че нещо не е наред, което е доста странно, в смисъл парадоксално човек би очаквал да не е така, обаче очевидно ако това което го дишаш е с нормална температура и налягане, организмът ти не може да схване че нещо не е наред, поне не за известно време....сега ако се опиташ да го задържиш, не става, поне не за толкова време за колкото би задържал "нормален" въздух, но е странно това, холивудските представи са че ако вдишаш нещо несъдържащо кислород, едва ли не веднага почваш да се давиш, посиняваш и душиш или поне аз с такова впечатление съм останал от филмите.

Както и да е де, много се отплеснах с този хелий :) Все пак не мисля че "честотното отместване" е същото като това с тези vocoder-и. Апропо, ефектът с честотното отместване е много забавен при радиовръзките със SSB модулация, при радиолюбителите на КВ това е много разпространено защото пестят честотна лента - SSB е същото като амплитудната модулация, но носещата и единия "огледален образ" на модулираното аудио се филтрира при предаване. Резултатът е че при приемника няма носеща и съответно трябва да нацелиш идеално точно честотата на предаване, иначе демодулираното аудио започва да звучи "изместено". Изместване само от 100-тина херца започва доста да си личи, а 300-400 херца и става или все едно извънземно или все едно някакво чудовище от фентъзитата говори, много е забавно, човек не се замисля много, обаче "основната информация" характеризираща човешкият глас всъщност е в доста "тесни" честотни граници. Апропо, преди време бях чел за пича дето е правил ефектите на "Междузвездни войни" там през 70-те, той е бил някакъв радиолюбител и познай - всички радиовръзки на пилотите на X-wing-овете всъщност са си истински SSB радиовръзки и разните екзотични пиукания са му записите на някакви цифрови радиоизлъчвания от едно време, хаха.

Vocoder-ите доколкото аз разбирам са малко по-сложна история. При тях, аудио честотния спектър се "разбива на парчета" (все едно прилагаш FFT върху входния аудиопоток данни). Примерно 3 килохерца се разбиват на 100 "парчета" по 30 херца всяко. За всяко от тези пазиш моментната амплитуда, в това се състои "encode-ването" на входния аудиопоток. При генерирането на изходния, вземаш някакъв "generic" шум и манипулираш амплитудата за всяко такова "парче" от честотния спектър на изхода така че да следва на encode-натите амплитуди. Така колкото повече такива "парчета" имаш, толкова повече крайният резултат ще се доближава до оригинала, обратното - колкото по-малко са парчетата, толкова по-странно/роботски/извънземно ще звучи крайния резултат. Допълнително, в зависимост от това как звучи "generic" шума, крайният резултат може да звучи различно - примерно като зъл Дарт Вейдър или като роботските дрънканици от 90-тарското техно. Може примерно "generic" шума да е църковно пеене - аз подозирам че в андроидското приложение, "prophet" гаврата точно така са я постигнали - резултатът е много забавен хаха.


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 08, 2016, 12:09
Собственият глас който чуваш се различава много от външният защото по голямата част от звука достига до ушният нерв през костите и тъкъните.

Както и да е де, много се отплеснах с този хелий :) Все пак не мисля че "честотното отместване" е същото като това с тези vocoder-и.
Да кажем че под vocoder в обществото се разбира много изкривен глас - роботски или извънземен. На мен мисълта ми беше, че в общият случай ако това е 'voice encoder' това включва всякакви трансформации на спектъра.
1. Може да има изместване на честоти, 2. премахване на честоти или хармоници. 3.добавяне на нови хармоници. 4.Изменяне на аплитудата или модулация на хармониците на спектъра.  5.манипулация на фазово честотната характеристика.

Ако се върнем назад в аналоговата ера, тогава най-лесното (а и най-ефектното) е както казваш, да се модулира амплитудата на изхода от филтрите. (а всички други, са явно били много сложни апаратно)


Титла: Re: Vocoder-и за линукс?
Публикувано от: 4096bits в Mar 08, 2016, 13:10
Аз това с хелиевите балони съм го правил много пъти, но никога не съм се замислял защо се получава този ефект. Очевидно е че се измества към по-високи честоти, но наистина нямам идея защо. На мен субективните усещания иначе са ми по-забавни, примерно много често (особено първите пъти) изобщо не разбирах че се получава - хората около мене се хилят, а според мен гласът ми си е съвсем нормален, което е странно, и понеже също много често гласът ми на запис ми звучи доста различно от това което съм сигурен че казвам не само като тембър, ами дори като интонация, а иначе съм доста убеден че чувам какво казвам, странният извод който си вадя е че  може би възприятията за това какво казвам не са базирани 100% на слуха или може би част от това не идва като "вибрации на въздуха", а такива на УНГ органите там - сигурно не се изразявам много академично, ама какво да направя :)  Странно обаче понякога като говоря с вдишан хелий, чувам добре че звучи различно, особено когато _очаквам_ да звучи така, абе странна работа.....

.............................
Хах! На мен гласа от хелия ми се получава страхотно. Допикава ми се и на мен и на тея около мен от смях.  :D
А гласа се променя, защото самите гласни струни работят по различен начин при по-ниска плътност на средата им. Въздуха иначе. Има и безопасни газове, които са по-тежички от въздуха и при тях се получава обратния ефект. Гласът става по-нисък. Такова още не съм пробвал.
Като цяло, гласните ни струни сме ги научили автоматично да си правят едно и също, като говорим и те си го правят, независимо дали дишаме нещо по-плътно или леко, или пък нормално. За да се предаде нисък звук в по-разредена атмосфера, трябва по-висока амплитуда на движение при мембраната на говорителя, ако е за колони. При гласните струни едва ли е различно. Разредения въздух не може да предаде компресията така добре и затова се получава понижаване на честотата на звука. Поне така аз си го мисля. Не съм специалист.

А вокодер много ми се иска да пробвам и да си поиграя, но нямам свестен микрофон. На лапито вградените са много добри и чувствителни, но едва ли чак толкова. Питали са ме, какво пия, като отпивам кафе. Без да сърбам.


Титла: Re: Vocoder-и за линукс?
Публикувано от: laskov в Mar 08, 2016, 15:15
Понеже май остана незабелязано, а ми се струва по темата, се самоцитирам:


Между другото, виж резултатите за "linux voice distortion"


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 09, 2016, 02:26
Хаха, тази вечер имах малко време и си поиграх да пробвам дали съм разбрал как работи това и да го пресъздам по някакъв начин. Хрумна ми малоумната идея да abuse-на gnuradio да се занимава с тези аудио неща. Някаква тъпа схема като тази:

(http://s18.postimg.org/4a2dz8j09/gr_robot.png)

Това понеже с тези DSP глупости не съм изобщо на ти и е супер да има нещо да ти ги прави наготово и само да цъкаш като някакъв ламер там. Започна да се получава което е доста радостно. Обаче само с три bandpass филтъра, колкото и да звучи роботски резултата, "изходния" синтезиран глас е почти неразбираем. Все пак е забавно. Signal source-овете пробвах да ги заменя с wav source и се получи точно както очаквах - гласът доста добре се "припокрива" с аудиото, та теорията ми за "prophet" ефекта е била вярна.

Само да го овладея малко по-добре и мисля да тествам другата теория, загатната в статията в wikipedia - ще си напиша voice скрамблер с (псевдо) криптографски цели. В смисъл имам идея как да стане, но ще е играчка. Би било забавно сам да си търкаляш (с помощта на аудио рутинга на pulseaudio) "криптирано" аудио върху скайп примерно. Макар че чисто математически, това ми се малко бошлав работа и не особено детерминирано и с ясни гаранции за сигурността, ма пък знам ли - ще е забавно да си поиграе човек. Само да имам повече време, а това ми е доста дефицитно да му се не види :(

П.П за уточнение, "криптографската идея" опира до това "в какъв ред са размесени филтрите при предаване и при получаване", грубо казано, понеже съм лаик в тази област и сигурно си има далеч по-коректен начин да го обясня. В случая с трите филтъра (200-500hz, 500-800hz и 800-1100hz) възможните конфигурации са 3!, с други думи шест, с други думи точно при горното положение е безкрайно лесно да брутфорснеш "ключа" защото има 6 възможни стойности. Това което ми е занимателно, нека имаше 100 филтъра и ги разджурквахме както си знаем, т.е нека keyspace-а ни е 100 факториел, което никак не е малко, тогава колко еквивалентни ключвове бихме имали, защото убеден съм че ако "разместим" само два филтъра, пак ще се получи нещо, което човешкият слух ще разпозне достатъчно добре, единствено в единия случай ще звучи малко по-неразбираемо. Също горният пример не е супер прекрасен, понеже филтрите имат cutoff от 200 херца, което е прекалено много и всяко "парче" носи прекалено много информация за "съседните по честота" парчета.

А и това е ако съм схванал идеята де, а може тотално да не съм разбрал за какво става въпрос :)

Също това е "криптография със загуба на данни" - с други думи при правилния ключ, възпроизведеното няма да е същото като оригинала - но пък човек би го възприел, защото макар и роботизирано, ще наподобява човешка реч.

Като цяло очарователно, никога не съм задълбавал в тези дебри, а те ще се окажат интересни.


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 09, 2016, 11:44
Коя е програмата с блоковете?


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 09, 2016, 16:04
gnuradio-companion, част е от gnuradio (апропо, от flowgraph-а директно ти генерира питонски код, което е доста удобно - така gnuradio-companion не ти е необходим ако искаш после да си пускаш разчертания там flowgraph)


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 09, 2016, 23:04
интересно.  гледах нещо подобно в scilab - математическия софтуер. но нямах време да го разгледам.


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 10, 2016, 01:40
gnuradio е поне за мен прекрасен проект, не разбирам от тези неща и не мога да оценя доколко е сериозно на фона на останалите (комерсиални) решения, но си има доста голямо community и като цяло съчетава (пак субективно) доста полезни неща - аз съм го ползвал предимно с образователни цели, защото има сума ти блокове за визуализация, които нагледно ти показват какво се случва с някакъв сигнал след някаква трансформация и така осмисляш разни неща далеч по-бързо, отколкото ако само  четеш суха теория. Другото забавно е за "истински" радио-експерименти, понеже лесно можеш да подвързраш евтинки SDR-и като източници там и да минаваш входния I/Q поток през различни "трансформации" - така примерно с gnuradio е много лесно да си направиш AM или FM демодулатор и да видиш нагледно как работи при това съвсем истински, все едно си си направил сам приемник, само че изцяло софтуерно. Сега сигурно на хардуерните хора им е далеч по-интересно, но мен не ме бива в това и всичко това реализирано изцяло софтуерно ми е доста забавно като идея.

Жалко само че нямам много време да се занимавам :(


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 10, 2016, 12:57
Това на Scilab - xcos ($2) ми се вижда слабичко. Даже едно ФФТ не можах да намеря :'( - изглежда че проекта е още в много начална фаза или липсват модули или пък е комерсиално и трябва нещо да купиш.....

А пък gnuradio-companion изглежда много хубаво - поне това което гледам в YouTube може да върши работа и за всякакви DSP - не само за радио - и със сигурност бих го подминал, (ако не беше го посочил) заради думичката 'radio' в името му. Не ги е срам.......

---
Мен много ме интересува как влияе фазово честотната характеристика (ФЧХ) на възприемането на речта?
Това е нещо което винаги се подминава навсякъде по литературата с лека ръка. Обикновенно казват, че 'фазата' не носила информация, не се възприемала от ухото и чертаят само спектрограми (АЧХ).

А пък на друго място прочетох че ухото не било чувствително към 'фазата' обаче ако имало изменения (скок на фазата) веднага се усещало ??? ??? Обаче има и едно такова свойство на ФФТ, че ако има закъснял или избързал сигнал това това е аналогично на умножение на фазата с число. https://www.dsprelated.com/freebooks/mdft/Shift_Theorem.html - е не може човека да не може да усети че има забавяне на сигнала? - значи трябва да влияе и то много.

Та ми идва на акъла да пробвам някой ден това: Сигнал --> FFT --> зануляване(унищожаване) на фазата --> IFFT --> Сигнал
Дали ще се чуе същото?

Идва ми  друга идея за скрамблер. Ако размениш фазата с амплитудата какво ще стане? Сигнал --> FFT --> swap(A,φ) --> IFFT --> Сигнал

Или пък вокодерски ефекти с манупулация на фазата?


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 11, 2016, 00:52
Не съм особено запознат с биологията на слуховия апарат, но може би (звучи поне логично) - слуховите рецептори регистрират амплитудата на звука, там колко силно се опънало тъпанчето и съответно изменението на фазата няма значение - щом със същата честота и еднакво силно се регистрира звука, значи трябва да звучи еднакво. Ма това е само теория де, нямам никаква идея. Може и да не е така, не знам.

gnuradio си е по-скоро общ DSP фреймуърк наистина - работи еднакво добре с дискретизирани floating point стойности (аудио), така и с комплексни (I/Q от софтуерните радиа).

Нямам идея по отношение на фазата на звука и как се възприема от човека. Но подобно на радиовълните, със сигурност звуковите вълни по същият начин биха произели "странни" резултати при събиране на една и съща вълна с нейното "копие" лекинко фазово отместено - в смисъл ще се бият там в зависимост от изместването или тотално ще се нулират, или ще се усилват. Някъде из някакъв измислен новинарски сайт бях чел за гениалното откритие на някакви големи глави че най-добрият начин да откажеш някой да говори е като възпроизведеш казаното с малко забавяне, обаче не знам колко "малко" е това малко и дали става въпрос за фазово взаимодействие или е далеч по-голям интервал и ефектът е просто достатъчно дразнещ че човека забравя какво е искал да каже.


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 11, 2016, 11:19
Не съм особено запознат с биологията на слуховия апарат, но може би (звучи поне логично) - слуховите рецептори регистрират амплитудата на звука.

Ухото (ушният нерв ($2)) прави 'фурие преобразуване' -поне така казват.
(https://mechanicalcochlea.files.wordpress.com/2011/04/hz-of-cochlea.png)
Състоял се от поредица от реснички, които трептят (Се задействат от) различна честота. Т.е. по скоро прилича на множество банд пасс филтри позиционирани един след друг. И всяка група от реснични е свързана с нервни влакна.


Титла: Re: Vocoder-и за линукс?
Публикувано от: 4096bits в Mar 11, 2016, 14:24
Gnuradio го зная от много време, но когато за първи път разбрах за това нящо, ми се видя прекалено сложно, а и тогава английския ми беше меко казано, незадоволителен. А много искам да го поразуча. Страхотни нещица могат да се сглобят на това.


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 12, 2016, 02:03
Като цяло мога само да подкрепям заниманията с gnuradio, а иначе е сложно и за мен, в смисъл това е софтуер с доста широка аудитория и би било леко странно ако си добре запознат с всичките му страни  достатъчно добре. Ако ти се занимава и доколкото мога, бих помогнал, но все пак и аз съм си ламер, така че не очаквай чудеса :)


Титла: Re: Vocoder-и за линукс?
Публикувано от: 4096bits в Mar 12, 2016, 11:54
Проблема при мен е сложен. Нарича се "какво по-напред"  :'(


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 16, 2016, 10:55
Успях да направя FFT - IFFT и на изхода да излезе абсолютно същият звук като от входа.
(http://s24.postimg.org/k43bbzg91/fft_ifft.jpg)
Много е важно всеки отчет от изхода от IFFT да се раздели на N (1/1024). Защото в противен случай сигнала излиза 1024 пъти по голям (вместо +-1v pp  +-1000v pp) звуковата карта се насища и нищо няма да чуете - ще чуете само пращения. Това е явно особеност на гнурадио и тяхната IFFT имплементация. Във формулата за  IFFT има отпред 1/N *... Но те явно са го пропускат.

Но тази постановка така като е - и тя не е съвсем вярна (въпреки че се чува точно същото) защото не използва прозорец (използва правоъгален прозорец). взимат се първите 0-1023 отчета, след това следващите 1024-2047, след това следващите и т.н.

А на мен ми трябва вектора от 1024 очета да се шифтва (застъпва) напред със някаква стойност
например на всеки 256 отчета. както е показaно тук: https://cnx.org/contents/PmFjFoIu@5/Short-Time-Fourier-Transform Едва след като успея да го направя така, ще има смисъл да се прилага истинска прозоречна функция (Blackman-harris)



Но не мога да разбера как това може да стане с гнурадио-К. Имат блок [stream-to-vector]. как може да се направи така че този 1024 вектор да се плъзга напред с накакво отместване.

Как може - има ли такъв блок в който може да се дефинира произволна матемтическа функция - с различни аргументи и да се приложи върху всеки елемент на [1024 вектора]? Например измислям си функция - може и да е сложен филтър и я прилагам върху целят спектър. Гледам има блок [transcedental] Обаче доколкото разбирам вътре може да се опише само една единствена функция - например Sin()?


Титла: Re: Vocoder-и за линукс?
Публикувано от: 4096bits в Mar 16, 2016, 21:56
Добре де! Проверих малко резултати през Гого. Не може да не си попаднал на това
http://www.sirlab.de/linux/descr_vocoder.html


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 16, 2016, 22:29
Цитат
Но не мога да разбера как това може да стане с гнурадио-К. Имат блок [stream-to-vector]. как може да се направи така че този 1024 вектор да се плъзга напред с накакво отместване.

За съжаление поне аз не се сешам как би могло да стане това. Вероятно може би ако трябва да се презастъпват "наполовина" може да се измисли нещо "умно" с помощта на keep M in N и interleave блоковете, обаче аз пак не се сещам как би станало.

Цитат
Как може - има ли такъв блок в който може да се дефинира произволна матемтическа функция - с различни аргументи и да се приложи върху всеки елемент на [1024 вектора]? Например измислям си функция - може и да е сложен филтър и я прилагам върху целят спектър. Гледам има блок [transcedental] Обаче доколкото разбирам вътре може да се опише само една единствена функция - например Sin()?


Защо, firdes е доста гъвкаво нещо и е наготово. Иначе математическите оператори сигурно си ги видял вече де.


Титла: Re: Vocoder-и за линукс?
Публикувано от: 4096bits в Mar 16, 2016, 23:02
Доколкото се вижда тук:
https://github.com/gnuradio/gnuradio

има модул dr-vocoder

Не върши ли работа


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 17, 2016, 11:45
Цитат
Как може - има ли такъв блок в който може да се дефинира произволна матемтическа функция - с различни аргументи и да се приложи върху всеки елемент на [1024 вектора]? Например измислям си функция - може и да е сложен филтър и я прилагам върху целят спектър. Гледам има блок [transcedental] Обаче доколкото разбирам вътре може да се опише само една единствена функция - например Sin()?

Защо, firdes е доста гъвкаво нещо и е наготово. Иначе математическите оператори сигурно си ги видял вече де.

Е аз само дадох пример. Нямам намерение да правя филтър по този начин. Освен това цифровият филтър работи във временната област, а аз искам да си правя 'извращенията' в честотната област.

В този ред на мисли има ли начин да си дефинираш твой блок отделно, със входове и изходи - например някъде надолу отделно по листа. И след това да го използваш където ти трябва. Понеже няма такъв 'универсален' математически блок, явно трябва да го направя с много отделни [transcedental] [add] * и т.н. - и ще стане много голям и заплетен.


Не мога също да разбера какво означава 'Vec Length' в [stream to vector] а и не само там. стои си на 1.


Титла: Re: Vocoder-и за линукс?
Публикувано от: gat3way в Mar 17, 2016, 12:34
Може, C++ API-то не е много сложно, аз съм си правил собствени блокове. Има и документация и някакви скриптове дето ти създават първоначалния проект с наготово класовете, билд скриптовете и xml-ите дето описват блока, остава само да напишеш методите и да си дефинираш входовете и изходите в xml-ите.

А иначе, stream_to_vector e "децимиращ" блок, т.е произвежда по-малко item-и, отколкото му идват и оттам двата му параметъра единствено контролират съотношението "входни item-и/изходни вектори", в повечето случаи няма смисъл да е нещо различно от 1, освен ако предполагам не те мързи да делиш. Не знам какво трябва да се случи ако вход делено на изход дава остатък, вероятно последният генериран вектор ще се пад-ва с нулеви стойности, никога не съм пробвал.

P.S примерен OOT gnuradio блок: https://github.com/gat3way/gr-ale  - можеш да видиш xml-а в grc/ и самата имплементация е в lib/decode_ff_impl.cc

Между другото е мърлява работа набързо колкото да сработи, примерно няма писани тестове, общоприетата именна конвенция не е спазвана 100%, xml-а не е попълнен по всички правила и почти нищо не е документирано, но пък онагледява горе-долу как изглежда нов custom блок.


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 17, 2016, 14:15
За отместването на вектора ето какво ми идва на ум --- обаче все още не е вярно -стрелката е червена. Трябва още накакъв блок () дето да може да обедини няколко вектора (4)  в един сигнал. четирите вектора така както са, се появяват в различни моменти от времето и би трябва да могат някакси да се обединят, да следват един след друг --- обаче не знам с какъв блок.


Титла: Re: Vocoder-и за линукс?
Публикувано от: Naka в Mar 20, 2016, 17:27
Е това е много интересно. http://arss.sourceforge.net/examples.shtml

Xa :D пуснах Lena.mp3 от въпросната страница и на спектрографа наистина излезе самата Лена. :o
Трябва обаче да се пуска на 512 точково fft (защото височината на картинката е 256) (на чернобялата спектрограма от ГНУаудио това по абцисата е честота, въпреки че пише време.)
(http://www.linux-bg.org/forum/index.php?action=dlattach;topic=47277.0;attach=3078)


Титла: Re: Vocoder-и за линукс?
Публикувано от: ЗибелтБг в May 06, 2016, 16:36
Ето Ви как става ревербератор-много е забавно! ;D

(http://alfa.kachi-snimka.info/images-2013/bwy1462541724q.png)