Önálló laboratórium II május 23.1 Mobiltelefonon futtatható program készítése Hegedűs Iván Mihály Pázmány Péter Katolikus Egyetem Információs Technológiai Kar
Önálló laboratórium II május 23.2 Feladat Működő programok készítése Időkeretek kialakítása Beszédmintákból spektrális jellemzők kinyerése megfelelő algoritmussal Mit sikerült megvalósítani?
Önálló laboratórium II május 23.3 Audio input stream A készülék beépített mikrofonját használja a felvétel készítéséhez. Alkalmassá tehető valós idejű felvétel készítésére. Közvetlenül a készülék pufferében szakaszonként tárolja a mintákat, amelyekből az adatokat szeretnénk kinyerni. Alkalmas még a rögzített hang visszajátszására is. Támogatja UIQ platformot is megfelelő kiegészítő csomaggal
Önálló laboratórium II május 23.4 Audio input stream módosítások Több mintavétel Puffer méret Zero-Crossing és puffer maximum Dinamikus tömb 32 bites konverzió const TInt KBufferSize = 2048; // A buffer mérete, 1024 minta. … int meret = aBuffer.Size(); meret=meret/2; TReal32 * mintabe = new TReal32[meret]; // A dinamikus tömb. for (int i=0;i<aBuffer.Size()/2;i++) { tmp= aBuffer[i*2]+aBuffer[i*2+1]*256; mintabe[i]=TReal32(tmp); // Értékek átvétele }
Önálló laboratórium II május 23.5 FFT - Fast Fourier Transformation Rendelkezésünkre állt egy négyzetes FFT Implementáció: C kód Objektumorientáltság Symbian Köszönet Bárdi Tamásnak! Emulátor vs. Készülék
Önálló laboratórium II május 23.6 FFT és Audió input stream int meret = aBuffer.Size(); meret=meret/2; TReal * x = new TReal[meret];// saját tömb FFT * f = new FFT(); TInt16 tmp, // átmeneti buffer infó mx=0, // maximális buffer érték zc=0, // zero-crossing elo=0; // előző for (int i=0;i<aBuffer.Size()/2;i++) { tmp=aBuffer[i*2]+aBuffer[i*2+1] *256; x[i]=TReal(tmp); if (elo*tmp < 0) zc++; if (abs(tmp) > mx) mx=abs(tmp); elo=tmp; } f->itkRealFFT(x,meret); for(i=0;i<meret;i++){ if (x[i]>0) buf.AppendNum(x[i],TRealFormat()); i=meret+1; } A két program egyesítése a cél A felvett mintákon FFT alkalmazása Emulátoron működik Készülékre nem fordul A Series 60 rejtélye?
Önálló laboratórium II május 23.7 Rekurzív FFT algoritmus Lassú és erőforrás igényes!!!
Önálló laboratórium II május 23.8 WavPayer Saját fejlesztés „CMdaAudioPlayerUtility” egyszerű hangkezelést biztosít Egy wav fájl lejátszása Tovább fejlesztési lehtőség Recorder és Lejátszandó fájlok kiválasztása
Önálló laboratórium II május 23.9 Összegzés Sajnos még vannak emulátor és készülék problémák (kódeltérés) Vannak bíztató eredményeink! Saját programok! Sikerült megvalósítani a mintaelemzést! Jó csapatmunka gyömölcse!
Önálló laboratórium II május Köszönöm a figyelmet!