Høyttalerdiarisering, en viktig prosess i lydanalyse, segmenterer en lydfil basert på høyttalerens identitet. Dette innlegget fordyper seg i å integrere Hugging Faces PyAnnote for høyttalerdiarisering med Amazon SageMaker asynkrone endepunkter.
Vi gir en omfattende guide for hvordan du distribuerer høyttalersegmentering og klyngeløsninger ved å bruke SageMaker på AWS Cloud. Du kan bruke denne løsningen for applikasjoner som omhandler lydopptak med flere høyttalere (over 100).
Løsningsoversikt
Amazon Transcribe er go-to-tjenesten for høyttalerdiarisering i AWS. For språk som ikke støttes, kan du imidlertid bruke andre modeller (i vårt tilfelle PyAnnote) som vil bli distribuert i SageMaker for slutninger. For korte lydfiler der slutningen tar opptil 60 sekunder, kan du bruke sanntidsslutning. I mer enn 60 sekunder, asynkron konklusjon skal brukes. Den ekstra fordelen med asynkron slutning er kostnadsbesparelsene ved å automatisk skalere forekomsttellingen til null når det ikke er noen forespørsler å behandle.
Klemme ansiktet er en populær åpen kildekode-hub for maskinlæringsmodeller (ML). AWS og Hugging Face har en partnerskap som tillater en sømløs integrasjon gjennom SageMaker med et sett med AWS Deep Learning Containers (DLC) for opplæring og inferens i PyTorch eller TensorFlow, og Hugging Face-estimatorer og prediktorer for SageMaker Python SDK. SageMaker-funksjoner og muligheter hjelper utviklere og dataforskere med å komme i gang med naturlig språkbehandling (NLP) på AWS på en enkel måte.
Integrasjonen for denne løsningen innebærer bruk av Hugging Faces forhåndstrente høyttalerdiariseringsmodell ved hjelp av PyAnnote-biblioteket. PyAnnote er en åpen kildekode-verktøykasse skrevet i Python for høyttalerdiarisering. Denne modellen, trent på eksempellyddatasettet, muliggjør effektiv høyttalerpartisjonering i lydfiler. Modellen er distribuert på SageMaker som et asynkront endepunktoppsett, og gir effektiv og skalerbar behandling av diariseringsoppgaver.
Følgende diagram illustrerer løsningsarkitekturen.
For dette innlegget bruker vi følgende lydfil.
Stereo eller flerkanals lydfiler mikses automatisk ned til mono ved å beregne gjennomsnittet av kanalene. Lydfiler samplet med en annen hastighet blir resamplet til 16kHz automatisk ved lasting.
Forutsetninger
Fullfør følgende forutsetninger:
- Opprett et SageMaker-domene.
- Pass på at din AWS identitets- og tilgangsadministrasjon (IAM)-bruker har de nødvendige tilgangstillatelsene for å opprette en SageMaker rolle.
- Sørg for at AWS-kontoen har en tjenestekvote for å være vert for et SageMaker-endepunkt for en ml.g5.2xlarge-forekomst.
Lag en modellfunksjon for å få tilgang til PyAnnote-høyttalerdiarisering fra Hugging Face
Du kan bruke Hugging Face Hub for å få tilgang til ønsket forhåndstrent PyAnnote høyttalerdiariseringsmodell. Du bruker det samme skriptet for å laste ned modellfilen når du oppretter SageMaker-endepunktet.
Se følgende kode:
Pakk modellkoden
Klargjør viktige filer som inference.py, som inneholder inferenskoden:
Forbered en requirements.txt
fil, som inneholder de nødvendige Python-bibliotekene som er nødvendige for å kjøre slutningen:
Til slutt, komprimer inference.py
og requirements.txt-filer og lagre den som model.tar.gz
:
Konfigurer en SageMaker-modell
Definer en SageMaker-modellressurs ved å spesifisere bilde-URI, modelldataplassering i Amazon enkel lagringstjeneste (S3), og SageMaker-rolle:
Last opp modellen til Amazon S3
Last opp den zippede PyAnnote Hugging Face-modellfilen til en S3-bøtte:
Opprett et SageMaker asynkront endepunkt
Konfigurer et asynkront endepunkt for å distribuere modellen på SageMaker ved å bruke den medfølgende asynkrone inferenskonfigurasjonen:
Test endepunktet
Evaluer endepunktfunksjonaliteten ved å sende en lydfil for diarisering og hente JSON-utdata som er lagret i den angitte S3-utgangsbanen:
For å distribuere denne løsningen i stor skala, foreslår vi å bruke AWS Lambda, Amazon enkel varslingstjeneste (Amazon SNS), eller Amazon enkel køtjeneste (Amazon SQS). Disse tjenestene er designet for skalerbarhet, hendelsesdrevne arkitekturer og effektiv ressursutnyttelse. De kan bidra til å koble den asynkrone slutningsprosessen fra resultatbehandlingen, slik at du kan skalere hver komponent uavhengig og håndtere serier av slutningsforespørsler mer effektivt.
Resultater
Modellutdata lagres kl s3://sagemaker-xxxx /async_inference/output/.
Utgangen viser at lydopptaket har blitt segmentert i tre kolonner:
- Start (starttid i sekunder)
- Slutt (sluttid i sekunder)
- Høyttaler (høyttaleretikett)
Følgende kode viser et eksempel på resultatene våre:
Rydd opp
Du kan sette en skaleringspolicy til null ved å sette MinCapacity til 0; asynkron slutning lar deg automatisk skalere til null uten forespørsler. Du trenger ikke å slette endepunktet, det vekter fra null når det trengs igjen, noe som reduserer kostnadene når de ikke er i bruk. Se følgende kode:
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/deploy-a-hugging-face-pyannote-speaker-diarization-model-on-amazon-sagemaker-as-an-asynchronous-endpoint/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 11
- 118
- 12
- 13
- 14
- 16
- 17
- 23
- 25
- 26%
- 27
- 28
- 31
- 60
- 7
- 8
- 9
- a
- Om oss
- adgang
- Tilgang
- imøtekommende
- Logg inn
- tvers
- legge til
- la til
- justerer
- avansert
- en gang til
- AI
- AI-tjenester
- AI / ML
- tillate
- tillater
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- analyse
- analytics
- og
- noen
- Søknad
- søknader
- tilnærming
- arkitektur
- arkitekturer
- ER
- rundt
- AS
- At
- forsøk
- lyd
- auto
- automatisk
- gjennomsnitt
- AWS
- basert
- BE
- vært
- nytte
- Fordeler
- mellom
- virksomhet
- bedrifter
- by
- CAN
- evner
- saken
- saker
- Endringer
- kanaler
- klasse
- kunde
- Cloud
- gruppering
- kode
- kolonner
- kommentarer
- Felles
- komponent
- omfattende
- konsept
- samtidig
- Konfigurasjon
- Containere
- inneholder
- kontroller
- Kostnad
- kostnadsbesparelser
- Kostnader
- telle
- skape
- Opprette
- Kunder
- dato
- håndtering
- dyp
- dyp læring
- definere
- leverer
- dykker
- demonstrasjon
- utplassere
- utplassert
- utplasserings
- utforming
- designet
- ønsket
- utviklet
- Utvikler
- utviklere
- Utvikling
- diagram
- forskjellig
- digitalt
- Digital Transformation
- katalog
- dokumenter
- ikke
- Nedlasting
- dynamisk
- hver enkelt
- lette
- Effektiv
- effektivt
- effektiv
- effektivt
- muliggjør
- slutt
- Endpoint
- feil
- avgjørende
- eksempel
- Unntatt
- erfaring
- utforske
- Face
- Egenskaper
- filet
- Filer
- etter
- Til
- format
- fra
- funksjon
- funksjonalitet
- generative
- få
- få
- GitHub
- veilede
- håndtere
- Ha
- he
- hjelpe
- hjulpet
- hjelper
- hans
- Hosting
- Hvordan
- Hvordan
- Men
- HTML
- http
- HTTPS
- Hub
- Klem ansikt
- Hundrevis
- Identitet
- if
- illustrerer
- bilde
- implementert
- importere
- in
- uavhengig av hverandre
- india
- f.eks
- Integrering
- integrering
- inn
- innebærer
- IT
- reise
- jpg
- JSON
- nøkkel
- Etiketten
- Språk
- språk
- stor
- lansere
- læring
- Lar
- bibliotekene
- i likhet med
- laste
- lasting
- plassering
- lenger
- maskin
- maskinlæring
- midler
- ML
- modell
- modeller
- mer
- flere
- Naturlig
- Natural Language Processing
- nødvendig
- Trenger
- nødvendig
- nlp
- Nei.
- none
- varsling
- Antall
- objekt
- of
- Tilbud
- on
- åpen
- åpen kildekode
- Optimaliserer
- or
- OS
- Annen
- vår
- ut
- produksjon
- enn
- samlet
- egen
- pandaer
- del
- banen
- tillatelser
- rørledning
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- politikk
- Populær
- Post
- powered
- Spådommer
- forutsetninger
- prosess
- prosessering
- prosjekter
- bevis
- gi
- forutsatt
- gir
- gi
- offentlig
- sette
- Python
- pytorch
- spørsmål
- Sats
- å nå
- sanntids
- innspilling
- reduserer
- redusere
- referanser
- region
- registrere
- pålitelig
- erstatte
- representerer
- forespørsler
- påkrevd
- Krav
- ressurs
- Ressurser
- svar
- resultere
- Resultater
- retur
- Rolle
- Kjør
- rennende
- sagemaker
- salg
- samme
- sample
- Spar
- Besparelser
- skalerbarhet
- skalerbar
- Skala
- skalering
- forskere
- script
- skript
- SDK
- sømløs
- sømløst
- sekunder
- sektor
- se
- segmentering
- segmenter
- sending
- separering
- tjeneste
- Tjenester
- Session
- sesjoner
- sett
- innstilling
- oppsett
- flere
- Form
- Kort
- bør
- Viser
- Enkelt
- enkelt
- Software
- programvareutvikling
- løsning
- Solutions
- kilde
- Høyttaler
- spesialist
- spesifikk
- spesifisert
- spesifiserer
- tilbringer
- splittet
- Begynn
- startet
- lagring
- lagret
- rett fram
- Strategisk
- suksess
- foreslår
- sikker
- system
- tar
- oppgaver
- tech
- tensorflow
- enn
- Det
- De
- Der.
- Disse
- de
- denne
- tusener
- tre
- Gjennom
- tid
- til
- i dag
- verktøykasse
- Tema
- lommelykt
- trent
- Kurs
- Transformation
- transformers
- prøve
- SVING
- upon
- bruke
- brukt
- Bruker
- bruker
- ved hjelp av
- variant
- versjon
- videoer
- W
- vente
- ønsker
- we
- web
- webtjenester
- når
- hvilken
- HVEM
- vil
- med
- arbeid
- skrevet
- år
- Du
- Din
- zephyrnet
- null