Højttalerdiarisering, en vigtig proces i lydanalyse, segmenterer en lydfil baseret på højttalerens identitet. Dette indlæg dykker ned i at integrere Hugging Face's PyAnnote til højttalerdiarisering med Amazon SageMaker asynkrone endepunkter.
Vi giver en omfattende guide til, hvordan man implementerer højttalersegmentering og klyngeløsninger ved hjælp af SageMaker på AWS Cloud. Du kan bruge denne løsning til applikationer, der omhandler lydoptagelser med flere højttalere (over 100).
Løsningsoversigt
Amazon Transcrib er go-to-tjenesten for højttalerdiaarisering i AWS. For ikke-understøttede sprog kan du dog bruge andre modeller (i vores tilfælde PyAnnote), som vil blive implementeret i SageMaker til slutning. For korte lydfiler, hvor inferensen tager op til 60 sekunder, kan du bruge inferens i realtid. I mere end 60 sekunder, asynkron slutning skal bruges. Den ekstra fordel ved asynkron inferens er omkostningsbesparelserne ved automatisk at skalere instanstællingen til nul, når der ikke er nogen anmodninger at behandle.
Knusende ansigt er en populær open source-hub for maskinlæringsmodeller (ML). AWS og Hugging Face har en partnerskab der tillader en sømløs integration gennem SageMaker med et sæt AWS Deep Learning Containers (DLC'er) til træning og inferens i PyTorch eller TensorFlow, og Hugging Face-estimatorer og forudsigere til SageMaker Python SDK. SageMaker-funktioner og -funktioner hjælper udviklere og dataforskere med at komme i gang med naturlig sprogbehandling (NLP) på AWS med lethed.
Integrationen af denne løsning involverer brug af Hugging Faces fortrænede højttalerdiariseringsmodel ved hjælp af PyAnnote bibliotek. PyAnnote er et open source-værktøjssæt skrevet i Python til højttalerdiaarisering. Denne model, der er trænet på lyddatasættet, muliggør effektiv højttaleropdeling i lydfiler. Modellen er implementeret på SageMaker som et asynkront slutpunktsopsætning, der giver effektiv og skalerbar behandling af diariseringsopgaver.
Følgende diagram illustrerer løsningsarkitekturen.
Til dette indlæg bruger vi følgende lydfil.
Stereo- eller flerkanalslydfiler nedmixes automatisk til mono ved at beregne et gennemsnit af kanalerne. Lydfiler, der er samplet med en anden hastighed, omsamples automatisk til 16kHz ved indlæsning.
Forudsætninger
Fuldfør følgende forudsætninger:
- Opret et SageMaker-domæne.
- Sørg for din AWS identitets- og adgangsstyring (IAM) bruger har de nødvendige adgangstilladelser til at oprette en SageMaker rolle.
- Sørg for, at AWS-kontoen har en servicekvote til hosting af et SageMaker-slutpunkt for en ml.g5.2xlarge-instans.
Opret en modelfunktion til at få adgang til PyAnnote-højttalerdiarisering fra Hugging Face
Du kan bruge Hugging Face Hub til at få adgang til den ønskede fortrænede PyAnnote-højttalerdiariseringsmodel. Du bruger det samme script til at downloade modelfilen, når du opretter SageMaker-slutpunktet.
Se følgende kode:
Pak modelkoden
Forbered vigtige filer som inference.py, som indeholder inferenskoden:
Forbered en requirements.txt
fil, som indeholder de nødvendige Python-biblioteker, der er nødvendige for at køre inferensen:
Til sidst skal du komprimere inference.py
og requirements.txt-filer og gem det som model.tar.gz
:
Konfigurer en SageMaker-model
Definer en SageMaker-modelressource ved at angive billed-URI, modeldataplacering i Amazon Simple Storage Service (S3) og SageMaker-rolle:
Upload modellen til Amazon S3
Upload den zippede PyAnnote Hugging Face-modelfil til en S3-bøtte:
Opret et SageMaker asynkront slutpunkt
Konfigurer et asynkront slutpunkt til implementering af modellen på SageMaker ved hjælp af den medfølgende asynkrone inferenskonfiguration:
Test slutpunktet
Evaluer slutpunktsfunktionaliteten ved at sende en lydfil til diarisering og hente JSON-output, der er gemt i den angivne S3-outputsti:
For at implementere denne løsning i stor skala, foreslår vi at bruge AWS Lambda, Amazon Simple Notification Service (Amazon SNS), eller Amazon Simple Queue Service (Amazon SQS). Disse tjenester er designet til skalerbarhed, begivenhedsdrevne arkitekturer og effektiv ressourceudnyttelse. De kan hjælpe med at afkoble den asynkrone slutningsproces fra resultatbehandlingen, så du kan skalere hver komponent uafhængigt og håndtere bursts af slutningsanmodninger mere effektivt.
Resultater
Modeloutput gemmes kl s3://sagemaker-xxxx /async_inference/output/.
Outputtet viser, at lydoptagelsen er blevet segmenteret i tre kolonner:
- Start (starttid i sekunder)
- Slut (sluttid i sekunder)
- Højttaler (højttaleretiket)
Følgende kode viser et eksempel på vores resultater:
Ryd op
Du kan indstille en skaleringspolitik til nul ved at indstille MinCapacity til 0; asynkron inferens lader dig automatisk skalere til nul uden anmodninger. Du behøver ikke at slette slutpunktet, det skalaer fra nul, når det er nødvendigt igen, hvilket reducerer omkostningerne, når de ikke er i brug. Se følgende kode:
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang 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
- $OP
- 1
- 10
- 100
- 11
- 118
- 12
- 13
- 14
- 16
- 17
- 23
- 25
- 26 %
- 27
- 28
- 31
- 60
- 7
- 8
- 9
- a
- Om
- adgang
- Adgang
- imødekommende
- Konto
- tværs
- tilføje
- tilføjet
- justerer
- fremskreden
- igen
- AI
- AI-tjenester
- AI / ML
- tillade
- tillader
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- analyse
- analytics
- ,
- enhver
- Anvendelse
- applikationer
- tilgang
- arkitektur
- arkitekturer
- ER
- omkring
- AS
- At
- Forsøg på
- lyd
- auto
- automatisk
- gennemsnit
- AWS
- baseret
- BE
- været
- gavner det dig
- fordele
- mellem
- virksomhed
- virksomheder
- by
- CAN
- kapaciteter
- tilfælde
- tilfælde
- Ændringer
- kanaler
- klasse
- kunde
- Cloud
- klyngedannelse
- kode
- Kolonner
- kommentarer
- Fælles
- komponent
- omfattende
- Konceptet
- konkurrent
- Konfiguration
- Beholdere
- indeholder
- kontrol
- Koste
- omkostningsbesparelser
- Omkostninger
- tælle
- skabe
- Oprettelse af
- Kunder
- data
- beskæftiger
- dyb
- dyb læring
- definere
- levere
- dykker
- demonstration
- indsætte
- indsat
- implementering
- Design
- konstrueret
- ønskes
- udviklet
- Udvikler
- udviklere
- Udvikling
- diagram
- forskellige
- digital
- Digital Transformation
- Vejviser
- dokumenter
- Dont
- downloading
- dynamisk
- hver
- lette
- Effektiv
- effektivt
- effektiv
- effektivt
- muliggør
- ende
- Endpoint
- fejl
- væsentlig
- eksempel
- Undtagen
- erfaring
- udforske
- Ansigtet
- Funktionalitet
- File (Felt)
- Filer
- efter
- Til
- format
- fra
- funktion
- funktionalitet
- generative
- få
- få
- GitHub
- vejlede
- håndtere
- Have
- he
- hjælpe
- hjulpet
- hjælper
- hans
- Hosting
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Hub
- KrammerFace
- Hundreder
- Identity
- if
- illustrerer
- billede
- implementeret
- importere
- in
- uafhængigt
- Indien
- instans
- Integration
- integration
- ind
- involverer
- IT
- rejse
- jpg
- json
- Nøgle
- etiket
- Sprog
- Sprog
- stor
- lancere
- læring
- Lets
- biblioteker
- ligesom
- belastning
- lastning
- placering
- længere
- maskine
- machine learning
- midler
- ML
- model
- modeller
- mere
- flere
- Natural
- Natural Language Processing
- nødvendig
- Behov
- behov
- NLP
- ingen
- Ingen
- underretning
- nummer
- objekt
- of
- Tilbud
- on
- åbent
- open source
- Optimerer
- or
- OS
- Andet
- vores
- ud
- output
- i løbet af
- samlet
- egen
- pandaer
- del
- sti
- Tilladelser
- pipeline
- perron
- plato
- Platon Data Intelligence
- PlatoData
- politik
- Populær
- Indlæg
- strøm
- Forudsigelser
- forudsætninger
- behandle
- forarbejdning
- projekter
- beviser
- give
- forudsat
- giver
- leverer
- offentlige
- sætte
- Python
- pytorch
- Spørgsmål
- Sats
- nå
- realtid
- optagelse
- reducerer
- reducere
- referencer
- region
- register
- pålidelig
- erstatte
- repræsenterer
- anmodninger
- påkrævet
- Krav
- ressource
- Ressourcer
- svar
- resultere
- Resultater
- afkast
- roller
- Kør
- kører
- sagemaker
- salg
- samme
- prøve
- Gem
- Besparelser
- Skalerbarhed
- skalerbar
- Scale
- skalering
- forskere
- script
- scripts
- SDK
- sømløs
- problemfrit
- sekunder
- sektor
- se
- segmentering
- segmenter
- afsendelse
- adskille
- tjeneste
- Tjenester
- Session
- sessioner
- sæt
- indstilling
- setup
- flere
- Shape
- Kort
- bør
- Shows
- Simpelt
- enkelt
- Software
- softwareudvikling
- løsninger
- Løsninger
- Kilde
- Højttaler
- specialist
- specifikke
- specificeret
- angiver
- tilbringer
- delt
- starte
- påbegyndt
- opbevaring
- opbevaret
- ligetil
- Strategisk
- succes
- tyder
- sikker
- systemet
- tager
- opgaver
- tech
- tensorflow
- end
- at
- Der.
- Disse
- de
- denne
- tusinder
- tre
- Gennem
- tid
- til
- i dag
- toolkit
- emne
- fakkel
- uddannet
- Kurser
- Transformation
- transformers
- prøv
- TUR
- på
- brug
- anvendte
- Bruger
- bruger
- ved brug af
- Variant
- udgave
- Videoer
- W
- vente
- ønsker
- we
- web
- webservices
- hvornår
- som
- WHO
- vilje
- med
- arbejder
- skriftlig
- år
- Du
- Din
- zephyrnet
- nul