Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Hangesemények észlelése az Amazon Rekognition segítségével

Amikor a legtöbben a gépi tanulás (ML) hangadatokkal való használatára gondolnak, általában ez a használati eset jut eszébe átírás, más néven beszéd-szöveg. Vannak azonban más hasznos alkalmazások is, beleértve az ML használatát a hangok észlelésére.

A hang észlelésére szolgáló szoftver használata ún hangesemény észlelése, és számos alkalmazással rendelkezik. Tegyük fel például, hogy egy zajos gyári emelet hangjait szeretné figyelni, és figyeli a riasztócsengőt, amely egy gép problémáját jelzi. Egészségügyi környezetben az audioesemény-észlelés segítségével passzívan meghallgathatja a páciens akut egészségügyi problémára utaló hangjait. A médiaterhelések jól illeszkednek ehhez a technikához, például annak észlelésére, ha a játékvezető sípját fújják egy sportvideóban. És természetesen ezt a technikát különféle felügyeleti feladatoknál használhatja, például lövés vagy autóbaleset hangjának hallgatásakor a városi utca fölé szerelt mikrofonból.

Ez a bejegyzés leírja, hogyan lehet észlelni a hangokat egy hangfájlban, még akkor is, ha jelentős háttérhangok zajlanak egyidejűleg. Mi több, talán meglepő, hogy számítógépes látás alapú technikákat használunk az észleléshez, segítségével Amazon felismerés.

Hangadatok használata gépi tanulással

A hangesemények észlelésének első lépése az audioadatok megjelenítésének megértése. Ebben a bejegyzésben csak a rögzített hanganyaggal foglalkozunk, bár ezek a technikák streaming hanggal is működnek.

A felvett hangot általában hangminták sorozataként tárolják, amelyek mérik a felvétel közben a mikrofont megütő hanghullámok intenzitását az idő múlásával. Sokféle formátum létezik ezeknek a mintáknak a tárolására, de az elterjedt megközelítés 10,000 20,000, 40,000 0 vagy akár 65535 XNUMX minta másodpercenkénti tárolása, ahol minden minta XNUMX és XNUMX XNUMX közötti egész szám (két bájt). Mivel minden minta csak a hanghullámok intenzitását méri egy adott pillanatban, a hangadatok általában nem hasznosak az ML-folyamatok számára, mivel nyers állapotban nem rendelkeznek hasznos tulajdonságokkal.

Annak érdekében, hogy ezek az adatok hasznosak legyenek, a hangmintát a rendszer egy képpé alakítja spektrogram, amely a hangadatok reprezentációja, amely a különböző frekvenciasávok intenzitását mutatja az idő függvényében. A következő képen egy példa látható.

Ennek a képnek az X tengelye az időt jelenti, ami azt jelenti, hogy a kép bal széle a hang legeleje, a kép jobb széle pedig a vége. A képen belül minden adatoszlop más-más frekvenciasávot jelöl (ezt a kép bal oldalán található skála jelzi), és az egyes pontokban lévő színek az adott frekvencia intenzitását jelzik az adott pillanatban.

A spektrogramok függőleges skálázása módosítható más ábrázolásokra. Például a lineáris skálázás azt jelenti, hogy az Y tengely egyenletesen van felosztva a frekvenciák között, a logaritmikus skálázás log skálát használ, és így tovább. Az ilyen ábrázolások használatának problémája az, hogy a hangfájlok frekvenciái általában nem egyenletesen oszlanak el, így a legtöbb információ, amelyre kíváncsi lehet, a kép alja (az alacsonyabb frekvenciák) közelében csoportosul.

A probléma megoldására a mintaképünk egy példa a Mel spektrogram, amely úgy van méretezve, hogy közelítse az emberi lények hang észlelését. Figyelje meg a kép bal oldalán lévő frekvenciajelzőket – ezek képet adnak arról, hogyan oszlanak el függőlegesen, és egyértelmű, hogy ez egy nemlineáris skála.

