Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Tunnista äänitapahtumat Amazon Rekognitionin avulla

Kun useimmat ihmiset ajattelevat koneoppimisen (ML) käyttämistä äänidatan kanssa, mieleen tulee yleensä käyttötapaus transkriptio, joka tunnetaan myös nimellä puhe tekstiksi. On kuitenkin muita hyödyllisiä sovelluksia, kuten ML:n käyttö äänien havaitsemiseen.

Ohjelmiston käyttöä äänen havaitsemiseen kutsutaan äänitapahtuman tunnistus, ja siinä on useita sovelluksia. Oletetaan esimerkiksi, että haluat seurata meluisan tehtaan lattian ääniä ja kuunnella hälytyskelloa, joka ilmoittaa koneen ongelmasta. Terveydenhuoltoympäristössä voit käyttää äänitapahtumien tunnistusta kuunnellaksesi passiivisesti potilaan ääniä, jotka osoittavat akuuttia terveysongelmaa. Mediatyökuormat sopivat hyvin tähän tekniikkaan, esimerkiksi havaitsemaan, milloin erotuomarin pilli puhaltaa urheiluvideossa. Ja tietysti voit käyttää tätä tekniikkaa erilaisissa valvontatyökuormissa, kuten laukauksen tai kolariäänen kuuntelussa kaupungin kadun yläpuolelle asennetusta mikrofonista.

Tämä viesti kuvaa kuinka tunnistaa ääniä äänitiedostossa, vaikka samanaikaisesti esiintyisi merkittäviä taustaääniä. Lisäksi, ehkä yllättäen, käytämme tietokonenäköön perustuvia tekniikoita havaitsemiseen Amazonin tunnistus.

Äänitietojen käyttäminen koneoppimisen kanssa

Ensimmäinen askel äänitapahtumien havaitsemisessa on ymmärtää, kuinka äänidata esitetään. Tässä viestissä käsittelemme vain tallennettua ääntä, vaikka nämä tekniikat toimivatkin äänen suoratoiston kanssa.

Tallennettu ääni tallennetaan tyypillisesti ääninäytteiden sarjana, joka mittaa mikrofoniin tallennuksen aikana osuneiden ääniaaltojen voimakkuutta ajan kuluessa. Näiden näytteiden tallentamiseen on olemassa monenlaisia ​​​​muotoja, mutta yleinen lähestymistapa on tallentaa 10,000 20,000, 40,000 0 tai jopa 65535 XNUMX näytettä sekunnissa, jolloin jokainen näyte on kokonaisluku väliltä XNUMX–XNUMX (kaksi tavua). Koska jokainen näyte mittaa vain ääniaaltojen voimakkuutta tietyllä hetkellä, äänidata ei yleensä ole hyödyllinen ML-prosesseissa, koska sillä ei ole mitään hyödyllisiä ominaisuuksia sen raakatilassa.

Jotta tiedoista olisi hyötyä, ääninäyte muunnetaan kuvaksi nimeltä a spektrogrammi, joka on esitys äänidatasta, joka näyttää eri taajuuskaistojen intensiteetin ajan kuluessa. Seuraavassa kuvassa on esimerkki.

Tämän kuvan X-akseli edustaa aikaa, mikä tarkoittaa, että kuvan vasen reuna on aivan äänen alku ja kuvan oikea reuna on loppu. Kukin kuvan tietosarake edustaa eri taajuuskaistoja (osoitetaan kuvan vasemmalla puolella olevalla asteikolla), ja kunkin pisteen väri edustaa kyseisen taajuuden intensiteettiä sillä hetkellä.

Spektrogrammien pystyskaalaus voidaan muuttaa muihin esityksiin. Esimerkiksi lineaarinen skaalaus tarkoittaa, että Y-akseli on jaettu tasaisesti taajuuksille, logaritminen skaalaus käyttää log-asteikkoa ja niin edelleen. Ongelma näiden esitysten käytössä on, että äänitiedoston taajuudet eivät yleensä ole jakautuneet tasaisesti, joten suurin osa tiedoista, joista saatamme olla kiinnostunut, päätyy ryhmittymään lähelle kuvan alaosaa (alemmat taajuudet).

Tämän ongelman ratkaisemiseksi esimerkkikuvamme on esimerkki a Mel spektrogrammi, joka on skaalattu lähelle sitä, miten ihmiset havaitsevat äänen. Huomaa kuvan vasemmalla puolella olevat taajuusilmaisimet – ne antavat käsityksen siitä, kuinka ne jakautuvat pystysuunnassa, ja on selvää, että kyseessä on epälineaarinen asteikko.

