Amazon Polly egy olyan szolgáltatás, amely a szöveget élethű beszéddé változtatja. Lehetővé teszi olyan alkalmazások egész osztályának fejlesztését, amelyek több nyelven képesek szöveget beszéddé alakítani.
Ezt a szolgáltatást chatbotok, hangoskönyvek és más szövegfelolvasó alkalmazások használhatják más AWS AI vagy gépi tanulási (ML) szolgáltatásokkal együtt. Például, Amazon Lex és az Amazon Polly kombinálásával létrehozható egy chatbot, amely kétirányú beszélgetést folytat a felhasználóval, és a felhasználó parancsai alapján hajt végre bizonyos feladatokat. Amazon átirat, Amazon Translate, és az Amazon Polly kombinálható a beszéd átírása szöveggé a forrásnyelven, lefordítható egy másik nyelvre, és kimondható.
Ebben a bejegyzésben egy érdekes megközelítést mutatunk be a szöveg kiemelésére az Amazon Polly használatával. Ez a megoldás számos szövegfelolvasó alkalmazásban használható a következőkre:
- Vizuális lehetőségek hozzáadása a könyvekben, webhelyeken és blogokban található hangokhoz
- Növelje a megértést, amikor az ügyfelek gyorsan próbálják megérteni a szöveget, ahogy azt kimondják
Megoldásunk lehetőséget ad az ügyfélnek (ebben a példában a böngészőnek) arra, hogy bármikor megtudja, milyen szöveget (szót vagy mondatot) mond az Amazon Polly. Ez lehetővé teszi a kliens számára, hogy dinamikusan kiemelje a szöveget az elhangzás közben. Ez a képesség hasznos a beszéd vizuális segítésére a korábban említett használati esetekben.
Megoldásunk kibővíthető a szövegkiemelés mellett további feladatok elvégzésére is. Például a böngésző képes képeket megjeleníteni, zenét lejátszani vagy más animációkat előadni a kezelőfelületen, miközben a szöveg kimondja. Ez a képesség hasznos dinamikus hangoskönyvek, oktatási tartalmak és gazdagabb szövegfelolvasó alkalmazások létrehozásához.
Megoldás áttekintése
A megoldás lényegében az Amazon Polly segítségével alakítja át a szöveget beszéddé. A szöveg bevihető a böngészőből vagy API-híváson keresztül a megoldásunk által kitett végponthoz. Az Amazon Polly által generált beszédet audiofájlként (MP3 formátumban) tárolja egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödör.
Azonban egyedül az audiofájlt használva a böngésző nem találja meg, hogy a szöveg mely részeit mondják el egy pillanat alatt, mivel nem rendelkezünk részletes információval arról, hogy az egyes szavak mikor hangzanak el.
Az Amazon Polly lehetőséget biztosít ennek elérésére beszédjelekkel. A beszédjeleket a rendszer egy szövegfájlban tárolja, amely az egyes szavak vagy mondatok kimondásának idejét mutatja (ezredmásodpercben a hang elejétől számítva).
Az Amazon Polly a beszédjel-objektumokat egy vonallal elválasztott JSON-folyamban adja vissza. A beszédjel objektum a következő mezőket tartalmazza:
- Time – Az időbélyeg ezredmásodpercben a megfelelő hangfolyam kezdetétől számítva
- típus – A beszédjel típusa (mondat, szó, viséma vagy SSML)
- Rajt – Az objektum elejének eltolása bájtokban (nem karakterekben) a beviteli szövegben (visémajelek nélkül)
- vég – Az objektum végének eltolása bájtokban (nem karakterekben) a beviteli szövegben (visémajelek nélkül)
- Érték – Ez a beszédjel típusától függően változik:
- SSML – SSML címke
- Viseme – A viseme neve
- Szó ill mondat – A beviteli szöveg részkarakterlánca, amelyet a kezdő és záró mezők határolnak
Például a „Máriának volt egy kis báránya” mondat a következő beszédjel-fájlt adhatja, ha használja SpeechMarkTypes
= ["szó", "mondat"] az API-hívásban a beszédjelek megszerzéséhez:
A „volt” szó (a 3. sor végén) 373 ezredmásodperccel az audiofolyam kezdete után kezdődik, az 5. bájtnál kezdődik és a 8. bájtnál ér véget.
Építészeti áttekintés
Megoldásunk architektúráját az alábbi ábra mutatja be.
A megoldást kínáló webhelyünket az Amazon S3 statikus fájlokként (JavaScript, HTML) tároljuk, amelyek Amazon CloudFront (1) és a végfelhasználó böngészőjének (2) szolgálják ki.
Amikor a felhasználó egy egyszerű HTML űrlapon keresztül szöveget ír be a böngészőbe, azt a böngésző JavaScriptje dolgozza fel. Ez egy API-t (3) hív keresztül Amazon API átjáró, meghívni egy AWS Lambda funkció (4). A Lambda függvény meghívja az Amazon Polly-t (5), hogy beszéd- (audio) és beszédjel- (JSON) fájlokat generáljon. Két hívás érkezik az Amazon Polly felé, hogy lekérjék a hang- és beszédjelfájlokat. A hívások JavaScript aszinkron függvények segítségével történnek. E hívások kimenete az Amazon S3 (6a) által tárolt hang- és beszédjelfájlok. Annak elkerülése érdekében, hogy több felhasználó felülírja egymás fájljait az S3 tárolóban, a fájlok egy időbélyeggel ellátott mappában tárolódnak. Ez minimálisra csökkenti annak esélyét, hogy két felhasználó felülírja egymás fájljait az Amazon S3-ban. Éles kiadás esetén robusztusabb megközelítéseket alkalmazhatunk a felhasználók fájljainak elkülönítésére felhasználói azonosító vagy időbélyeg és egyéb egyedi jellemzők alapján.
A Lambda függvény előre aláírt URL-címeket hoz létre a beszéd- és beszédjel-fájlok számára, és tömb formájában (7, 8, 9) visszaküldi a böngészőnek.
Amikor a böngésző elküldi a szöveges fájlt az API-végpontnak (3), visszakap két előre aláírt URL-címet az audiofájlhoz és a beszédjel-fájlhoz egy szinkron hívásban (9). Ezt a nyíl melletti kulcsszimbólum jelzi.
A böngésző JavaScript funkciója lekéri a beszédjel-fájlt és a hangot az URL-kezelőikről (10). Beállítja az audiolejátszót a hang lejátszására. (Erre a célra a HTML hangcímkét használjuk).
Amikor a felhasználó rákattint a lejátszás gombra, elemzi a korábbi lépésben lekért beszédjeleket, hogy időzített események sorozatát hozza létre az időtúllépések használatával. Az események egy visszahívási függvényt hívnak meg, amely egy másik JavaScript-függvény, amely a böngészőben a kimondott szöveg kiemelésére szolgál. Ezzel egyidejűleg a JavaScript függvény streameli a hangfájlt az URL-kezelőjéből.
Az eredmény az, hogy az események a megfelelő időpontokban futnak, hogy kiemeljék a szöveget, ahogyan a hang lejátszása közben elhangzik. A JavaScript időtúllépések használata biztosítja számunkra a hang szinkronizálását a kiemelt szöveggel.
Előfeltételek
A megoldás futtatásához szüksége van egy AWS-fiók egy AWS Identity and Access Management (IAM) felhasználó, aki jogosult az Amazon CloudFront, az Amazon API Gateway, az Amazon Polly, az Amazon S3, az AWS Lambda és az AWS Step Functions használatára.
A Lambda használatával beszédet és beszédjeleket generálhat
A következő kód meghívja az Amazon Polly-t synthesize_speech
funkciót kétszer a hang- és beszédjelek fájl letöltéséhez. Aszinkron függvényként futnak, és úgy hangolják össze, hogy ígéretekkel egyidejűleg visszaadják az eredményt.
A JavaScript oldalon a szövegkiemelést kiemelő (kezdet, befejezés, szó) végzi, az időzített eseményeket pedig setTimers()
:
Alternatív megközelítések
Az előző megközelítés helyett megfontolhat néhány alternatívát:
- Hozzon létre beszédjeleket és hangfájlokat is egy Step Functions állapotgépen belül. Az állapotgép meghívhatja a párhuzamos elágazási feltételt két különböző lambda-függvény meghívására: az egyik a beszéd, a másik pedig a beszédjelek generálására. Ennek kódja megtalálható a lépés-függvények használata almappáját a Github-tárban.
- A hang- és beszédjelek generálásához aszinkron módon hívja meg az Amazon Polly-t. Ez a megközelítés akkor használható, ha a szöveges tartalom nagy, vagy a felhasználónak nincs szüksége valós idejű válaszra. A hosszú hangfájlok létrehozásával kapcsolatos további részletekért lásd: Hosszú hangfájlok létrehozása.
- Az Amazon Polly közvetlenül hozza létre az előre aláírt URL-t a
generate_presigned_url
hívja fel az Amazon Polly klienst a Boto3-ban. Ha ezt a megközelítést választja, az Amazon Polly minden alkalommal újonnan generálja a hang- és beszédjeleket. Jelenlegi megközelítésünk szerint ezeket a fájlokat az Amazon S3-ban tároljuk. Bár ezek a tárolt fájlok a kód mi verziójában nem érhetők el a böngészőből, módosíthatja a kódot, hogy lejátssza a korábban generált hangfájlokat úgy, hogy lekéri őket az Amazon S3-ból (ahelyett, hogy újra generálja a hangot a szöveghez az Amazon Polly segítségével). Nekünk több is van kódpéldák az Amazon Polly eléréséhez Python segítségével az AWS kódtárban.
Hozd létre a megoldást
A teljes megoldás elérhető nálunk Github repo. A megoldás létrehozásához fiókjában kövesse a README.md fájl utasításait. A megoldás tartalmaz egy AWS felhőképződés sablon az erőforrások biztosításához.
Razzia
A bemutatóban létrehozott erőforrások megtisztításához hajtsa végre a következő lépéseket:
- Törölje a CloudFormation-sablon (A csoport), a forráskód (B csoport) és a webhely tárolására létrehozott S3-gyűjtőket (
pth-cf-text-highlighter-website-[Suffix]
). - Törölje a CloudFormation veremet
pth-cf
. - Törölje a beszédfájlokat tartalmazó S3 tárolót (
pth-speech-[Suffix]
). Ezt a tárolót a CloudFormation sablon hozta létre az Amazon Polly által generált hang- és beszédjelfájlok tárolására.
Összegzésként
Ebben a bejegyzésben egy példát mutattunk be egy olyan megoldásra, amely képes kiemelni a szöveget az Amazon Polly használatával. Az Amazon Polly beszédjelek funkciójával fejlesztették ki, amely jelölőket biztosít számunkra az egyes szavak vagy mondatok kezdési helyéhez egy hangfájlban.
A megoldás CloudFormation sablonként érhető el. Bármilyen webalkalmazásban telepíthető, amely szöveg-beszéd átalakítást végez. Ez hasznos lehet a vizuális képességek hozzáadásához könyvekben, szájszinkronizálási képességgel rendelkező avatarokban (viseme beszédjelek használatával), webhelyeken és blogokban, valamint a hallássérült emberek segítésében.
A szövegkiemelés mellett további feladatok elvégzésére is bővíthető. Például a böngésző képes képeket megjeleníteni, zenét lejátszani és más animációkat is előadni a kezelőfelületen, miközben a szöveg beszéd van. Ez a képesség hasznos lehet dinamikus hangoskönyvek, oktatási tartalmak és gazdagabb szövegfelolvasó alkalmazások létrehozásához.
Szeretettel várjuk, hogy próbálja ki ezt a megoldást, és tudjon meg többet a vonatkozó AWS-szolgáltatásokról a következő linkeken. Bővítheti a funkcionalitást sajátos igényei szerint.
A szerzőről
Varad G Varadarajan az AWS-nél a Digital Native Businesses (DNB) ügyfelek megbízható tanácsadója és helyszíni műszaki igazgatója. Segít nekik az AWS-termékek és -szolgáltatások felhasználásával innovatív megoldások tervezésében és létrehozásában. Varad érdeklődési köre az IT stratégiai tanácsadás, az architektúra és a termékmenedzsment. A munkán kívül Varad szeret kreatív írást, filmeket nézni családjával és barátaival, valamint utazni.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Autóipar / elektromos járművek, Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- BlockOffsets. A környezetvédelmi ellentételezési tulajdon korszerűsítése. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/highlight-text-as-its-being-spoken-using-amazon-polly/
- :van
- :is
- :nem
- $ UP
- 1
- 10
- 100
- 11
- 12
- 17
- 19
- 22
- 23
- 33
- 7
- 8
- 9
- a
- képesség
- Rólunk
- hozzáférés
- hozzáférhető
- Hozzáférés
- Fiók
- hozzáadásával
- További
- tanácsadó
- Után
- újra
- AI
- Támogatás
- kizárólag
- alternatívák
- Bár
- amazon
- Amazon API átjáró
- Amazon Polly
- Az Amazon Web Services
- an
- és a
- animációk
- Másik
- bármilyen
- api
- Alkalmazás
- alkalmazások
- megközelítés
- megközelít
- megfelelő
- építészet
- VANNAK
- területek
- Sor
- AS
- At
- hang-
- elérhető
- karakterekkel
- elkerülése érdekében
- várják
- AWS
- AWS Lambda
- AWS lépésfunkciók
- vissza
- alapján
- BE
- mert
- Kezdet
- hogy
- kívül
- blogok
- Könyvek
- mindkét
- Ág
- böngésző
- épít
- vállalkozások
- gomb
- by
- hívás
- kéri
- TUD
- képességek
- képesség
- esetek
- bizonyos
- esély
- jellemzők
- karakter
- chatbot
- chatbots
- osztály
- vásárló
- kód
- kombinált
- feltétel
- kötőszó
- Fontolja
- Konzol
- tanácsadó
- tartalmaz
- tartalom
- folytatódik
- Beszélgetés
- Átalakítás
- megtérít
- összehangolt
- Mag
- Megfelelő
- teremt
- készítette
- teremt
- létrehozása
- Kreatív
- CTO
- Jelenlegi
- Ügyfelek
- demó
- attól
- telepített
- részletek
- fejlett
- Fejlesztés
- különböző
- digitális
- közvetlenül
- DNB
- do
- dokumentum
- Nem
- csinált
- ne
- dinamikus
- dinamikusan
- minden
- Korábban
- nevelési
- lehetővé teszi
- végén
- Endpoint
- vége
- elkötelezett
- belép
- Egész
- hiba
- események
- Minden
- példa
- példák
- kitett
- terjed
- család
- Funkció
- kevés
- mező
- Fields
- filé
- Fájlok
- Találjon
- befejezni
- következik
- következő
- A
- forma
- formátum
- talált
- barátok
- ból ből
- front
- Front end
- funkció
- funkcionalitás
- funkciók
- gateway
- generál
- generált
- generál
- GitHub
- Ad
- ad
- Go
- kellett
- fogantyú
- Fogantyúk
- Legyen
- he
- hallás
- segít
- Kiemel
- Kiemelt
- kiemelve
- házigazdája
- HTML
- http
- HTTPS
- i
- ID
- Identitás
- if
- képek
- in
- magában foglalja a
- Beleértve
- jelzett
- információ
- újító
- bemenet
- belső
- azonnali
- helyette
- utasítás
- kamat
- érdekes
- bele
- behívja
- IT
- ITS
- JavaScript
- json
- Kulcs
- Ismer
- nyelv
- Nyelvek
- nagy
- TANUL
- tanulás
- Hossz
- hadd
- könyvtár
- vonal
- linkek
- kis
- Hosszú
- gép
- gépi tanulás
- készült
- vezetés
- sok
- jel
- említett
- ML
- módosítása
- több
- Filmek
- többszörös
- zene
- bennszülött
- Szükség
- igények
- Új
- újonnan
- következő
- tárgy
- objektumok
- szerez
- of
- eltolt
- on
- ONE
- or
- Más
- mi
- ki
- teljesítmény
- kívül
- Párhuzamos
- alkatrészek
- Emberek (People)
- Teljesít
- Előadja
- engedély
- Hely
- Plató
- Platón adatintelligencia
- PlatoData
- játszani
- játszott
- játékos
- állás
- be
- bemutatott
- előző
- korábban
- Feldolgozott
- Termékek
- termékmenedzsment
- Termelés
- Termékek
- ígéret
- ígér
- biztosít
- amely
- ellátás
- cél
- gyorsan
- real-time
- engedje
- Tudástár
- válasz
- eredményez
- visszatérés
- Visszatér
- erős
- futás
- s
- azonos
- Skála
- küld
- mondat
- Series of
- szolgáltatás
- Szolgáltatások
- készlet
- Szettek
- előadás
- kimutatta,
- Műsorok
- oldal
- Egyszerű
- egyszerre
- megoldások
- Megoldások
- forrás
- forráskód
- beszél
- különleges
- beszéd
- beszélt
- verem
- kezdet
- kezdődik
- Állami
- Lépés
- Lépései
- tárolás
- tárolni
- memorizált
- Stratégia
- folyam
- patakok
- Húr
- ilyen
- szimbólum
- összehangolás
- TAG
- feladatok
- sablon
- Text-to-Speech
- hogy
- A
- The Source
- Az állam
- azok
- Őket
- Ezek
- ezt
- Keresztül
- idő
- időzített
- alkalommal
- időbélyeg
- nak nek
- fordít
- Utazó
- Megbízható
- megpróbál
- fordul
- kettő
- típus
- megért
- egyedi
- URL
- us
- használ
- használt
- használó
- Felhasználók
- használ
- segítségével
- érték
- Értékek
- változat
- volt
- őrzés
- Út..
- we
- háló
- webalkalmazás
- webes szolgáltatások
- weboldal
- honlapok
- fogadtatás
- Mit
- amikor
- ami
- míg
- WHO
- egész
- val vel
- szó
- Munka
- lenne
- írás
- te
- A te
- zephyrnet