Ezenkívül módosíthatjuk az intenzitás mérését a frekvencia szerint idő szerint, hogy javítsuk a mért hang különböző jellemzőit. A Mel spektrogrammal megvalósított Y tengely skálázáshoz hasonlóan mások olyan jellemzőket hangsúlyoznak, mint a zene tanulmányozására használt 12 jellegzetes hangmagasság-osztály intenzitása (chroma). Egy másik osztály a vízszintes (harmonikus) vagy a függőleges (ütős) vonásokat hangsúlyozza. Az észlelt hang típusának meg kell határoznia az észlelőrendszerhez használt spektrogram típusát.

A korábbi példa spektrogram egy zenei klipet képvisel, amely alig több mint 2 perc hosszú. A nagyítás több részletet tár fel, amint az a következő képen is látható.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A kép tetején lévő számok a hangfájl kezdetétől számított másodpercek számát mutatják. Tisztán látható egy olyan hangsorozat, amely másodpercenként négynél többször ismétlődik, amit a kép alján lévő élénk színek jeleznek.

Amint láthatja, ez az egyik előnye a hang spektrogrammá alakításának – a különálló hangok gyakran szabad szemmel is jól láthatóak, és ha nem is, gyakran észlelhetők számítógépes látás tárgyérzékelő algoritmusaival. Valójában pontosan ezt a folyamatot követjük a hangok észlelése érdekében.

Különálló hangok keresése a spektrogramban

A keresett hangfájl hosszától függően kihívást jelent egy-két másodpercig tartó diszkrét hang megtalálása. Tekintse meg az első megosztott spektrogramot – mivel egy teljes 3:30 perces adatot nézünk, a csak egy másodpercig tartó részletek nem láthatók. Nagyot nagyítottunk, hogy lássuk a második képen látható ritmust. Nyilvánvaló, hogy nagyobb hangfájlokkal (és ezért sokkal nagyobb spektrogrammokkal) gyorsan problémákba ütközünk, hacsak nem használunk más megközelítést. Ezt a megközelítést hívják ablakozórendszer.

Az ablakozás olyan csúszóablak használatát jelenti, amely a teljes spektrogramon mozog, és egyszerre néhány másodpercet (vagy kevesebbet) izolál. Az összkép egyes részeinek ismételt elkülönítésével kisebb képeket kapunk, amelyeken kereshető a detektálandó hang jelenléte. Mivel minden ablak a keresett képnek csak egy részét eredményezheti (mint például egy olyan hang keresése esetén, amely nem pontosan az ablak elején kezdődik), az ablakozást gyakran úgy hajtják végre, hogy a következő ablakok átfedésben vannak. Például az első ablak 0:00-tól kezdődik és 2 másodpercig tart, majd a második ablak 0:01-től kezdődik és 2 másodpercig tart, a harmadik ablak pedig 0:02-től kezdődik és 2 másodpercig tart, és így tovább.

Az ablakozás vízszintesen felosztja a spektrogram képét. Az észlelési folyamat hatékonyságát javíthatjuk bizonyos frekvenciasávok leválasztásával, ha a képnek csak bizonyos függőleges részeit vágjuk le vagy keresünk. Például, ha tudja, hogy az érzékelni kívánt riasztócsengő hangokat hoz létre, amelyek egy adott frekvenciától a másikig terjednek, módosíthatja az aktuális ablakot, hogy csak ezeket a frekvenciatartományokat vegye figyelembe. Ez jelentősen csökkenti a manipulálandó adatok mennyiségét, és sokkal gyorsabb keresést eredményez. A pontosságot is javítja, mert kiküszöböli a kívánt tartományon kívüli frekvenciasávokban előforduló esetleges hamis pozitív egyezéseket. A következő képek összehasonlítják a teljes Y tengelyt (balra) egy korlátozott Y tengellyel (jobbra).

Teljes Y tengely

Teljes Y tengely

Korlátozott Y tengely

Korlátozott Y tengely

Most, hogy tudjuk, hogyan kell ismételni egy spektrogramon ablakos megközelítéssel és bizonyos frekvenciasávokra szűrni, a következő lépés a hang tényleges keresése. Ehhez használjuk Amazon Rekognition egyéni címkék. A Rekognition Custom Labels funkció az Amazon Rekognition meglévő képességeire épít, amely már több tízmillió képre van kiképezve számos kategóriában. Több ezer kép helyett egyszerűen csak egy kis készletet kell feltöltenie a képzési képekből (általában néhány száz kép, de az optimális edzési adatkészlet méretét kísérleti úton kell elérni az adott használati eset alapján, hogy elkerüljük a modell alul- vagy túlképzését ).