Lisäksi voimme muokata intensiteetin mittausta taajuudella ajan mukaan parantaaksemme mitattavan äänen eri ominaisuuksia. Kuten Y-akselin skaalaus, joka toteutetaan Mel-spektrogrammilla, toiset korostavat ominaisuuksia, kuten musiikin (kroman) opiskeluun käytettyjen 12 erottuvan äänenvoimakkuusluokan intensiteettiä. Toinen luokka korostaa vaakasuuntaisia ​​(harmonisia) piirteitä tai pystysuoria (lyömäisiä) piirteitä. Havaittavan äänen tyypin pitäisi ohjata tunnistusjärjestelmässä käytettävää spektrogrammia.

Aikaisempi esimerkkispektrogrammi edustaa musiikkileikettä, joka on hieman yli 2 minuuttia pitkä. Zoomaus paljastaa enemmän yksityiskohtia, kuten seuraavasta kuvasta näkyy.

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Numerot kuvan yläosassa osoittavat sekuntien määrän äänitiedoston alusta. Näet selkeästi äänisarjan, joka näyttää toistuvan enemmän kuin neljä kertaa sekunnissa, minkä osoittavat kuvan alaosan kirkkaat värit.

Kuten näet, tämä on yksi äänen muuntamisen spektrogrammeiksi eduista – selkeät äänet ovat usein helposti nähtävissä paljaalla silmällä, ja vaikka ne eivät olisikaan, ne voidaan usein havaita käyttämällä tietokonenäkökohteiden tunnistusalgoritmeja. Itse asiassa noudatamme juuri tätä prosessia havaitaksemme ääniä.

Etsitkö erillisiä ääniä spektrogrammista

Riippuen etsimämme äänitiedoston pituudesta, vain sekunnin tai kaksi kestävän erillisen äänen löytäminen on haaste. Katso ensimmäinen jakamamme spektrogrammi – koska tarkastelemme koko 3:30 minuutin dataa, vain sekunnin kestävät yksityiskohdat eivät näy. Zoomasimme paljon nähdäksemme toisessa kuvassa näkyvän rytmin. On selvää, että suurempien äänitiedostojen (ja siten paljon suurempien spektrogrammien) kanssa törmäämme nopeasti ongelmiin, ellemme käytä erilaista lähestymistapaa. Tätä lähestymistapaa kutsutaan ikkunat.

Ikkunointi tarkoittaa liukuvan ikkunan käyttöä, joka liikkuu koko spektrogrammin poikki ja eristää muutaman sekunnin (tai vähemmän) kerrallaan. Eristämällä toistuvasti osia kokonaiskuvasta saamme pienempiä kuvia, joista voidaan etsiä havaittavaa ääntä. Koska jokainen ikkuna voi johtaa vain osaan etsimästämme kuvasta (kuten jos etsitään ääntä, joka ei ala tarkasti ikkunan alusta), ikkunointi suoritetaan usein niin, että seuraavat ikkunat menevät päällekkäin. Esimerkiksi ensimmäinen ikkuna alkaa 0:00 ja jatkuu 2 sekuntia, sitten toinen ikkuna alkaa 0:01 ja jatkuu 2 sekuntia ja kolmas ikkuna alkaa 0:02 ja jatkuu 2 sekuntia ja niin edelleen.

Ikkunaus jakaa spektrogrammin kuvan vaakasuunnassa. Voimme parantaa tunnistusprosessin tehokkuutta eristämällä tietyt taajuuskaistat rajaamalla tai etsimällä vain tiettyjä pystysuoria osia kuvasta. Jos esimerkiksi tiedät, että hälytyskello, jonka haluat havaita, luo ääniä, jotka vaihtelevat tietystä taajuudesta toiseen, voit muokata nykyistä ikkunaa siten, että se ottaa huomioon vain kyseiset taajuusalueet. Tämä vähentää huomattavasti manipuloitavien tietojen määrää ja johtaa paljon nopeampaan hakuun. Se myös parantaa tarkkuutta, koska se eliminoi mahdolliset väärät positiiviset osumat, joita esiintyy halutun alueen ulkopuolella olevilla taajuuskaistoilla. Seuraavissa kuvissa verrataan täyttä Y-akselia (vasemmalla) rajoitettuun Y-akseliin (oikealla).

Täysi Y-akseli

Täysi Y-akseli

Rajoitettu Y-akseli

Rajoitettu Y-akseli

