Kujutage ette, et kirurg võtab videokõnesid patsientidega üle kogu maailma, ilma et oleks vaja inimtõlki. Mis siis, kui äsja asuv idufirma saaks hõlpsasti laiendada oma toodet piiriüleselt uutele geograafilistele turgudele, pakkudes sujuvat, täpset ja mitmekeelset kliendituge ja müüki, ilma et oleks vaja elavat inimtõlki? Mis juhtub teie ettevõttega, kui keel teid enam ei seo?
Tänapäeval on tavapärane pidada virtuaalseid kohtumisi rahvusvaheliste meeskondade ja klientidega, kes räägivad paljusid erinevaid keeli. Olenemata sellest, kas tegemist on sise- või väliskoosolekutega, kaob tähendus sageli keerulistes aruteludes ja võite kokku puutuda keelebarjääriga, mis ei lase teil olla nii tõhus kui võiksite olla.
Sellest postitusest saate teada, kuidas kasutada kolme täielikult hallatud AWS-i teenust (Amazoni transkribeerimine, Amazoni tõlgeja Amazon Polly), et toota peaaegu reaalajas kõne-kõneks tõlkimise lahendus, mis suudab kiiresti tõlkida lähtekõneleja reaalajas häälsisendi kõneldavasse, täpsesse tõlgitud sihtkeelde ja seda kõike ilma masinõppe (ML) kogemuseta.
Ülevaade lahendusest
Meie tõlkija koosneb kolmest täielikult hallatavast AWS ML-teenusest, mis töötavad koos ühes Pythoni skriptis, kasutades AWS SDK Pythoni jaoks (Boto3) meie tekstitõlke ja teksti kõneks muutmise osade jaoks ning asünkroonse voogesituse SDK helisisendi transkriptsiooni jaoks.
Amazon Transcribe: kõne voogesitamine tekstiks
Esimene teenus, mida meie virnas kasutate, on Amazon Transcribe, täielikult hallatav kõne tekstiks muutmise teenus, mis võtab sisendkõne ja transkribeerib selle tekstiks. Amazon Transcribeil on paindlikud neelamismeetodid, pakett- või voogesitus, kuna see aktsepteerib kas salvestatud helifaile või voogesitatud heliandmeid. Selles postituses kasutate asünkroonne Amazon Transcribe voogesituse SDK Pythoni jaoks, mis kasutab reaalajas heli voogesitamiseks ja transkriptsioonide vastuvõtmiseks HTTP/2 voogedastusprotokolli.
Kui me seda prototüüpi esimest korda koostasime, ei toetanud Amazon Transcribe'i voogesituse sisestamine automaatset keeletuvastust, kuid see ei kehti enam alates 2021. aasta novembrist. Nii pakett- kui ka voogesitus toetavad nüüd kõigi jaoks automaatset keeletuvastust. toetatud keeled. Selles postituses näitame, kuidas automaatse keeletuvastuse voogesituse abil on võimalik parameetripõhine lahendus, kuigi mitmekeelse parameetriteta kujundusega. Kui meie transkribeeritud kõnesegment on tekstina tagastatud, saadate Amazon Translate'ile taotluse tõlkida ja tagastada tulemused meie Amazon Transcribe'is. EventHandler
meetod.
Amazon Translate: tipptasemel, täielikult hallatud tõlke API
Järgmine meie virnas on Amazon Translate, närvisüsteemi masintõlketeenus, mis pakub kiiret, kvaliteetset, taskukohast ja kohandatavat keeletõlget. Alates 2022. aasta juunist toetab Amazon Translate tõlget 75 keeles ning pidevalt tehakse uusi keelepaare ja täiustusi. Amazon Translate kasutab süvaõppemudeleid, mis on majutatud väga skaleeritavas ja vastupidavas AWS-i pilvarhitektuuris, et kiiresti tarnida täpseid tõlkeid kas reaalajas või pakettidena, olenevalt teie kasutusjuhtumist. Amazon Translate'i kasutamine on lihtne ega nõua aluseks oleva arhitektuuri ega ML-oskuste haldamist. Amazon Translate'il on mitmeid funktsioone, nagu a. loomine ja kasutamine kohandatud terminoloogia valdkonnapõhiste terminite vahelise kaardistamise käsitlemiseks. Lisateavet Amazon Translate'i teenusepiirangute kohta leiate aadressilt Juhised ja piirangud. Pärast seda, kui rakendus on saanud tõlgitud teksti meie sihtkeeles, saadab see tõlgitud teksti Amazon Pollyle, et tõlgitud heli kohe taasesitada.
Amazon Polly: täielikult hallatav tekst kõneks API
Lõpuks saadate tõlgitud teksti Amazon Pollyle, täielikult hallatavale kõneks muutmise teenusele, mis võib saata tagasi elutruud heliklippide vastused koheseks voogesituse taasesitamiseks või pakitud ja salvestatud Amazoni lihtne salvestusteenus (Amazon S3) hilisemaks kasutamiseks. Standardiseeritud funktsioonide abil saate juhtida kõne erinevaid aspekte, nagu hääldus, helitugevus, helikõrgus, kõne kiirus ja palju muud. Kõnesünteesi märgistuskeel (SSML).
Saate sünteesida kõne teatud Amazon Polly jaoks Neuraalsed hääled kasutades Newscasteri stiili, et need kõlaksid nagu tele- või raadiouudiste saates. Samuti saate helivoos sisalduvate metaandmete põhjal tuvastada, millal konkreetseid sõnu või lauseid tekstis räägitakse. See võimaldab arendajal sünteesitud kõnega sünkroonida graafilist esiletõstmist ja animatsioone, näiteks avatari huulte liigutusi.
Saate muuta teatud sõnade hääldust, nagu ettevõtete nimed, akronüümid, võõrsõnad või neologismid, näiteks "P!nk", "ROTFL" või "C'est la vie" (kui seda räägitakse mitte-prantsuse keeles hääl), kasutades kohandatud leksikone.
Arhitektuuri ülevaade
Järgmine diagramm illustreerib meie lahenduse arhitektuuri.
Töövoog on järgmine:
- Heli neelab Pythoni SDK.
- Amazon Polly teisendab kõne tekstiks 39 võimalikus keeles.
- Amazon Translate teisendab keeled.
- Amazon Live Transcribe teisendab teksti kõneks.
- Heli väljastatakse kõlaritesse.
Eeldused
Teil on vaja hostmasinat, millel on mikrofon, kõlarid ja usaldusväärne Interneti-ühendus. Kaasaegne sülearvuti peaks selle jaoks hästi toimima, kuna täiendavat riistvara pole vaja. Järgmiseks peate masina mõne tarkvaratööriistaga seadistama.
Asünkroonse Amazon Transcribe'i voogesituse SDK kasutamiseks ja Pythoni mooduli nimega Python 3.7+ kasutamiseks peab teil olema installitud versioon pyaudio
, mida kasutate masina mikrofoni ja kõlarite juhtimiseks. See moodul sõltub nimega C teegist portaudio.h
. Kui teil tekib probleeme pyaudio
vead, soovitame kontrollida oma operatsioonisüsteemi, et näha, kas see on olemas portaudio.h
raamatukogu installitud.
Teenusekõnede autoriseerimiseks ja autentimiseks loote AWS-i identiteedi- ja juurdepääsuhaldus (IAM) teenuseroll, millel on õigused helistada vajalikele AWS-teenustele. Konfigureerides AWS-i käsurea liides (AWS CLI) selle IAM-i teenuserolliga saate käitada meie skripti oma masinas ilma võtmeid või paroole sisestamata, kuna AWS-i teegid on kirjutatud kasutama konfigureeritud AWS-i CLI kasutaja mandaate. See on mugav meetod kiireks prototüüpimiseks ja tagab, et meie teenustele helistab volitatud identiteet. Nagu alati, järgige IAM-i kasutaja või rolli loomisel IAM-i poliitikate määramisel minimaalsete privileegide põhimõtet.
Kokkuvõtteks vajate järgmisi eeltingimusi:
- PC-, Mac- või Linux-masin mikrofoni, kõlarite ja Interneti-ühendusega
- .
portaudio.h
C-teek teie operatsioonisüsteemi jaoks (brew, apt get, wget), mis on vajalik pyaudio töötamiseks - AWS CLI 2.0 koos õigesti volitatud IAM-i kasutajaga, mis on konfigureeritud, käivitades AWS CLI-s aws configure
- Python 3.7+
- Asünkroonne Amazon Transcribe Python SDK
- Järgmised Pythoni teegid:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
Rakenda lahendus
Toetute lähtepunktina suuresti Pythoni jaoks mõeldud asünkroonsele Amazon Transcribe'i voogesituse SDK-le ja kavatsete toetuda sellele konkreetsele SDK-le. Kui olete Pythoni jaoks voogesituse SDK-ga katsetanud, lisate voogesituse mikrofon sisend kasutades pyaudio
, tavaliselt kasutatav Pythoni avatud lähtekoodiga teek, mida kasutatakse heliandmete töötlemiseks. Seejärel lisate meie tõlkimise ja kõneks muutmise funktsioonide jaoks Boto3 kõned Amazon Translate'ile ja Amazon Pollyle. Lõpuks edastate tõlgitud kõne uuesti arvuti kõlarite kaudu pyaudio
. Pythoni moodul concurrent
annab teile võimaluse käivitada blokeerimiskoodi oma asünkroonses lõimes, et taasesitada teie tagastatud Amazon Polly kõnet sujuvalt ja mitteblokeerival viisil.
Impordime kõik vajalikud moodulid, transkribeerime voogesituse klassid ja loome mõned globaalsed moodulid:
Esiteks kasutate pyaudio
sisendseadme diskreetimissageduse, seadme indeksi ja kanalite arvu saamiseks tehke järgmist.
Kui see ei tööta, saate oma seadmeid läbi vaadata ja printida, nagu on näidatud järgmises koodis, ning seejärel kasutada seadme registrit seadme teabe hankimiseks pyaudio
:
Sa kasutad channel_count
, sample_rate
ja dev_index
parameetritena mikrofonivoos. Selle voo tagasihelistamise funktsioonis kasutate asyncio
mitteblokeeriv lõimeohutu tagasihelistamine, et paigutada mikrofonivoo sisendbaidid an asyncio
sisendjärjekord. Pange tähele tsükli- ja input_queue-objekte, mis on loodud asyncio
ja kuidas neid kasutatakse järgmises koodis:
Nüüd, kui generaator funktsioon mic_stream()
kutsutakse, annab see pidevalt sisendbaite seni, kuni sisendjärjekorras on mikrofoni sisendandmeid.
Nüüd, kui teate, kuidas mikrofonist sisendbaite hankida, vaatame, kuidas kirjutada Amazon Polly väljundhelibaite kõlari väljundvoogu:
Nüüd laiendame seda, mida postituses üles ehitasite Asünkroonne Amazoni transkriptsiooni voogesituse SDK Pythoni jaoks. Järgmises koodis loote täitjaobjekti, kasutades ThreadPoolExecutor
alamklass kolme töötajaga samaaegselt. Seejärel lisate EventHandleris lõplikule tagastatud transkriptsioonile Amazon Translate'i kutse ja edastate selle tõlgitud teksti, täitjaobjekti ja meie aws_polly_tts()
funktsiooni an asyncio
silmus koos loop.run_in_executor()
, mis käivitab meie Amazon Polly funktsiooni (koos tõlgitud sisendtekstiga) asünkroonselt järgmise iteratsiooni alguses. asyncio
silmus
Lõpuks on meil olemas loop_me()
funktsiooni. Selles määratlete write_chunks()
, mis võtab argumendina Amazoni transkriptsioonivoo ja kirjutab sellele asünkroonselt voogesituse mikrofonisisendi tükke. Seejärel kasutate MyEventHandler()
mille argumendiks on väljundi transkriptsioonivoog ja looge käitleja objekt. Seejärel kasutate ootamist koos asyncio.gather()
ja sisestada write_chunks() ja töötleja hand_events() meetodiga, et käsitleda nende korutiinide võimalikke tulevikku. Lõpuks kogute kokku kõik sündmuste tsüklid ja looge silmus loop_me()
funktsiooniga run_until_complete()
. Vaadake järgmist koodi:
Kui eelnev kood käivitatakse koos vigadeta, saate rääkida mikrofoni ja kuulda kiiresti oma häält mandariini hiina keelde tõlgituna. Amazon Transcribe'i ja Amazon Translate'i automaatne keeletuvastuse funktsioon tõlgib mis tahes toetatud sisestuskeele sihtkeelde. Saate rääkida üsna pikka aega ja funktsioonikutsete mitteblokeeriva olemuse tõttu tõlgitakse ja räägitakse kogu teie kõnesisend, mis teeb sellest suurepärase tööriista otsekõnede tõlkimiseks.
Järeldus
Kuigi see postitus näitas, kuidas need kolm täielikult hallatud AWS-i API-d saavad sujuvalt koos toimida, soovitame teil mõelda, kuidas saaksite neid teenuseid muul viisil kasutada, et pakkuda teenustele või meediale mitmekeelset tuge, näiteks mitmekeelsed subtiitrid murdosa praegusest kulust. . Meditsiin, äri ja isegi diplomaatilised suhted võiksid kasu saada järjest paranevast, odavast ja vähese hooldusega tõlketeenusest.
Selle kasutusjuhtumi kontseptsiooni tõendamise koodibaasi kohta lisateabe saamiseks vaadake meie Github.
Autoritest
Michael Tran on lahenduste arhitekt koos Envisioni insenerimeeskonnaga ettevõttes Amazon Web Services. Ta annab tehnilisi juhiseid ja aitab klientidel kiirendada oma uuendusvõimet, näidates AWS-is võimaluste kunsti. Ta on meie klientide jaoks loonud mitu prototüüpi AI/ML ja asjade Interneti ümber. Võite minuga Twitteris ühendust võtta @Mike_Trann.
Cameron Wilkes on AWS Industry Acceleratori meeskonna prototüüpimise arhitekt. Meeskonnas olles tarnis ta klientidele mitmeid ML-põhiseid prototüüpe, et demonstreerida ML-i võimalikku kunsti AWS-is. Talle meeldib muusika tootmine, maastikusõit ja disain.
- AI
- ai kunst
- ai kunsti generaator
- on robot
- Amazon Polly
- Amazoni transkribeerimine
- Amazoni tõlge
- tehisintellekti
- tehisintellekti sertifikaat
- tehisintellekt panganduses
- tehisintellekti robot
- tehisintellekti robotid
- tehisintellekti tarkvara
- AWS-i masinõpe
- blockchain
- plokiahela konverents ai
- coingenius
- vestluslik tehisintellekt
- krüptokonverents ai
- dall's
- sügav õpe
- google ai
- masinõpe
- Platon
- plato ai
- Platoni andmete intelligentsus
- Platoni mäng
- PlatoData
- platogaming
- skaala ai
- süntaks
- Tehniline juhend
- sephyrnet