Ha képei már fel vannak címkézve, az Amazon Rekognition képzés mindössze néhány kattintással elérhető. Alternatív megoldásként a képeket közvetlenül az Amazon Rekognition címkéző felületén is felcímkézheti, vagy használhatja Amazon SageMaker Ground Truth hogy felcímkézze őket neked. Amikor az Amazon Rekognition elkezdi a képzést az Ön képkészletéből, néhány óra alatt elkészít egy egyedi képelemző modellt. A színfalak mögött a Rekognition Custom Labels automatikusan betölti és ellenőrzi a képzési adatokat, kiválasztja a megfelelő ML-algoritmusokat, betanítja a modellt, és modellteljesítmény-mutatókat biztosít. Ezután használhatja egyéni modelljét a következőn keresztül Rekognition Custom Labels API és integrálja az alkalmazásaiba.

A képzési adatok összegyűjtése és a Rekognition Custom Labels modell betanítása

A A bejegyzéshez társított GitHub repó, talál egy kódot, amely megmutatja, hogyan kell figyelni a fellépő füstjelző hangját a háttérzajtól függetlenül. Ebben az esetben a Rekognition Custom Labels modellünk egy bináris osztályozási modell, ami azt jelenti, hogy az eredmény vagy „füstriasztó hangot észlelt”, vagy „füstriasztó hangot nem észlelt”.

Egyéni modell létrehozásához képzési adatokra van szükségünk. Az edzési adatok két fő típusból állnak: a környezeti hangok és az érzékelni kívánt hangok (például a füstriasztó megszólalása).

A környezeti adatoknak sokféle hangzásképet kell képviselniük, amelyek jellemzőek arra a környezetre, amelyben a hangot érzékelni szeretné. Például, ha füstriasztó hangot szeretne érzékelni gyári környezetben, kezdje az adott gyári környezetben rögzített hangokkal a következő alatt: sokféle helyzet (természetesen a füstjelző megszólalása nélkül).

Az érzékelni kívánt hangokat lehetőség szerint el kell különíteni, vagyis a felvételeknek csak a hangnak kell lenniük, környezeti háttérhangok nélkül. Példánkban ez egy füstjelző hangja.

Miután összegyűjtötte ezeket a hangokat, a GitHub repo kódja megmutatja, hogyan lehet különböző módon kombinálni a környezeti hangokat a füstjelző hangjaival (majd alakítani azokat spektrogrammá), hogy számos, a környezeti hangokat reprezentáló képet hozzon létre. a füstjelzővel és anélkül, rájuk fedő hangok hallhatók. A következő kép néhány környezeti hangra mutat példát, a tetejére egy füstjelző hangot (a fényes vízszintes sávokat) fedve.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A képzési és tesztadatokat egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödör. A következő címtárstruktúra jó kiindulópont az adatok tárolón belüli rendszerezéséhez.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A GitHub-tárban található mintakód lehetővé teszi, hogy kiválassza, hány képzési képet hozzon létre. A Rekognition Custom Labels nem igényel nagy számú képzési képet. Egy 200–500 képből álló képzési készlet elegendő.

A Rekognition Custom Labels projekt létrehozásához meg kell adnia a betanítási adatokat és (opcionálisan) tesztadatokat tartalmazó S3 mappa URI-jét. A betanítási feladat adatforrásainak megadásakor az egyik lehetőség az Automatikus címkézés, ahogy az a következő képernyőképen látható.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ennek az opciónak a használata azt jelenti, hogy az Amazon Rekognition a mappák neveit használja címkenévként. A füstriasztó-érzékelési esetünkben a vonaton belüli mappaszerkezet és a tesztmappák az alábbi képernyőképen néznek ki.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A képzési adatok képei ezekbe a mappákba kerülnek, ahol a füstjelző hangját tartalmazó spektrogramok a riasztási mappába kerülnek, a füstjelző hangját nem tartalmazó spektrogramok pedig a riasztási mappába kerülnek. no_alarm mappát. Az Amazon Rekognition ezeket a neveket használja az egyéni címkemodell kimeneti osztályának neveként.

