Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Zaznajte zvočne dogodke z Amazon Rekognition

Ko večina ljudi pomisli na uporabo strojnega učenja (ML) z zvočnimi podatki, se na misel običajno spomnijo primeri uporabe prepis, znan tudi kot govor v besedilo. Vendar pa obstajajo še druge uporabne aplikacije, vključno z uporabo ML za zaznavanje zvokov.

Uporaba programske opreme za zaznavanje zvoka se imenuje zaznavanje zvočnih dogodkov, in ima številne aplikacije. Na primer, recimo, da želite spremljati zvoke iz hrupnega tovarniškega nadstropja in poslušati alarm, ki nakazuje težavo s strojem. V zdravstvenem okolju lahko uporabite zaznavanje zvočnih dogodkov za pasivno poslušanje zvokov pacienta, ki kažejo na akutno zdravstveno težavo. Medijske delovne obremenitve so primerne za to tehniko, na primer za zaznavanje, ko v športnem videoposnetku zasliši sodnikov žvižg. In seveda, to tehniko lahko uporabite pri različnih delovnih obremenitvah nadzora, kot je poslušanje strela ali zvoka avtomobilske nesreče iz mikrofona, nameščenega nad mestno ulico.

Ta objava opisuje, kako zaznati zvoke v zvočni datoteki, tudi če se hkrati pojavljajo pomembni zvoki v ozadju. Še več, kar je morda presenetljivo, za odkrivanje uporabljamo tehnike, ki temeljijo na računalniškem vidu Amazonsko ponovno vžiganje.

Uporaba zvočnih podatkov s strojnim učenjem

Prvi korak pri odkrivanju zvočnih dogodkov je razumevanje, kako so zvočni podatki predstavljeni. Za namene te objave obravnavamo samo posneti zvok, čeprav te tehnike delujejo s pretočnim zvokom.

Posneti zvok se običajno shrani kot zaporedje zvočnih vzorcev, ki skozi čas merijo intenzivnost zvočnih valov, ki so med snemanjem zadeli mikrofon. Obstaja veliko različnih formatov za shranjevanje teh vzorcev, vendar je pogost pristop shranjevanje 10,000, 20,000 ali celo 40,000 vzorcev na sekundo, pri čemer je vsak vzorec celo število od 0–65535 (dva bajta). Ker vsak vzorec meri le intenzivnost zvočnih valov v določenem trenutku, zvočni podatki na splošno niso v pomoč procesom ML, ker nimajo uporabnih funkcij v neobdelanem stanju.

Da bi bili ti podatki uporabni, se vzorec zvoka pretvori v sliko, imenovano a spektrogram, ki je predstavitev zvočnih podatkov, ki prikazujejo intenzivnost različnih frekvenčnih pasov skozi čas. Naslednja slika prikazuje primer.

Os X te slike predstavlja čas, kar pomeni, da je levi rob slike sam začetek zvoka, desni rob slike pa konec. Vsak stolpec podatkov na sliki predstavlja različne frekvenčne pasove (označene z lestvico na levi strani slike), barva na vsaki točki pa predstavlja intenzivnost te frekvence v tistem trenutku.

Navpično skaliranje za spektrograme je mogoče spremeniti v druge predstavitve. Na primer, linearno skaliranje pomeni, da je os Y enakomerno razdeljena po frekvencah, logaritemsko skaliranje uporablja log lestvico in tako naprej. Težava pri uporabi teh predstavitev je, da frekvence v zvočni datoteki običajno niso enakomerno porazdeljene, zato je večina informacij, ki bi nas lahko zanimale, na koncu zbranih blizu dna slike (nižje frekvence).

Za rešitev tega problema je naša vzorčna slika primer a Melov spektrogram, ki je prilagojen tako, da se približa temu, kako ljudje zaznavajo zvok. Bodite pozorni na indikatorje frekvence na levi strani slike – dajejo predstavo o tem, kako so porazdeljeni navpično, in jasno je, da gre za nelinearno lestvico.

