A beszédkódolás egyik módja az ún. adaptív differenciális impulzuskód-moduláció (ADPCM – Adaptive Differential Pulse Code Modulation), amely az analóg jeleket digitalizálja. Az ADPCM az egymást követő beszédminták közötti erős korrelációt kihasználva csak a beszédminta és az előjelzett minta közötti különbséget kódolja le. Visszajátszásnál (dekódolásnál) a következő mintákat predikálja a rendszer. Az ADPCM hatékony tömörítést és minőségi beszédvisszajátszást tesz lehetővé.
Többféle ADPCM-algoritmus létezik. Az Interactive Multimedia Association (IMA) algoritmusának előnye, hogy jelentősen csökkenti a matematikai komplexitást azzal, hogy – lehetőség adtán – táblázatból kikeresett adatokkal helyettesíti a műveletvégzést (jó választás 8 bites mikrokontrolleres alkalmazásokhoz). Mivel az elsődleges feladat a hang visszajátszása, a kódolásra PC-s program használható, a mikrokontrollernek elegendő a dekódolást végeznie.
A visszajátszás interaktívvá tételére a hanganyag darabkáit egyedi, címezhető állományokra bontja a rendszer. Például egy numerikus hőmérsékletérték felolvasásához az 1 … 9, 10, 20, 30, 40, 50, 60, 70, 80 és 90 számokat külön állományokba rögzítik, tehát például a 21 szám visszajátszásánál két fájlt, a 20-at és az 1-et tartalmazókat játssza vissza a mikrokontrolleres rendszer. Az egyes állományok tárolására és felkeresésére egy egyszerű fájlrendszert alkalmaznak. A hangállományok tárolásához szükséges tárterület a bitek számán, a mintavételezés sebességén és a tárolt mennyiségen múlik. Kiváló hangminőségnél (16 bites rögzítés, 8000 minta/s) 1 másodpercnyi hanganyag helyigénye 16 KiB.
Amint a hanganyag az IMA ADPCM algoritmussal kódolásra került, az eredeti méret negyedére zsugorítják össze. A projekthez szükséges hangmennyiségtől függően a tárolás megoldható a mikrokontroller programmemóriájában vagy külső csatlakoztatási flash-memóriában is. Egy 1 Mibit (128 KiB) kapacitású flash-memória kb. 32 másodpercnyi hang tárolására alkalmas, az imént említett feltételek mellett.
A bal oldali ábrán látható folyamatábra összefoglalja a folyamat lépéseit. Első lépésben a hangot PC-n WAV fájlként rögzítik. Másodszor, hangszerkesztő program segítségével az eredeti hangot megfelelően megvágják, és 8000 Hz-en újramintavételezik, majd előjel nélküli, 16 bites little-endian fájlként lementik. A harmadik lépésben az IMA ADPCM algoritmussal kódolják a fájlt, és binárisként lementik, majd a negyedik lépésben egy fájlrendszerbe gyűjtik össze valamennyi hangállományt. Végül, az ötödik lépésben a mikrokontroller saját, vagy a csatlakoztatott külső flash-memóriájába töltik fel.
A rendszer hardverét a jobb oldali ábra mutatja. A mikrokontroller a hangállomány megcímzésével visszajátssza azt a memóriából, a PWM modul segítségével pedig dekódolja azt. A PWM modul kimenetét 4 kHz-es sáváteresztéssel aluláteresztő szűrőn bocsátják keresztül, a keletkező analóg jel pedig erősíthető és hangsugárzón visszajátszható lesz. Továbbá, a hangfelvételek pusztán rögzítések eredményei, tehát dallamok, zenei hangok és egyebek is rátölthetők a rendszerekre, a lehetőségeknek csupán a képzelőerő szab határt.