Egy egyedi címkemodell betanítása általában 30–90 percet vesz igénybe. A képzés végén el kell indítania a betanított modellt, hogy az elérhetővé váljon.

Végpontok közötti architektúra a hangérzékeléshez

Miután elkészítettük a modellünket, a következő lépés egy következtetési csővezeték felállítása, hogy a modell segítségével észlelhessük, ha egy hangfájlban van-e füstjelző hang. Ehhez a bemeneti hangot spektrogrammá kell alakítani, majd ablakozni és frekvencia szerint szűrni, ahogy az a képzési folyamatnál történt. A spektrogram minden ablaka a modellhez tartozik, amely egy besorolást ad vissza, amely jelzi, hogy megszólalt-e a füstriasztó vagy sem.

A következő diagram egy példaarchitektúrát mutat be, amely megvalósítja ezt a következtetési folyamatot.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ez az architektúra arra vár, hogy egy hangfájlt egy S3 tárolóba helyezzenek, ami ezután egy AWS Lambda funkciót kell meghívni. A Lambda egy kiszolgáló nélküli, eseményvezérelt számítási szolgáltatás, amely gyakorlatilag bármilyen típusú alkalmazás vagy háttérszolgáltatás kódjának futtatását teszi lehetővé kiszolgálók kiépítése vagy kezelése nélkül. A Lambda funkciót több mint 200 AWS-szolgáltatásból és szoftverből (SaaS) aktiválhatja, és csak azért fizet, amit használ.

A Lambda funkció megkapja a vödör nevét és az audiofájl kulcsának (vagy fájlnevének) nevét. A fájl az Amazon S3-ról letöltődik a funkció memóriájába, amely aztán spektrogrammá alakítja, és ablakokat és frekvenciaszűrést hajt végre. A spektrogram minden egyes ablakos részét elküldi az Amazon Rekognition rendszernek, amely a korábban betanított Amazon Custom Labels modellt használja a hang észlelésére. Ha ezt a hangot megtalálja, a Lambda funkció jelzi, hogy egy Amazon Simple Notification Service (Amazon SNS) értesítést. Az Amazon SNS egy pub/sub megközelítést kínál, ahol értesítéseket lehet küldeni Amazon Simple Queue Service (Amazon SQS) várólisták, Lambda-funkciók, HTTPS-végpontok, e-mail címek, mobil leküldés stb.

Következtetés

Használhatja a gépi tanulást hangadatokkal annak meghatározására, hogy bizonyos hangok mikor szólalnak meg, még akkor is, ha más hangok hallatszanak egyidejűleg. Ehhez a hangot spektrogram képpé kell alakítani, majd a spektrogram különböző részeire kell beilleszkedni az ablakozás és a frekvenciasáv szerinti szűrés segítségével. A Rekognition Custom Labels megkönnyíti az egyéni hangfelismerési modell betanítását.

Használhatja a GitHub repo amely a bejegyzés példakódját tartalmazza saját kísérletei kiindulópontjaként. Az audioesemény észlelésével kapcsolatos további információkért lásd: Hangesemény-észlelés: oktatóanyag.


A szerzőkről

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.Greg Sommerville Senior Prototyping Architect az AWS Prototyping and Cloud Engineering csapatában, ahol segít az AWS ügyfeleinek innovatív megoldások megvalósításában a gépi tanulás, az IoT és a szerver nélküli technológiák kihívásaira. Ann Arborban él, Michigan államban, és szívesen jógázik, kutyáit látja el és pókerez.

Detect audio events with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jeff Harman Senior Prototyping Architect az AWS Prototyping and Cloud Engineering csapatában, ahol segít az AWS ügyfeleknek innovatív megoldások megvalósításában kihívást jelentő problémákra. A Connecticut állambeli Unionville-ben él, és szeret famegmunkálást, kovácsolást és a Minecraftot.

Időbélyeg:

Még több AWS gépi tanulás