Poleg tega lahko prilagodimo merjenje intenzivnosti glede na frekvenco in čas, da izboljšamo različne lastnosti zvoka, ki se meri. Tako kot pri skaliranju osi Y, ki ga izvaja spektrogram Mel, drugi poudarjajo lastnosti, kot je intenzivnost 12 značilnih razredov višine, ki se uporabljajo za preučevanje glasbe (kroma). Drugi razred poudarja horizontalne (harmonične) značilnosti ali vertikalne (udaralne) značilnosti. Vrsta zvoka, ki se zaznava, mora vplivati ​​na vrsto spektrograma, ki se uporablja za sistem zaznavanja.

Prejšnji primer spektrograma predstavlja glasbeni posnetek, ki je dolg nekaj več kot 2 minuti. Povečanje razkrije več podrobnosti, kot je prikazano na naslednji sliki.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Številke na vrhu slike prikazujejo število sekund od začetka zvočne datoteke. Jasno lahko vidite zaporedje zvokov, ki se zdi, kot da se ponovi več kot štirikrat na sekundo, kar označujejo svetle barve na dnu slike.

Kot lahko vidite, je to ena od prednosti pretvorbe zvoka v spektrogram – različni zvoki so pogosto zlahka vidni s prostim očesom, in tudi če niso, jih je pogosto mogoče zaznati z algoritmi za zaznavanje predmetov računalniškega vida. Pravzaprav je to natanko postopek, ki ga uporabljamo za zaznavanje zvokov.

Iskanje diskretnih zvokov v spektrogramu

Odvisno od dolžine zvočne datoteke, ki jo iščemo, je iskanje diskretnega zvoka, ki traja samo sekundo ali dve, izziv. Oglejte si prvi spektrogram, ki smo ga delili – ker si ogledujemo celotne 3:30 minute podatkov, podrobnosti, ki trajajo le sekundo ali več, niso vidne. Zelo smo povečali, da bi videli ritem, ki je prikazan na drugi sliki. Jasno je, da pri večjih zvočnih datotekah (in zato veliko večjih spektrogramih) hitro naletimo na težave, razen če uporabimo drugačen pristop. Ta pristop se imenuje okna.

Okno se nanaša na uporabo drsnega okna, ki se premika po celotnem spektrogramu in izolira nekaj sekund (ali manj) naenkrat. Z večkratnim izoliranjem delov celotne slike dobimo manjše slike, po katerih je mogoče iskati prisotnost zvoka, ki ga je treba zaznati. Ker lahko vsako okno povzroči le del slike, ki jo iščemo (kot v primeru iskanja zvoka, ki se ne začne točno na začetku okna), se okna pogosto izvedejo tako, da se naslednja okna prekrivajo. Na primer, prvo okno se začne ob 0:00 in traja 2 sekundi, nato se drugo okno začne ob 0:01 in traja 2 sekundi, tretje okno pa se začne ob 0:02 in traja 2 sekundi itd.

Okno vodoravno razdeli sliko spektrograma. Učinkovitost procesa zaznavanja lahko izboljšamo tako, da izoliramo določene frekvenčne pasove z obrezanjem ali iskanjem le po določenih navpičnih delih slike. Na primer, če veste, da alarmni zvonec, ki ga želite zaznati, oddaja zvoke, ki segajo od ene določene frekvence do druge, lahko spremenite trenutno okno tako, da bo upoštevalo samo ta frekvenčna območja. To znatno zmanjša količino podatkov, s katerimi je treba manipulirati, in povzroči veliko hitrejše iskanje. Prav tako izboljša natančnost, ker odpravlja morebitna lažno pozitivna ujemanja, ki se pojavljajo v frekvenčnih pasovih zunaj želenega obsega. Naslednje slike primerjajo celotno os Y (levo) z omejeno osjo Y (desno).

Polna os Y

Polna os Y

Omejena os Y

Omejena os Y

Zdaj, ko vemo, kako ponoviti spektrogram z okenskim pristopom in filtrirati določene frekvenčne pasove, je naslednji korak dejansko iskanje zvoka. Za to uporabljamo Oznake po meri za ponovno odstranjevanje Amazon. Funkcija Rekognition Custom Labels nadgrajuje obstoječe zmogljivosti Amazon Rekognition, ki je že usposobljena na več deset milijonih slik v številnih kategorijah. Namesto na tisoče slik morate preprosto naložiti majhen niz slik za usposabljanje (običajno nekaj sto slik, vendar je treba optimalno velikost nabora podatkov za usposabljanje doseči eksperimentalno na podlagi specifičnega primera uporabe, da se izognete premajhnemu ali pretiranemu usposabljanju modela ), ki so specifične za vaš primer uporabe prek konzole Rekognition Custom Labels.

Če so vaše slike že označene, je usposabljanje Amazon Rekognition dostopno z le nekaj kliki. Druga možnost je, da slike označite neposredno v vmesniku za označevanje Amazon Rekognition ali uporabite Amazon SageMaker Ground Truth da jih označimo za vas. Ko Amazon Rekognition začne usposabljanje iz vašega nabora slik, vam v samo nekaj urah izdela model analize slike po meri. Rekognition Custom Labels v zakulisju samodejno naloži in pregleda podatke o usposabljanju, izbere prave algoritme ML, usposobi model in zagotovi meritve uspešnosti modela. Nato lahko uporabite svoj model po meri prek API za prepoznavanje nalepk po meri in ga integrirajte v svoje aplikacije.

Sestavljanje podatkov o usposabljanju in usposabljanje modela Rekognition Custom Labels

v GitHub repo, povezan s to objavo, boste našli kodo, ki prikazuje, kako poslušati zvok dimnega alarma, ne glede na hrup v ozadju. V tem primeru je naš model Rekognition Custom Labels binarni klasifikacijski model, kar pomeni, da so rezultati bodisi »zaznan je bil zvok dimnega alarma« ali »zvok dimnega alarma ni bil zaznan«.

Za ustvarjanje modela po meri potrebujemo podatke o usposabljanju. Ti podatki o usposabljanju so sestavljeni iz dveh glavnih vrst: zvokov iz okolja in zvokov, ki jih želite zaznati (na primer sprožitev alarma za dim).

Podatki o okolju bi morali predstavljati široko paleto zvočnih pokrajin, ki so značilne za okolje, v katerem želite zaznati zvok. Na primer, če želite zaznati zvok dimnega alarma v tovarniškem okolju, začnite z zvoki, posnetimi v tem tovarniškem okolju pod različne situacije (seveda brez sproženega alarma za dim).

Zvoki, ki jih želite zaznati, morajo biti izolirani, če je to mogoče, kar pomeni, da morajo biti posnetki samo zvok brez kakršnih koli zvokov iz okolja. Za naš primer je to zvok dimnega alarma, ki se sproži.

Ko zberete te zvoke, koda v repozitoriju GitHub pokaže, kako na različne načine združiti zvoke iz okolja z zvoki alarma za dim (in jih nato pretvoriti v spektrograme), da ustvarite številne slike, ki predstavljajo zvoke iz okolja z in brez prekritih zvokov dimnega alarma. Naslednja slika je primer nekaterih okoljskih zvokov z zvokom alarma za dim (svetle vodoravne črte), ki se nahaja na vrhu.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Podatki o usposabljanju in preizkusih so shranjeni v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro. Naslednja struktura imenika je dobro izhodišče za organiziranje podatkov znotraj vedra.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Vzorčna koda v repo GitHub vam omogoča, da izberete, koliko slik za usposabljanje želite ustvariti. Prepoznavanje nalepk po meri ne zahteva velikega števila slik za usposabljanje. Nabor za usposabljanje 200–500 slik bi moral zadostovati.

Ustvarjanje projekta Rekognition Custom Labels zahteva, da podate URI-je mape S3, ki vsebuje podatke o usposabljanju in (izbirno) testne podatke. Pri določanju podatkovnih virov za delo usposabljanja je ena od možnosti Samodejno označevanje, kot je prikazano na naslednjem posnetku zaslona.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Uporaba te možnosti pomeni, da Amazon Rekognition uporablja imena map kot imena oznak. Za naš primer uporabe zaznavanja dimnih alarmov je struktura map znotraj vlaka in testnih map videti kot naslednji posnetek zaslona.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Slike podatkov o usposabljanju gredo v te mape, pri čemer so spektrogrami, ki vsebujejo zvok dimnega alarma, v mapi alarmov, spektrogrami, ki ne vsebujejo zvoka dimnega alarma, pa v no_alarm mapo. Amazon Rekognition ta imena uporablja kot imena izhodnih razredov za model oznak po meri.

