Högtalardiarisering, en viktig process i ljudanalys, segmenterar en ljudfil baserat på talarens identitet. Det här inlägget fördjupar sig i att integrera Hugging Face's PyAnnote för högtalardiarisering med Amazon SageMaker asynkrona ändpunkter.
Vi tillhandahåller en omfattande guide om hur man distribuerar högtalarsegmentering och klustringslösningar med SageMaker på AWS-molnet. Du kan använda den här lösningen för applikationer som hanterar ljudinspelningar med flera högtalare (över 100).
Lösningsöversikt
Amazon Transcribe är go-to-tjänsten för högtalardiarisering i AWS. Men för språk som inte stöds kan du använda andra modeller (i vårt fall PyAnnote) som kommer att distribueras i SageMaker för slutledning. För korta ljudfiler där slutledningen tar upp till 60 sekunder kan du använda slutledning i realtid. I mer än 60 sekunder, asynkron slutledning bör användas. Den extra fördelen med asynkron slutledning är kostnadsbesparingarna genom att automatiskt skala instansräkningen till noll när det inte finns några förfrågningar att behandla.
Kramande ansikte är ett populärt nav med öppen källkod för modeller för maskininlärning (ML). AWS och Hugging Face har en partnerskap som möjliggör en sömlös integration genom SageMaker med en uppsättning AWS Deep Learning Containers (DLC) för träning och slutledning i PyTorch eller TensorFlow, och Hugging Face-estimatorer och prediktorer för SageMaker Python SDK. SageMaker funktioner och möjligheter hjälper utvecklare och datavetare att komma igång med naturlig språkbehandling (NLP) på AWS med lätthet.
Integrationen för denna lösning innebär att man använder Hugging Faces förtränade högtalardiariseringsmodell med hjälp av PyAnnote bibliotek. PyAnnote är en verktygslåda med öppen källkod skriven i Python för diaarisering av högtalare. Denna modell, utbildad på ljuduppsättningsexemplet, möjliggör effektiv högtalarpartitionering i ljudfiler. Modellen är distribuerad på SageMaker som en asynkron slutpunktsuppsättning, vilket ger effektiv och skalbar bearbetning av diariseringsuppgifter.
Följande diagram illustrerar lösningsarkitekturen.
För det här inlägget använder vi följande ljudfil.
Stereo- eller flerkanalsljudfiler mixas automatiskt ned till mono genom att kanalerna beräknas i genomsnitt. Ljudfiler som samplas med en annan hastighet samplas automatiskt till 16kHz vid laddning.
Förutsättningar
Fyll i följande förutsättningar:
- Skapa en SageMaker-domän.
- Se till att din AWS identitets- och åtkomsthantering (IAM)-användare har nödvändiga åtkomstbehörigheter för att skapa en SageMaker roll.
- Se till att AWS-kontot har en tjänstekvot för att vara värd för en SageMaker-slutpunkt för en ml.g5.2xlarge-instans.
Skapa en modellfunktion för åtkomst till PyAnnote-högtalardiarisering från Hugging Face
Du kan använda Hugging Face Hub för att komma åt önskad förtränad PyAnnote-högtalardiariseringsmodell. Du använder samma skript för att ladda ner modellfilen när du skapar SageMaker-slutpunkten.
Se följande kod:
Packa modellkoden
Förbered viktiga filer som inference.py, som innehåller slutledningskoden:
Förbered en requirements.txt
fil, som innehåller de nödvändiga Python-biblioteken som krävs för att köra inferensen:
Slutligen, komprimera inference.py
och requirements.txt-filer och spara dem som model.tar.gz
:
Konfigurera en SageMaker-modell
Definiera en SageMaker-modellresurs genom att ange bild-URI, modelldataplats i Amazon enkel lagringstjänst (S3) och SageMaker roll:
Ladda upp modellen till Amazon S3
Ladda upp den zippade PyAnnote Hugging Face-modellfilen till en S3-hink:
Skapa en SageMaker asynkron slutpunkt
Konfigurera en asynkron slutpunkt för att distribuera modellen på SageMaker med den tillhandahållna asynkrona slutledningskonfigurationen:
Testa slutpunkten
Utvärdera ändpunktsfunktionaliteten genom att skicka en ljudfil för diarisering och hämta JSON-utdata lagrad i den angivna S3-utgångssökvägen:
För att distribuera den här lösningen i stor skala föreslår vi att du använder AWS Lambda, Amazon enkel meddelandetjänst (Amazon SNS), eller Amazon enkel kötjänst (Amazon SQS). Dessa tjänster är designade för skalbarhet, händelsedrivna arkitekturer och effektivt resursutnyttjande. De kan hjälpa till att koppla bort den asynkrona slutledningsprocessen från resultatbearbetningen, vilket gör att du kan skala varje komponent oberoende och hantera skurar av slutledningsbegäranden mer effektivt.
Resultat
Modellutdata lagras kl s3://sagemaker-xxxx /async_inference/output/.
Utdata visar att ljudinspelningen har segmenterats i tre kolumner:
- Start (starttid i sekunder)
- Slut (sluttid i sekunder)
- Högtalare (högtalaretikett)
Följande kod visar ett exempel på våra resultat:
Städa upp
Du kan ställa in en skalningsprincip till noll genom att sätta MinCapacity till 0; asynkron slutledning låter dig skala automatiskt till noll utan förfrågningar. Du behöver inte ta bort slutpunkten, den skalor från noll när det behövs igen, vilket minskar kostnaderna när de inte används. Se följande kod:
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/deploy-a-hugging-face-pyannote-speaker-diarization-model-on-amazon-sagemaker-as-an-asynchronous-endpoint/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 10
- 100
- 11
- 118
- 12
- 13
- 14
- 16
- 17
- 23
- 25
- 26%
- 27
- 28
- 31
- 60
- 7
- 8
- 9
- a
- Om oss
- tillgång
- åtkomst
- tillmötesgående
- Konto
- tvärs
- lägga till
- lagt till
- justerar
- avancerat
- igen
- AI
- AI-tjänster
- AI / ML
- tillåta
- tillåter
- också
- amason
- Amazon SageMaker
- Amazon Web Services
- an
- analys
- analytics
- och
- vilken som helst
- Ansökan
- tillämpningar
- tillvägagångssätt
- arkitektur
- arkitekturer
- ÄR
- runt
- AS
- At
- Försök
- audio
- bil
- automatiskt
- medelvärdes
- AWS
- baserat
- BE
- varit
- fördel
- Fördelarna
- mellan
- företag
- företag
- by
- KAN
- kapacitet
- Vid
- fall
- Förändringar
- kanaler
- klass
- klient
- cloud
- klustring
- koda
- Kolonner
- kommentarer
- Gemensam
- komponent
- omfattande
- begrepp
- konkurrent
- konfiguration
- Behållare
- innehåller
- kontroller
- Pris
- kostnadsbesparingar
- Kostar
- räkna
- skapa
- Skapa
- Kunder
- datum
- som handlar om
- djup
- djupt lärande
- definiera
- leverera
- gräver
- demonstration
- distribuera
- utplacerade
- utplacera
- Designa
- utformade
- önskas
- utvecklade
- Utvecklare
- utvecklare
- Utveckling
- Diagrammet
- olika
- digital
- digital Transformation
- katalog
- dokument
- inte
- nedladdning
- dynamiskt
- varje
- lätta
- Effektiv
- effektivt
- effektiv
- effektivt
- möjliggör
- änden
- Slutpunkt
- fel
- väsentlig
- exempel
- Utom
- erfarenhet
- utforska
- Ansikte
- Funktioner
- Fil
- Filer
- efter
- För
- format
- från
- fungera
- funktionalitet
- generativ
- skaffa sig
- få
- GitHub
- styra
- hantera
- Har
- he
- hjälpa
- hjälpte
- hjälper
- hans
- värd
- Hur ser din drömresa ut
- How To
- Men
- html
- http
- HTTPS
- Nav
- Kramar ansikte
- Hundratals
- Identitet
- if
- illustrerar
- bild
- genomföras
- importera
- in
- oberoende av
- indien
- exempel
- Integrera
- integrering
- in
- innebär
- IT
- resa
- jpg
- json
- Nyckel
- etikett
- språk
- Språk
- Large
- lansera
- inlärning
- Lets
- bibliotek
- tycka om
- läsa in
- läser in
- läge
- längre
- Maskinen
- maskininlärning
- betyder
- ML
- modell
- modeller
- mer
- multipel
- Natural
- Naturlig språkbehandling
- nödvändigt för
- Behöver
- behövs
- nlp
- Nej
- Ingen
- anmälan
- antal
- objektet
- of
- Erbjudanden
- on
- öppet
- öppen källkod
- optimerar
- or
- OS
- Övriga
- vår
- ut
- produktion
- över
- övergripande
- egen
- pandor
- del
- bana
- behörigheter
- rörledning
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- policy
- Populära
- Inlägg
- drivs
- Förutsägelser
- förutsättningar
- process
- bearbetning
- projekt
- korrektur
- ge
- förutsatt
- ger
- tillhandahålla
- allmän
- sätta
- Python
- pytorch
- frågor
- Betygsätta
- nå
- realtid
- inspelning
- minskar
- reducerande
- referenser
- region
- registrera
- pålitlig
- ersätta
- representerar
- förfrågningar
- Obligatorisk
- Krav
- resurs
- Resurser
- respons
- resultera
- Resultat
- avkastning
- Roll
- Körning
- rinnande
- sagemaker
- försäljning
- Samma
- prov
- Save
- Besparingar
- skalbarhet
- skalbar
- Skala
- skalning
- vetenskapsmän
- skript
- skript
- sDK
- sömlös
- sömlöst
- sekunder
- sektor
- se
- segmentering
- segment
- skicka
- separerande
- service
- Tjänster
- session
- sessioner
- in
- inställning
- inställning
- flera
- Forma
- Kort
- skall
- Visar
- Enkelt
- enda
- Mjukvara
- mjukvaruutveckling
- lösning
- Lösningar
- Källa
- Högtalare
- specialist
- specifik
- specificerade
- specificerar
- spends
- delas
- starta
- igång
- förvaring
- lagras
- okomplicerad
- Strategisk
- framgång
- föreslå
- säker
- system
- tar
- uppgifter
- tech
- tensorflow
- än
- den där
- Smakämnen
- Där.
- Dessa
- de
- detta
- tusentals
- tre
- Genom
- tid
- till
- i dag
- toolkit
- ämne
- brännaren
- tränad
- Utbildning
- Transformation
- transformatorer
- prova
- SVÄNG
- på
- användning
- Begagnade
- Användare
- användningar
- med hjälp av
- Variant
- version
- Video
- W
- vänta
- vill
- we
- webb
- webbservice
- när
- som
- VEM
- kommer
- med
- arbetssätt
- skriven
- år
- Om er
- Din
- zephyrnet
- noll-