Nyt kun tiedämme kuinka iteroida spektrogrammin yli ikkunointimenetelmällä ja suodattaa tietyille taajuuskaistoille, seuraava askel on tehdä varsinainen äänen haku. Sitä varten käytämme Amazon Rekognition mukautetut etiketit. Rekognition Custom Labels -ominaisuus rakentuu Amazon Rekognitionin nykyisistä ominaisuuksista, joka on jo koulutettu kymmeniin miljooniin kuviin useissa luokissa. Tuhansien kuvien sijaan sinun on vain ladattava pieni joukko harjoituskuvia (yleensä muutama sata kuvaa, mutta optimaalinen harjoitustietojoukon koko tulisi saavuttaa kokeellisesti tietyn käyttötapauksen perusteella, jotta mallin ali- tai yliharjoittelu vältytään ), jotka ovat erityisiä käyttötapauksiasi Rekognition Custom Labels -konsolin kautta.

Jos kuvasi on jo merkitty, Amazon Rekognition -koulutus on käytettävissä vain muutamalla napsautuksella. Vaihtoehtoisesti voit merkitä kuvat suoraan Amazon Rekognition -merkintäliittymässä tai käyttää Amazon SageMaker Ground Totuus merkitä ne puolestasi. Kun Amazon Rekognition aloittaa harjoittelun kuvasarjastasi, se tuottaa sinulle mukautetun kuva-analyysimallin muutamassa tunnissa. Kulissien takana Rekognition Custom Labels lataa ja tarkastaa harjoitustiedot automaattisesti, valitsee oikeat ML-algoritmit, kouluttaa mallin ja tarjoaa mallin suorituskykymittareita. Voit sitten käyttää mukautettua malliasi -sovelluksen kautta Rekognition Custom Labels API ja integroi se sovelluksiisi.

Harjoitustietojen kokoaminen ja Rekognition Custom Labels -mallin harjoittaminen

In Tähän viestiin liittyvä GitHub-repo, löydät koodin, joka näyttää kuinka kuunnella palovaroittimen ääntä taustamelusta riippumatta. Tässä tapauksessa Rekognition Custom Labels -mallimme on binääriluokitusmalli, mikä tarkoittaa, että tulokset ovat joko "savuhälytysääntä havaittiin" tai "savuhälytysääntä ei havaittu".

Mukautetun mallin luomiseksi tarvitsemme koulutustietoja. Nämä harjoitustiedot koostuvat kahdesta päätyypistä: ympäristöäänet ja äänet, jotka haluat havaita (kuten palovaroittimen laukeaminen).

Ympäristötietojen tulee edustaa laajaa valikoimaa äänimaisemia, jotka ovat tyypillisiä sille ympäristölle, jossa haluat havaita äänen. Jos esimerkiksi haluat havaita palovaroittimen äänen tehdasympäristössä, aloita kyseisessä tehdasympäristössä tallennetuista äänistä kohdassa erilaisia ​​tilanteita (tietysti ilman palovaroittimen soimista).

Äänet, jotka haluat havaita, on mahdollisuuksien mukaan eristettävä, mikä tarkoittaa, että tallenteiden tulee olla vain itse ääni ilman ympäristön taustaääniä. Esimerkissämme se on palovaroittimen laukeamisen ääni.

Kun olet kerännyt nämä äänet, GitHub-repon koodi näyttää, kuinka ympäristöäänet yhdistetään palovaroittimen ääniin eri tavoilla (ja sitten muunnetaan ne spektrogrammeiksi) ympäristöääniä edustavien kuvien luomiseksi. palovaroittimen kanssa ja ilman, niiden päällä kuuluu ääniä. Seuraava kuva on esimerkki ympäristöäänistä, joiden päällä on savuhälytysääni (kirkkaat vaakasuuntaiset palkit).

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Harjoittelu- ja testitiedot tallennetaan Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ämpäri. Seuraava hakemistorakenne on hyvä lähtökohta tietojen järjestämiselle sängyn sisällä.

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

GitHub-repon esimerkkikoodin avulla voit valita, kuinka monta harjoituskuvaa luodaan. Rekognition Custom Labels ei vaadi suurta määrää harjoituskuvia. 200–500 kuvan harjoitussarjan pitäisi riittää.

Rekognition Custom Labels -projektin luominen edellyttää, että määrität harjoitustiedot sisältävän S3-kansion URI:t ja (valinnaisesti) testitiedot. Kun määrität koulutustyön tietolähteitä, yksi vaihtoehto on Automaattinen merkintä, kuten seuraavassa kuvakaappauksessa näkyy.

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Tämän vaihtoehdon käyttäminen tarkoittaa, että Amazon Rekognition käyttää kansioiden nimiä tarran niminä. Meidän palovaroittimen käyttötapauksessa junan ja testikansioiden sisällä oleva kansiorakenne näyttää seuraavalta kuvakaappaukselta.

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Harjoitustietokuvat menevät näihin kansioihin, jolloin spektrogrammit, jotka sisältävät palovaroittimen äänen, menevät hälytyskansioon ja spektrogrammit, jotka eivät sisällä palovaroittimen ääntä no_alarm kansio. Amazon Rekognition käyttää näitä nimiä mukautettujen tarramallien tulostusluokan niminä.