Usposabljanje modela etikete po meri običajno traja 30–90 minut. Na koncu tega usposabljanja morate zagnati usposobljeni model, da bo na voljo za uporabo.

Arhitektura od konca do konca za zaznavanje zvoka

Ko ustvarimo svoj model, je naslednji korak nastavitev cevovoda sklepanja, tako da lahko uporabimo model za odkrivanje, ali je v zvočni datoteki prisoten zvok alarma za dim. Da bi to naredili, je treba vhodni zvok pretvoriti v spektrogram in nato okno in filtrirati po frekvenci, kot je bilo storjeno za proces usposabljanja. Vsako okno spektrograma je dano modelu, ki vrne klasifikacijo, ki pove, ali se je alarm za dim oglasil ali ne.

Naslednji diagram prikazuje primer arhitekture, ki izvaja ta sklepni cevovod.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Ta arhitektura čaka, da se zvočna datoteka postavi v vedro S3, kar nato povzroči AWS Lambda funkcijo, ki jo je treba priklicati. Lambda je brezstrežniška računalniška storitev, ki temelji na dogodkih in vam omogoča zagon kode za skoraj vse vrste aplikacij ali zalednih storitev brez zagotavljanja ali upravljanja strežnikov. Funkcijo Lambda lahko sprožite iz več kot 200 storitev AWS in aplikacij programske opreme kot storitve (SaaS) in plačate samo tisto, kar uporabite.

Funkcija Lambda prejme ime vedra in ime ključa (ali ime datoteke) zvočne datoteke. Datoteka se prenese iz Amazon S3 v pomnilnik funkcije, ki jo nato pretvori v spektrogram in izvede okensko in frekvenčno filtriranje. Vsak okenski del spektrograma se nato pošlje v Amazon Rekognition, ki za zaznavanje zvoka uporablja predhodno usposobljen model Amazon Custom Labels. Če je ta zvok najden, funkcija Lambda to sporoči z uporabo Amazon Simple notification Service (Amazon SNS) obvestilo. Amazon SNS ponuja pristop pub/sub, kamor se lahko pošiljajo obvestila Storitev Amazon Simple Queue Service (Amazon SQS) čakalne vrste, funkcije Lambda, končne točke HTTPS, e-poštni naslovi, mobilni push in drugo.

zaključek

S strojnim učenjem z zvočnimi podatki lahko ugotovite, kdaj se pojavijo določeni zvoki, tudi če se drugi zvoki pojavljajo istočasno. To zahteva pretvorbo zvoka v sliko spektrograma in nato usmerjanje na različne dele tega spektrograma z oknom in filtriranjem po frekvenčnem pasu. Rekognition Custom Labels omogoča preprosto usposobitev modela po meri za zaznavanje zvoka.

Lahko uporabite GitHub repo ki vsebuje primer kode za to objavo kot izhodišče za vaše lastne poskuse. Za več informacij o zaznavanju zvočnih dogodkov glejte Zaznavanje zvočnih dogodkov: Vadnica.


O avtorjih

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Greg Sommerville je višji arhitekt za izdelavo prototipov v skupini za izdelavo prototipov in inženiring v oblaku AWS, kjer strankam AWS pomaga implementirati inovativne rešitve za zahtevne težave s strojnim učenjem, internetom stvari in tehnologijami brez strežnikov. Živi v Ann Arborju v Michiganu in uživa v vadbi joge, skrbi za svoje pse in igra poker.

Zaznajte zvočne dogodke z Amazon Rekognition PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Jeff Harman je višji arhitekt za izdelavo prototipov v skupini za izdelavo prototipov in inženiring v oblaku AWS, kjer strankam AWS pomaga implementirati inovativne rešitve za zahtevne probleme. Živi v Unionvillu v Connecticutu in uživa v obdelavi lesa, kovaštvu in Minecraftu.

Časovni žig:

Več od Strojno učenje AWS