Az elmúlt néhány évben az online oktatási platformokon megnőtt a videóalapú tanulás elterjedtsége, és megnőtt a kereslet az iránt, mivel ez hatékony médiumot kínál a tanulók bevonására. A nemzetközi piacokra való terjeszkedés és a kulturálisan és nyelvileg sokszínű lakosság megszólítása érdekében a vállalkozások a tartalom több nyelvre történő lokalizálásával is igyekeznek változatossá tenni tanulási kínálatukat. Ezek a vállalkozások megbízható és költséghatékony módszereket keresnek lokalizációs használati eseteik megoldására.
A tartalom lokalizálása elsősorban az eredeti hangok új nyelvekre történő lefordítását és vizuális segédeszközök, például feliratok hozzáadását foglalja magában. Hagyományosan ez a folyamat költséges, manuális, és sok időt vesz igénybe, beleértve a lokalizációs szakemberekkel való együttműködést is. Az AWS gépi tanulási (ML) szolgáltatások erejével, mint pl Amazon átirat, Amazon Translateés Amazon Polly, akkor életképes és költséghatékony lokalizációs megoldást hozhat létre. Az Amazon Transcribe segítségével létrehozhatja meglévő hang- és videofolyamainak átiratát, majd lefordíthatja ezt az átiratot több nyelvre az Amazon Translate segítségével. Ezután használhatja az Amazon Pollyt, egy szövegfelolvasó szolgáltatást, hogy a lefordított szöveget természetes hangzású emberi beszéddé alakítsa.
A lokalizáció következő lépése az, hogy feliratokat adnak a tartalomhoz, ami javíthatja a hozzáférhetőséget és a megértést, valamint segít a nézőknek a videók jobb megértésében. A videotartalom feliratozása kihívást jelenthet, mivel a lefordított beszéd nem egyezik az eredeti beszédidőzítéssel. A hang és a feliratok közötti szinkronizálás kritikus megfontolandó feladat, mivel ez leválaszthatja a közönséget a tartalomról, ha nincsenek szinkronban. Az Amazon Polly megoldást kínál erre a kihívásra az engedélyezésen keresztül beszédjegyek, amivel a generált beszédkimenettel szinkronizálható feliratfájlt hozhatunk létre.
Ebben a bejegyzésben egy AWS ML-szolgáltatásokat használó lokalizációs megoldást tekintünk át, ahol eredeti angol videót használunk, és spanyol nyelvre konvertáljuk. Arra is összpontosítunk, hogy beszédjeleket használjunk szinkronizált spanyol nyelvű feliratfájl létrehozásához.
Megoldás áttekintése
A következő ábra a megoldás architektúráját mutatja be.
A megoldás egy videofájlt és a célnyelvi beállításokat veszi be bemenetként, és az Amazon Transcribe segítségével készíti el a videó átiratát. Ezután az Amazon Translate segítségével lefordítjuk az átiratot a célnyelvre. A lefordított szöveg bemenetként szolgál az Amazon Polly számára, hogy a célnyelven generálja a hangfolyamot és a beszédjeleket. Amazon Polly visszatér beszédjel kimenet sorokkal elválasztott JSON-folyamban, amely olyan mezőket tartalmaz, mint az idő, típus, kezdet, vége és érték. Az érték a bemenetben kért beszédjel típusától függően változhat, mint pl SSML, viseme, szó vagy mondat. Példánk céljából kértük a beszédjel típus as word
. Ezzel a lehetőséggel az Amazon Polly felosztja a mondatot a mondatban szereplő egyes szavaira, valamint azok kezdő- és befejezési idejére az audiofolyamban. Ezekkel a metaadatokkal a beszédjelek feldolgozása az Amazon Polly által generált megfelelő hangfolyamhoz tartozó feliratok létrehozásához.
Végül használjuk AWS Elemental MediaConvert a végső videó lefordított hanganyaggal és a megfelelő feliratokkal való megjelenítéséhez.
Az alábbi videó a megoldás végeredményét mutatja be:
AWS Step Functions munkafolyamat
Az általunk használt AWS lépésfunkciók ennek a folyamatnak a megszervezésére. A következő ábra a Step Functions munkafolyamat magas szintű nézetét mutatja (a jobb áttekinthetőség érdekében néhány lépést kihagytunk a diagramból).
A munkafolyamat lépései a következők:
- A felhasználó feltölti a forrásvideofájlt egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödör.
- A S3 eseményértesítés kiváltja a AWS Lambda funkció state_machine.py (az ábrán nem látható), amely meghívja a Step Functions állapotgépet.
- Az első lépés, Hang átírása, meghívja a Lambda függvényt átír.py, amely az Amazon Transcribe segítségével állítja elő a forrásvideó hangjának átiratát.
A következő mintakód bemutatja, hogyan hozhat létre átírási feladatot az Amazon Transcribe használatával Boto3 Python SDK:
A munka befejezése után a kimeneti fájlok az S3 tárolóba kerülnek, és a folyamat folytatódik a tartalom fordításának következő lépésével.
- A Az átírás lefordítása lépés meghívja a Lambda függvényt translate.py amely az Amazon Translate segítségével fordítja le az átiratot a célnyelvre. Itt a szinkron/valós idejű fordítást használjuk a szöveg fordítása funkció:
A szinkron fordítás korlátozza a fordítható dokumentum méretét; az írás pillanatában 5,000 bájtra van beállítva. Nagyobb dokumentumméretek esetén fontolja meg a feladat létrehozásának aszinkron útvonalát start_text_translation_job és az állapot ellenőrzése ezen keresztül leírás_szöveg_fordítási_munka.
- A következő lépés a Lépésfüggvények Párhuzamos állapot, ahol az állapotgépünkben párhuzamos ágakat hozunk létre.
- Az első ágban meghívjuk a Lambda függvényt a Lambda függvényt gener_polly_audio.py Amazon Polly hangfolyamunk létrehozásához:
Itt használjuk a start_speech_synthesis_task Az Amazon Polly Python SDK metódusa az Amazon Polly hangot létrehozó beszédszintézis feladat elindításához. Beállítottuk a
OutputFormat
nak nekmp3
, amely arra utasítja az Amazon Pollyt, hogy generáljon hangfolyamot ehhez az API-híváshoz. - A második ágban a Lambda függvényt hívjuk meg gener_speech_marks.py beszédjelek kimenetének generálásához:
- Az első ágban meghívjuk a Lambda függvényt a Lambda függvényt gener_polly_audio.py Amazon Polly hangfolyamunk létrehozásához:
- Ismét használjuk a start_speech_synthesis_task módszert, hanem adja meg
OutputFormat
nak nekjson
, amely arra utasítja az Amazon Pollyt, hogy generáljon beszédjeleket ehhez az API-híváshoz.
A második ág következő lépésében a Lambda függvényt hívjuk meg gener_subtitles.py, amely megvalósítja azt a logikát, hogy a beszédjelek kimenetéből feliratfájlt generáljon.
A fájlban található Python modult használja webvtt_utils.py. Ez a modul több segédfunkcióval rendelkezik a feliratfájl létrehozásához; egy ilyen módszer get_phrases_from_speechmarks
felelős a beszédjelek fájl elemzéséért. A beszédjelek JSON-struktúrája minden szóhoz külön-külön csak a kezdési időpontot adja meg. Az SRT-fájlhoz szükséges feliratidőzítés létrehozásához először körülbelül n (ahol n=10) szóból álló kifejezéseket hozunk létre a beszédjel-fájlban található szavak listájából. Ezután SRT fájlformátumba írjuk őket, a kezdési időpontot a kifejezés első szavától vesszük, a befejezési időponthoz pedig az (n+1) szó kezdési idejét használjuk, és abból 1-gyel kivonjuk a szekvenált bejegyzést. . A következő függvény létrehozza a kifejezéseket az SRT fájlba való írásuk előkészítéseként:
- Az utolsó lépés, Media Convert, meghívja a Lambda függvényt create_mediaconvert_job.py az Amazon Polly hangfolyamának és a feliratfájlnak a forrásvideofájllal való kombinálása a végső kimeneti fájl létrehozásához, amelyet aztán egy S3 tárolóban tárolnak. Ez a lépés használja
MediaConvert
, egy fájl alapú videó-átkódolási szolgáltatás adásminőségű funkciókkal. Lehetővé teszi igény szerinti videotartalom egyszerű létrehozását, és a fejlett video- és audioképességeket egy egyszerű webes felülettel kombinálja. Itt is a Python-t használjuk Boto3 SDK létrehozásához aMediaConvert
munka:
Előfeltételek
Mielőtt elkezdené, a következő előfeltételekkel kell rendelkeznie:
Telepítse a megoldást
A megoldás AWS CDK használatával történő üzembe helyezéséhez hajtsa végre a következő lépéseket:
- Klónozza a raktár:
- Hogy megbizonyosodjon arról, hogy az AWS CDK bakancsos, futtassa a parancsot
cdk bootstrap
az adattár gyökeréből: - Módosítsa a munkakönyvtárat a lerakat gyökerére, és futtassa a következő parancsot:
Alapértelmezés szerint a cél hangbeállítások amerikai spanyolra vannak állítva (es-US
). Ha egy másik célnyelvvel tervezi tesztelni, használja a következő parancsot:
A folyamat néhány percet vesz igénybe, majd egy hivatkozást jelenít meg, amelyen megtekintheti a célvideofájlt a lefordított hanggal és a lefordított feliratokkal.
Tesztelje az oldatot
A megoldás teszteléséhez a következők egy kis részét használtuk AWS re:Invent 2017 videó a YouTube-ról, ahol az Amazon Transcribe először mutatkozott be. A megoldást saját videóddal is tesztelheted. Tesztvideónk eredeti nyelve angol. A megoldás telepítésekor megadhatja a cél hangbeállításokat, vagy használhatja az alapértelmezett célhangbeállításokat, amelyek spanyolul állítják elő a hangot és a feliratokat. A megoldás létrehoz egy S3 tárolót, amelybe fel lehet tölteni a videofájlt.
- Az Amazon S3 konzolon navigáljon a vödörhöz
PollyBlogBucket
. - Válassza ki a vödröt, navigáljon a
/inputVideo
könyvtárba, és töltse fel a videofájlt (a megoldást mp4 típusú videókkal teszteltük). Ezen a ponton egy S3 eseményértesítés elindítja a Lambda funkciót, amely elindítja az állapotgépet. - A Step Functions konzolon tallózással keresse meg az állapotgépet (
ProcessAudioWithSubtitles
). - Válassza ki az állapotgép egyik futtatását a megkereséséhez Grafikonfelügyelő.
Ez az egyes állapotokhoz tartozó futtatási eredményeket mutatja. A Step Functions munkafolyamat néhány percet vesz igénybe, majd ellenőrizheti, hogy az összes lépést sikeresen végrehajtotta-e.
Tekintse át a kimenetet
A kimenet áttekintéséhez nyissa meg az Amazon S3 konzolt, és ellenőrizze, hogy az audiofájl (.mp3) és a beszédjel-fájl (.marks) tárolva van-e az S3 tárolóban az alatt. <ROOT_S3_BUCKET>/<UID>/synthesisOutput/
.
Az alábbiakban egy minta látható a lefordított szövegből előállított beszédjel fájlból:
Ebben a kimenetben a szöveg minden része beszédjelek szerint van felosztva:
- idő – 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)
- kezdet – Az objektum elejének eltolása bájtokban (nem karakterekben) a beviteli szövegben (visémajelek nélkül)
- végén – Az objektum végének eltolása bájtokban (nem karakterekben) a beviteli szövegben (visémajelek nélkül)
- érték – Egyes szavak a mondatban
A generált feliratfájl visszaírásra kerül az S3 tárolóba. alatt találod a fájlt <ROOT_S3_BUCKET>/<UID>/subtitlesOutput/
. Vizsgálja meg a feliratfájlt; a tartalomnak hasonlónak kell lennie a következő szöveghez:
A feliratfájl és az audiofájl létrehozása után a MediaConvert segítségével létrejön a végső forrásvideófájl. Ellenőrizze a MediaConvert konzolt, hogy ellenőrizze, hogy a feladat állapota van-e COMPLETE
.
Amikor a MediaConvert munka befejeződött, a végső videofájl generálódik, és visszakerül az S3 tárolóba, amely a alatt található. <ROOT_S3_BUCKET>/<UID>/convertedAV/
.
Ennek a telepítésnek a részeként a végső videót egy Amazon CloudFront (CDN) hivatkozásra, és megjelenik a terminálban vagy a AWS felhőképződés konzol.
Nyissa meg az URL-t egy böngészőben, hogy megtekinthesse az eredeti videót további hang- és feliratozási lehetőségekkel. Ellenőrizheti, hogy a lefordított hanganyag és a feliratok szinkronban vannak-e.
Következtetés
Ebben a bejegyzésben megvitattuk, hogyan hozhatunk létre videofájlok új nyelvi verzióit manuális beavatkozás nélkül. A tartalomkészítők ezzel a folyamattal szinkronizálhatják videóik hangját és feliratait, és elérhetik a globális közönséget.
Könnyedén integrálhatja ezt a megközelítést saját gyártási folyamataiba, hogy nagy mennyiségeket kezelhessen és az igényeinek megfelelően méretezzen. Amazon Polly használ Neurális TTS (NTTS) természetes és emberszerű szövegfelolvasó hangok előállítására. Az is támogatja beszédet generál SSML-ből, amely további szabályozást biztosít afelől, hogy az Amazon Polly hogyan generál beszédet a megadott szövegből. Az Amazon Polly emellett a különféle hangok több nyelven az Ön igényeinek kielégítésére.
Kezdje el az AWS gépi tanulási szolgáltatásait a webhelyen Termékoldal, vagy hivatkozzon a Amazon Machine Learning Solutions Lab oldal, ahol szakértőkkel együttműködve gépi tanulási megoldásokat hozhat szervezetébe.
További források
A megoldásban használt szolgáltatásokkal kapcsolatos további információkért tekintse meg a következőket:
A szerzőkről
Reagan Rosario megoldástervezőként dolgozik az AWS-nél, oktatástechnológiai cégekre összpontosítva. Szereti az ügyfeleknek segíteni skálázható, magasan elérhető és biztonságos megoldások létrehozásában az AWS Cloudban. Több mint egy évtizedes tapasztalattal rendelkezik különféle technológiai munkakörökben, különös tekintettel a szoftverfejlesztésre és az építészetre.
Anil Kodali az Amazon Web Services megoldástervezője. Együttműködik az AWS EdTech ügyfeleivel, és bevált építészeti gyakorlatokat mutat be a meglévő munkaterhelések felhőbe való migrálásához, és új munkaterhelések tervezéséhez felhő-első megközelítéssel. Mielőtt csatlakozott volna az AWS-hez, nagy kereskedőkkel dolgozott, hogy segítse őket a felhőbe való migrációban.
Prasanna Saraswathi Krishnan az Amazon Web Services megoldástervezője, aki az EdTech ügyfelekkel dolgozik. Segít nekik felhőarchitektúrájukat és adatstratégiájukat a bevált gyakorlatok segítségével vezetni. Előélete az elosztott számítástechnika, a big data analitika és az adatmérnöki szakma. Szenvedélye a gépi tanulás és a természetes nyelvi feldolgozás.
- AI
- ai művészet
- ai art generátor
- van egy robotod
- Amazon ML Solutions Lab
- Amazon Polly
- Amazon átirat
- Amazon Translate
- mesterséges intelligencia
- mesterséges intelligencia tanúsítás
- mesterséges intelligencia a bankszektorban
- mesterséges intelligencia robot
- mesterséges intelligencia robotok
- mesterséges intelligencia szoftver
- AWS gépi tanulás
- blockchain
- blokklánc konferencia ai
- coingenius
- társalgási mesterséges intelligencia
- kriptokonferencia ai
- dall's
- mély tanulás
- google azt
- gépi tanulás
- Plató
- plato ai
- Platón adatintelligencia
- Platón játék
- PlatoData
- platogaming
- skála ai
- szintaxis
- zephyrnet