Mukautetun tarramallin kouluttaminen kestää yleensä 30–90 minuuttia. Tämän koulutuksen lopussa sinun on käynnistettävä koulutettu malli, jotta se on käytettävissä.

Päästä päähän -arkkitehtuuri äänen havaitsemiseen

Kun olemme luoneet mallimme, seuraava vaihe on perustaa päättelyputki, jotta voimme käyttää mallia havaitaksemme, kuuluuko äänitiedostossa palovaroitin. Tätä varten tuloääni on muutettava spektrogrammiksi ja ikkunoitava ja suodatettava taajuuden mukaan, kuten harjoitusprosessissa tehtiin. Jokainen spektrogrammin ikkuna annetaan mallille, joka palauttaa luokituksen, joka kertoo, soi palovaroitin vai ei.

Seuraavassa kaaviossa on esimerkkiarkkitehtuuri, joka toteuttaa tämän päättelyputken.

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Tämä arkkitehtuuri odottaa äänitiedoston sijoittamista S3-ämpäriin, mikä sitten aiheuttaa an AWS Lambda kutsuttava toiminto. Lambda on palvelimeton, tapahtumapohjainen laskentapalvelu, jonka avulla voit suorittaa koodia käytännöllisesti katsoen minkä tahansa tyyppisille sovelluksille tai taustapalveluille ilman palvelimien hallintaa tai hallintaa. Voit käynnistää Lambda-toiminnon yli 200 AWS-palvelusta ja ohjelmistosta palveluna (SaaS) ja maksaa vain siitä, mitä käytät.

Lambda-toiminto vastaanottaa kauhan nimen ja äänitiedoston avaimen (tai tiedostonimen) nimen. Tiedosto ladataan Amazon S3:sta toiminnon muistiin, joka muuntaa sen sitten spektrogrammiksi ja suorittaa ikkunoinnin ja taajuussuodatuksen. Jokainen spektrogrammin ikkunallinen osa lähetetään sitten Amazon Rekognitionille, joka käyttää aiemmin koulutettua Amazon Custom Labels -mallia äänen havaitsemiseen. Jos tämä ääni löytyy, Lambda-toiminto ilmoittaa siitä käyttämällä an Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS) ilmoitus. Amazon SNS tarjoaa pub/sub-lähestymistavan, johon voidaan lähettää ilmoituksia Amazonin yksinkertainen jonopalvelu (Amazon SQS) -jonot, Lambda-toiminnot, HTTPS-päätepisteet, sähköpostiosoitteet, mobiili push ja paljon muuta.

Yhteenveto

Voit käyttää koneoppimista äänidatan kanssa määrittääksesi, milloin tiettyjä ääniä kuuluu, vaikka muita ääniä kuuluu samaan aikaan. Tämä edellyttää äänen muuntamista spektrogrammikuvaksi ja sitten paikallistamista spektrogrammin eri osiin ikkunoiden ja taajuuskaistan mukaan suodattamalla. Rekognition Custom Labels helpottaa mukautetun mallin opettamista äänentunnistusta varten.

Voit käyttää GitHub repo sisältää tämän viestin esimerkkikoodin omien kokeilujen lähtökohtana. Lisätietoja äänitapahtumien tunnistamisesta on kohdassa Äänitapahtumien tunnistus: opetusohjelma.


Tietoja kirjoittajista

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Greg Sommerville on vanhempi prototyyppiarkkitehti AWS Prototyping and Cloud Engineering -tiimissä, jossa hän auttaa AWS:n asiakkaita toteuttamaan innovatiivisia ratkaisuja haastaviin koneoppimisen, IoT:n ja palvelimettomien teknologioiden ongelmiin. Hän asuu Ann Arborissa Michiganissa ja nauttii joogan harjoittamisesta, koiriensa ruokailusta ja pokerin pelaamisesta.

Tunnista äänitapahtumat Amazon Rekognition PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Jeff Harman on vanhempi prototyyppiarkkitehti AWS Prototyping and Cloud Engineering -tiimissä, jossa hän auttaa AWS:n asiakkaita toteuttamaan innovatiivisia ratkaisuja haastaviin ongelmiin. Hän asuu Unionvillessä, Connecticutissa ja nauttii puuntyöstyksestä, sepäntyöstä ja Minecraftista.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen