Amazon Polly je storitev, ki pretvori besedilo v naravno zveneč govor z uporabo desetin glasov v več kot 30 jezikih. Uporabite ga lahko za najrazličnejše aplikacije, od govorečih animiranih avatarjev do realističnih virtualnih agentov, ki odgovarjajo na zahteve podpore strankam, do avtomatiziranih voditeljev novic, ki na glas berejo zgodbe. Amazon Polly lahko vrne sintetizirani govor kot prenos v živo ali pa ga prenese kot standardno zvočno datoteko za kasnejše predvajanje. Tako kot mnoge storitve AWS plačate samo tisto, kar dejansko uporabljate: pri Amazon Polly plačate število znakov v sintetizirani frazi. Samo predvajanje shranjene zvočne datoteke je brezplačno, ne glede na to, ali jo predvajate enkrat ali večkrat.
Če natančno veste, katere besedne zveze potrebujete vnaprej, lahko optimizirate svojo porabo AWS. Preprosto vzemite vsako besedno zvezo, ki jo potrebujete, in jo pošljite v Amazon Polly med gradnjo, pri čemer shranite ustvarjeno zvočno datoteko, dokler je ne boste pripravljeni predvajati med izvajanjem. Običajni primeri uporabe tega pristopa vključujejo sisteme za obveščanje javnosti na letališčih ali avtobusnih postajah, video igre in avtomatizirane naročevalce v restavracijah s hitro postrežbo. Plačajte samo enkrat, da sintetizirate svoje besedilo, nato pa po potrebi brezplačno predvajajte nastale zvočne datoteke.
V tej objavi delimo popolnoma avtomatizirano, na dogodke vodeno rešitev brez strežnika, ki jo lahko uporabite za asinhrono pretvorbo velikega števila besedilnih fraz v realističen govor. Opravila lahko sprožite tako, da datoteko fraz ročno naložite v zasebno Preprosta storitev shranjevanja Amazon (Amazon S3) vedro in nato obveščeni po e-pošti ali neposrednem sporočilu, ko bodo pripravljeni. Ali pa naredite postopek del svojega AWS CodeBuild sistem neprekinjenega povezovanja, s samodejnim sprožitvijo sinteze vsakič, ko se spremenijo vaše izvorne fraze.
Pregled rešitve
Rešitev je popolnoma brez strežnika in je sestavljena predvsem iz niza AWS Lambda funkcije. Te funkcije sledijo elementom, ki jih je treba sintetizirati. Pošljite jih Amazon Polly v sintezo in obdelajte rezultate, ko so dokončani. Funkcije uporabljajo skupno Amazon DynamoDB tabele za upravljanje stanja dela skozi čas. An Korak funkcije AWS potek dela sledi vsakemu predloženemu nizu in obvesti zainteresirane strani o njegovem zaključku prek Amazon Simple notification Service (Amazon SNS) tema.
Rešitev uporablja an arhitektura, ki temelji na dogodkih: namesto enega samega procesa, ki teče od začetka do konca, je proces porazdeljen po klicih Lambda, ki se zaženejo samo, ko je za to sprožen iz nekega dogodka.
Naslednji diagram prikazuje arhitekturo rešitev.
Razmestite in konfigurirajte rešitev
Rešitev uvedete v svoj račun AWS z uporabo AWS Model brez strežnika (AWS SAM). To lahko storite iz katerega koli računalnika z dostopom do vašega računa v ukazni vrstici, vendar zaradi enostavnosti uporabljamo AWS CloudShell.
- Prijavite se v konzolo CloudShell.
- Ko je lupina inicializirana, naredite lokalno kopijo izvorne kode rešitve in pripravite sklad AWS SAM tako, da izdate naslednje ukaze:
- Uporabite AWS SAM za uvajanje rešitve z vodenim uvajanjem. Navedite ime sklada (npr
amazon-polly-async-batch
), vašo želeno regijo, e-poštni naslov za obvestila in ime neobstoječega vedra S3 za ustvarjene zvočne datoteke. Sprejmite druge privzete nastavitve.
Namestitev vseh komponent naj bi trajala le nekaj minut. Če je namestitev uspešna, bi morali videti naslednje sporočilo:
- Preverite svojo e-pošto za sporočilo Amazon SNS in potrdite naročnino.
Kako rešitev deluje
V tem razdelku podrobno opisujemo, kako uporabiti rešitev za sintezo vašega besedila in kako deluje vsaka glavna komponenta.
Nastavljena datoteka: Določanje besedila za sintetiziranje
V datoteki z imenom a določite nabor besedilnih stavkov, za katere želite, da jih Amazon Polly izgovori nastavite datoteko. Gre datoteka YAML sestavljen iz podrobnosti nabora, zbirke privzetih vrednosti in seznama elementov za sintetiziranje:
- Nastavite podrobnosti – V kitici nabora daste naboru ime, da se razlikuje od drugih, in neobvezno izhodno predpono, da rešitvi poveste, kje v vedru S3 želite shraniti zvočne datoteke.
- Neplačila – V razdelku izbirnih privzetih nastavitev lahko parametrom podate posebne vrednosti, ki veljajo, razen če jih preglasijo določeni elementi. Podprti so naslednji atributi, npr dokumentirano v API-ju Amazon Polly:
- motor – Bodisi
standard
orneural
; privzetoneural
- jezikovna koda – kateri koli od več kot 20 podprtih jezikov; privzeto
en-US
- izhodni format -
mp3
,ogg_vorbis
alipcm
; privzetomp3
- tip besedila – Bodisi
text
orSSML
; privzetotext
- voice-id – kateri koli od podprtih glasov; privzeto
Matthew
- motor – Bodisi
- predmeti – Zbirka elementov je preprosto seznam besedilnih nizov za sintetiziranje. Amazon Polly pretvori besedilo vsakega elementa v govor z uporabo nastavljenih privzetih vrednosti in morebitnih preglasitev, podanih v elementu, in postavi nastale datoteke v vedro S3 v mapi izhodne predpone nabora. Če podate izhodno datoteko, je datoteka poimenovana, kot je navedeno; v nasprotnem primeru rešitev datoteki dodeli ime glede na njeno vsebino in vrstni red v zbirki.
Na primer, če želite sintetizirati šest vrstic iz 1. dejanja, 1. prizora Romeo in Julija, lahko uporabite datoteko YAML, ki je videti kot naslednja koda:
Ta niz določa, da mora Amazon Polly sintetizirati šest vrstic iz igre. Za predstavitev likov Abrahama, Sampsona in Gregoryja uporabljamo glasove Joeyja, Matthewa in Briana. Z Amazon Polly lahko določite glasnost in ton, na primer, ko Abraham poudari besedo »nas« ter za Sampsonovo in Gregoryjevo stran, ki sta zašepetana; za Učinki SSML, kot so ti, preprosto določimo, da je text-type
is ssml
, in izrek primerno okrasite.
Ker nobeden od elementov ne določa izhodne datoteke, se imena datotek ustvarijo samodejno za vas. V tem primeru so ustvarjene datoteke MP3 act-1-scene-1/item-000000-do-you-bite-your-thumb-at-us-sir.mp3
skozi act-1-scene-1/item-000005-no-sir-i-do-not-bite-my-thumb-at-you-sir.mp3
.
Ta nastavljena datoteka (in druge) so v docs/samples
imenik kode. V CloudShell lahko to datoteko pošljete v Amazon Polly preprosto tako, da jo naložite v vedro S3, ki ste ga določili prej:
Amazon Polly sintetizira šest vrstic iz datoteke. Ko so vse vrstice sintetizirane, prejmete e-poštno obvestilo:
YAML je mogoče ustvariti v katerem koli urejevalniku, ljudem je enostaven za branje in je prijazen za prijavo v sisteme za nadzor izvorov, kot je AWS CodeCommit. Vendar pa mora biti nastavljena datoteka čista besedilna datoteka, imeti mora pripono datoteke .yml in mora biti veljaven YAML.
Funkcija Nastavi procesor
Ko datoteka z a .yml
razširitev naložena v vedro S3, funkcija Set Processor Lambda začne postopek. Razčleni nastavljeno datoteko in zanjo ustvari ustrezen zapis v DynamoDB. Ta zapis nabora se uporablja za sledenje temu, koliko elementov je v naboru, koliko jih je treba še dokončati in kdaj se je začela obdelava nabora.
Nato za vsak element v zbirki funkcija Nastavi procesor objavi sporočilo – nekakšen delovni nalog – v nalog rešitve. Storitev Amazon Simple Queue Service (Amazon SQS) čakalna vrsta. Ta delovni nalog je dokument JSON, ki vključuje vse, kar Amazon Polly potrebuje za sintezo besedila v skladu z navodili v naloženi nastavljeni datoteki.
Vsako sporočilo je popolnoma neodvisno od drugih, tako da lahko delo njihove sintetizacije izvaja Amazon Polly sočasno in ni pomembno, v kakšnem vrstnem redu so dokončana. Ime nabora je tudi del delovnega naloga, tako da lahko rešitev hkrati obdeluje več naborov (ali celo več primerkov istega nabora).
Funkcija procesorja elementov
Funkcija Item Processor Lambda porablja sporočila iz čakalne vrste SQS in objavlja delo v Amazon Polly.
Vsako sporočilo predstavlja eno zvočno datoteko, ki jo Amazon Polly ustvari. Funkcija kliče metodo API Začni SpeechSynthesisTask, z uporabo vrednosti v delovnem nalogu kot argumentov za parametre metode. To je asinhroni klic API-ja, zato nimamo nobenih zagotovil, kdaj Amazon Polly dejansko ustvari zvočno datoteko za nas; ko pa je končano, Amazon Polly objavi sporočilo SNS za naslednjo funkcijo Lambda, odzivni procesor, ki jo mora obravnavati.
Funkcija Item Processor prav tako doda zapis v tabelo postavk v DynamoDB, tako da lahko rešitev spremlja, katere postavke so bile uspešno dokončane in katere še niso.
Kot mnogi API-ji AWS obstajajo omeji število klicev API-ja, ki jih lahko opravite v Amazon Polly na sekundo. Funkcija Item Processor je zadušena, da ostane v razumnih mejah, in to se eksponentno umakne in poskusi znova po potrebi, da lahko objavite delo, vendar še vedno ostanete znotraj omejitev storitve vašega računa.
Funkcija odzivnega procesorja
Ko Amazon Polly zaključi delo na določeni zahtevi, objavi obvestilo v temi odziva SNS. To takoj zazna zadnja funkcija Lambda v zaporedju, odzivni procesor. Ta funkcija je odgovorna za posodabljanje elementa in nastavljenih zapisov v DynamoDB ter za preimenovanje zvočne datoteke v Amazon S3 v zahtevano ime datoteke.
Če Amazon Polly poroča o uspehu pri sintetiziranju zvočne datoteke, potem funkcija Response Processor datoteko preprosto premakne na končno lokacijo. Posodobi zapis predmeta taskStatus
do success
in povečuje success
števec v postavljenem zapisu. Če Amazon Polly sporoči napako, funkcija posodobi zapis elementa z razlogom za napako in poveča failed
števec v postavljenem zapisu.
Potek dela Set Waiter
Če želite pregledati, se vsaka od teh funkcij Lambda izvaja samo, ko jih sproži dogodek:
- Procesor nastavitev se sproži, ko je nastavljena datoteka naložena v vedro S3
- Procesor elementov se sproži, ko se delovni nalogi pojavijo v čakalni vrsti SQS
- Procesor odziva se sproži, ko Amazon Polly objavi sporočilo v temi SNS
Te funkcije se lahko izvajajo sočasno in obdelujejo več elementov iz več nizov hkrati. Kako brez procesa orkestracije vemo, kdaj je določen niz dokončan? Kako vemo, če je šlo kaj narobe?
Set Waiter je delovni tok stopenjskih funkcij, ki je odgovoren za opazovanje določenega niza, da se odloči, kdaj je končan, ali za obvestilo, če je zaradi tehnične težave z rešitvijo niz opuščen.
V inšpektorju grafa funkcij korakov je potek dela Set Waiter v procesu videti takole.
Primerek Set Waiter zažene funkcija Set Processor za vsak predložen niz, ki posreduje edinstveno ime, ki identificira ta niz. Natakar v fazi nalaganja naloži nastavljen zapis iz tabele DynamoDB in v fazi preverjanja preveri, ali je popoln. Če ima Amazon Polly še vedno naloge za obdelavo, funkcija počaka nekaj sekund v fazi čakanja, preden znova začne.
Če je Amazon Polly obdelal vsako nalogo v nizu, se Set Waiter premakne v fazo obveščanja, ki objavi sporočilo o zaključku teme SNS. Če v naboru v procesu pred kratkim ni bila izvedena nobena sprememba, Set Waiter domneva, da je nekaj narobe, in v temo objavi opuščeno sporočilo.
Čiščenje
Rešitev lahko pustite v svojem računu tako dolgo, kot želite. Ko ni v uporabi, plačate samo za shranjevanje zvočnih datotek v Amazon S3 in za podatke v tabelah DynamoDB. Ko imate besedilo za sintetiziranje, preprosto naložite nastavljeno datoteko v vedro S3 in rešitev jo bo vzela od tam. Plačate za priklice funkcije Lambda in znakov, ki jih je dejansko obdelal Amazon Polly. Sintetizira vseh 1.1 milijona znakov v Moby Dick, na primer, stane manj kot 5 USD za standardne glasove in precej pod 20 USD za nevronske glasove višje kakovosti.
Če se odločite, da rešitve ne boste več uporabljali, lahko izbrišete vse njene vire z uporabo Oblikovanje oblaka AWS:
zaključek
V tej objavi smo opisali brezstrežniško rešitev, ki temelji na dogodkih, za pošiljanje velikih količin besedilnih fraz Amazonu Polly za asinhrono obdelavo. S tem pristopom lahko ohranite nizke stroške, tako da za sintezo plačate samo enkrat, ne glede na to, kolikokrat predvajate ustvarjene zvočne datoteke.
Rešitev lahko uvedete v svoj račun v nekaj minutah kot aplikacijo AWS SAM. Besedilo, ki naj bo pretvorjeno, določite v datotekah YAML, imenovanih set files. Ko je nastavljena datoteka naložena v vedro S3 rešitve (bodisi ročno s strani človeka ali samodejno s cevovodom kode), vrsta funkcij Lambda – procesor nastavitev, procesor elementov in procesor rezultatov – sodelujejo pri pošiljanju nalog Amazon Polly in zbere zvočne datoteke namesto vas. Ko je vse delo opravljeno, se objavi obvestilo v temi SNS.
Rešitev je razvita kot odprtokodni projekt na GitHubu. Veseli bomo vaših zahtev po funkcijah, poročil o napakah ali prispevkov. Preizkusite to sami in nam v komentarjih sporočite, kaj mislite. Če želite izvedeti več o tem, kako vam lahko Amazon Polly pomaga, obiščite našo spletno stran!
O avtorjih
Jon Peterson je višji arhitekt rešitev pri AWS. Z ženo in dvema otrokoma živi zunaj Chicaga.
Prateek Jain je arhitekt rešitev pri AWS s sedežem v Atlanti Georgia. Navdušen je nad oblakom in pomaga strankam zgraditi neverjetne rešitve na AWS.
- '
- 100
- 7
- dostop
- Račun
- agenti
- Letališča
- vsi
- Amazon
- Amazon Polly
- API
- API-ji
- uporaba
- aplikacije
- Arhitektura
- Argumenti
- Atlanta
- audio
- Avtomatizirano
- AWS
- Bug
- izgradnjo
- avtobus
- klic
- primeri
- spremenite
- preverjanje
- Pregledi
- Chicago
- Otroci
- Cloud
- Koda
- komentarji
- Skupno
- komponenta
- Vsebina
- stroški
- Pomoč strankam
- Stranke, ki so
- datum
- Podatki
- urednik
- E-naslov
- okolje
- Event
- Napaka
- Feature
- brezplačno
- funkcija
- Games
- Georgia
- git
- GitHub
- Kako
- Kako
- HTTPS
- Ljudje
- IAM
- Vključno
- integracija
- IT
- Delovna mesta
- jeziki
- velika
- zakon
- UČITE
- vrstica
- Seznam
- obremenitev
- lokalna
- kraj aktivnosti
- Long
- velika
- milijonov
- premika
- Imena
- Nevronski
- Obvestilo
- številke
- odprite
- open source
- Da
- naročila
- Ostalo
- drugi
- Plačajte
- stavki
- Prispevkov
- zasebna
- Projekt
- javnega
- reading
- evidence
- Poročila
- viri
- Odgovor
- restavracija
- Rezultati
- pregleda
- Run
- tek
- Serija
- Brez strežnika
- Storitve
- nastavite
- nastavitev
- Delite s prijatelji, znanci, družino in partnerji :-)
- deli
- Shell
- Enostavno
- SIX
- So
- rešitve
- preživeti
- začel
- Država
- bivanje
- shranjevanje
- zgodbe
- predložen
- naročnina
- uspeh
- uspešno
- podpora
- Podprti
- sistem
- sistemi
- pogovor
- tehnični
- Glasovi
- čas
- sledenje
- posodobitve
- us
- Video
- video igre
- Virtual
- Voice
- GLASOVI
- Obseg
- Počakaj
- v
- delo
- potek dela
- deluje