Caute lidi mate nekdo skusenosti s programovanim v c/c++?
potreboval bych poradit jak nacist stereowavku secist ova kanaly a pak to ulozit?
diky predem za pomoc
P.S. celkem to zpecha
Caute lidi mate nekdo skusenosti s programovanim v c/c++?
potreboval bych poradit jak nacist stereowavku secist ova kanaly a pak to ulozit?
diky predem za pomoc
P.S. celkem to zpecha
zkus si precist kapitoly 17 - 20 snad ti ta SDL knihovna spis ta ( SDL_sound ) pomuze .
http://www.root.cz/clanky/sdl-hry-nejen-pro-linux-17/
http://www.root.cz/clanky/sdl-hry-nejen-pro-linux-18/
Naposledy upravil melandr; 17.07.2007 v 13:29.
hmmm, tak jsem si to precetl, ty stranky, ale nijak mi to nepomohlo.
Tento problem jsem nastinil pod tematem Pomoc - specha, tak jestli nekdo vi jak na to a mohl by mi nejak poradit, byl bych docela rad, ja vtom totiz docela plavu.
Mám pocit, že potřebuješ aby Ti to někdo udělal. Zkus vypsat nějakou odměnu, a přesný popis zadání, třeba se někdo uvolí...
Dell XPS 1210,Sams 275t,Microsoft XBOX360,Natural Mouse 6000 + Keyboard 4000,Windows 7 ProfessionalBlondie : You see in this world there's two kinds of people, my friend. Those with loaded guns, and those who dig. You dig.
jo presne tak, jelikoz jsem uplne mimo.
Zadani je takove ze:
1. Nahrej wav do pameti
2. slouci stopy tj. vem vzorek leveho kanalu.
vem vzorek praveho kanalu.
secti,vydel dvema a opakuj na cele data.
3.Uloz vysledek.
a pak jeste:
Filtrace obou kanalu, tak aby si potlacil frekvencni pasmo, ktere zabira hlas a pak tyto stopy secetl do jedne.
kdo by mi to vypracoval nebo pomohl odmena dohodou.
Našel jsem ti nějaký tutoriál. Udělej si příklady z toho tutoriálu a pak můžeš pokročit dál.
http://www.kekkai.org/roger/sdl/index.html
EDIT: Pokud by tě zajímalo víc, nebo by ti tento tutorial nevyhovoval, můžeš zadat do googlu "SDL_mixer".
Naposledy upravil Camillek; 28.07.2007 v 10:57.
Přirozená inteligence bude zřejmě brzy překonána inteligencí umělou, avšak přirozenou blbost umělá nikdy překonat nedokáže.
potrebuji poradit jak mam udelat:
Filtrace obou kanalu, tak aby si potlacil frekvencni pasmo, ktere zabira hlas a pak tyto stopy secetl do jedne.
No tomuhle zase tak nerozumim, ale imho v momente kdy chces delat cokoliv z frekvencnim prubehem zvuku, musi nastoupit Furierova transformace. To je celkem slozita matematika, ja osobne sem nemel nikdy potrebuju to studovat ci to dokonce programovat
Kazdopadne na odstraneni hlasu se myslim pouziva takovej trik. Vyuziva se toho, ze vokaly byvaji az na vyjimky nahravany monofonne - tj. v levem a pravem kanalu je vokal zastoupen naprosto stejne. Pokud v jednom kanalu ve frekvencnim pasmu hlasu (tj. zde imho opet potrebujes FFT) otocis fazi a sectes to s kanalem druhym, vokal by se mel vyrusit.
Kazdopadne, neni nic jednodussiho nez si stahnout zdrojove kody nejakeho "voice removal" pluginu z nejakeho GPL prehravace, pod linux jich jsou tuny.
Audiotrak Prodigy HD2 (2xOPA2134PA + LT1364) => Little Dot I+ (WE408A + AD8022) => Sennheiser HD555@595
Asus Xonar D1 => Technics SU-A800 => Tesla 2xARN6608 + ARV-104
Caleb - mam na tebe prosbu na neznas nejake odkazy kde bych to nasel prosim te?
Presne jak popisuje Caleb,
na jednoduche odstraneni hlasu se pouziva jim popsany postup a to preci neni zadna slozita matematika
Jelikoz jsem ted psal bakalarku o audio kompresich, tak ti muzu rict, ze vazne zadna velka vec
Pokud chces ale pak opravdu neco extra tak to vede na prevod zvuku do frekvencniho pasma a presne potlacovani frekvenci a jeste lepe nejaky prediktor detekujici hlas. Prace minimalne na diplomku
EDIT:
Takze pro jistotu jednoduchej navod
Nacti si ten WAV nebo v cem to mas mit - nejlepe nejakou knihovnou WAV muze obsahovat i komprimovana data
Kdyz mas stereo zvuk mel by jsi dostat 2D pole delky vzorkovaci frekvence x delka zvuku v sekundach
Udelas si dalsi 1D pole stejne delky treba c
A jen hloupym for cyklem projedes cele pole a udelas
c[i]=(zvuk[i][0]-zvuk[i][1])/2
A v c mas mono zvuk s potlacenym hlasem
Schvalne jsem si to ted delal pro RAW format, zalezitost asi 15ti minut..
Jen samozrejmne doporucuju nenacitat ten wav cely, buhvi jak to je velke takze hezky po kouskach do nejakeho bufferu..
Welcome to real world
EDIT2:
Tohle je samozrejme metoda zalozena jen na heuristice, takze to neodfiltruje vse a je k tomu potreba stereo zvuk, kde je hlas ve stredu, pokud bude jen v jednom kanalu tak proste smula a musis to resit pres frekvencni propuste
IMHO pokud to mas do skoly (teda treba na vysoke) neverim tomu, ze by tohle reseni stacilo, spis bych cekal prevod do kmitoctove oblast, pote profiltrovat pres inteligetne nastaveny filtr a zpatky to nacpat do casove oblasti a ulozit
Naposledy upravil mike.pr; 17.08.2007 v 21:47.
Tak jak pise mike.pr to jde, ale jak sam pise, (L-R)/2 je celkem spatny filtr..
Vsak muzete zkusit...upravil jsem priklad z FMOD Ex baliku pro tento pripad.
Download: http://files.cikl.eu/vr.zipKód:FMOD_RESULT F_CALLBACK myDSPCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int outchannels) { unsigned int count, userdata; int count2; char name[256]; float diff = 0.0f; FMOD_DSP *thisdsp = dsp_state->instance; /* This redundant call just shows using the instance parameter of FMOD_DSP_STATE and using it to call a DSP information function. */ FMOD_DSP_GetInfo(thisdsp, name, 0, 0, 0, 0); FMOD_DSP_GetUserData(thisdsp, (void **)&userdata); /* This loop assumes inchannels = outchannels, which it will be if the DSP is created with '0' as the number of channels in FMOD_DSP_DESCRIPTION. Specifying an actual channel count will mean you have to take care of any number of channels coming in, but outputting the number of channels specified. Generally it is best to keep the channel count at 0 for maximum compatibility. */ for (count = 0; count < length; count++) { diff = (inbuffer[(count * inchannels) + 0] - inbuffer[(count * inchannels) + 1]) * 0.5f; // filtr hlasu /* Feel free to unroll this. */ for (count2 = 0; count2 < outchannels; count2++) { outbuffer[(count * outchannels) + count2] = diff; } } return FMOD_OK; }
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
JJ rikal jsem ze je to spatny filtr,
ale udelat poradny uz takova sranda neni a hodne verejne dostupnych voice removal pluginu funguje stejne takhle.
Takze leda bud vice studovat a zkouset, protoze pokud nekdo tohle sam neresil, tak tu uz asi lepsi rada nebude![]()
Ted jsem jeste zkousel plugin do foobaru - http://pelit.koillismaa.fi/plugins/show.php?id=192
- ma pouzivat FFT, ale vysledek neni o nic moc lepsi nez predchozi zpusob..
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
Nazdarek Mike.pr a Andural, jsem rad za ty rady, ale pouzil jsem tento kod http://people.msoe.edu/~taylor/examples/wav.htm a potebuji jeste k tomu udelat to odfiltrovani toho frekvecniho pasma, ktere zabira hlas, a proto bych chtel jestli byste mi jeste neporadili nebo nenapsali ten kod jak to ma byt, ja jsem z toho uplny jelen.
Naposledy upravil mstitol; 20.08.2007 v 08:29.
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)