Képzeljen el egy sebészt, aki emberi fordító nélkül folytat videohívásokat betegekkel szerte a világon. Mi lenne, ha egy újonnan induló startup könnyen kiterjeszthetné termékét a határokon átívelőre és új földrajzi piacokra azáltal, hogy rugalmas, pontos, többnyelvű ügyfélszolgálatot és értékesítést kínál, mindezt élő emberi fordító nélkül? Mi történik a vállalkozásával, ha már nem köti a nyelv?
Manapság gyakoriak a virtuális találkozók olyan nemzetközi csapatokkal és ügyfelekkel, akik sok különböző nyelven beszélnek. Legyen szó belső vagy külső megbeszélésekről, a jelentés gyakran elveszik az összetett megbeszélések során, és olyan nyelvi akadályokba ütközhet, amelyek megakadályozzák, hogy a lehető leghatékonyabb legyen.
Ebben a bejegyzésben megtudhatja, hogyan használhat három teljesen felügyelt AWS-szolgáltatást (Amazon átirat, Amazon Translateés Amazon Polly), hogy olyan közel valós idejű beszéd-beszéd fordító megoldást készítsünk, amely gyorsan le tudja fordítani a forrásbeszélő élő hangját egy beszélt, pontos, lefordított célnyelvre, mindezt nulla gépi tanulási (ML) tapasztalattal.
A megoldás áttekintése
Fordítónk három teljesen felügyelt AWS ML szolgáltatásból áll, amelyek egyetlen Python-szkriptben működnek együtt a AWS SDK Pythonhoz (Boto3) szövegfordítási és szövegfelolvasó részeinkhez, valamint egy aszinkron streaming SDK-hoz a hangbemeneti átíráshoz.
Amazon Transcribe: Beszéd streamelése szöveggé
Az első szolgáltatás, amelyet a veremünkben használ, az Amazon Transcribe, egy teljesen felügyelt beszéd-szöveg szolgáltatás, amely átveszi a bemeneti beszédet és átírja azt szöveggé. Az Amazon Transcribe rugalmas feldolgozási módszerekkel rendelkezik, kötegelt vagy streaming, mert vagy tárolt hangfájlokat, vagy streamelt hangadatokat fogad el. Ebben a bejegyzésben a aszinkron Amazon Transcribe streaming SDK Pythonhoz, amely a HTTP/2 streaming protokollt használja élő hang streamelésére és élő átiratok fogadására.
Amikor először megépítettük ezt a prototípust, az Amazon Transcribe adatfolyam-feldolgozás nem támogatta az automatikus nyelvészlelést, de 2021 novemberétől ez már nem így van. A kötegelt és az adatfolyam-feldolgozás is támogatja az automatikus nyelvészlelést mindenki számára. támogatott nyelvek. Ebben a bejegyzésben bemutatjuk, hogyan lehetséges egy paraméter-alapú megoldás a zökkenőmentes, többnyelvű, paraméter nélküli tervezésen keresztül a streaming automatikus nyelvészlelés használatával. Miután az átírt beszédszegmensünket szövegként visszaküldjük, kérést küld az Amazon Translate-nek, hogy fordítsa le, és küldje vissza az eredményeket az Amazon Transcribe-unkban. EventHandler
módszer.
Amazon Translate: Korszerű, teljesen felügyelt fordítási API
Következő az Amazon Translate, egy neurális gépi fordítási szolgáltatás, amely gyors, kiváló minőségű, megfizethető és testreszabható nyelvi fordítást biztosít. 2022 júniusától az Amazon Translate 75 nyelven támogatja a fordítást, folyamatosan új nyelvpárokkal és fejlesztésekkel. Az Amazon Translate mély tanulási modelleket használ, amelyek egy nagymértékben méretezhető és rugalmas AWS Cloud architektúrán vannak tárolva, hogy gyorsan pontos fordításokat készítsen akár valós időben, akár kötegelt formában, az Ön használati esetétől függően. Az Amazon Translate használata egyszerű, és nem igényli a mögöttes architektúra vagy az ML-készségek kezelését. Az Amazon Translate számos funkcióval rendelkezik, például létrehozása és használata a egyéni terminológia az iparág-specifikus kifejezések közötti leképezés kezelésére. Az Amazon Translate szolgáltatási korlátokkal kapcsolatos további információkért lásd: Irányelvek és korlátok. Miután az alkalmazás megkapta a lefordított szöveget a célnyelvünkön, elküldi a lefordított szöveget az Amazon Polly-nak azonnali lefordított hanglejátszás céljából.
Amazon Polly: Teljesen felügyelt szövegfelolvasó API
Végül elküldi a lefordított szöveget az Amazon Polly-nak, egy teljesen felügyelt szövegfelolvasó szolgáltatásnak, amely élethű hangklip válaszokat küldhet vissza azonnali streaming lejátszáshoz, vagy kötegelt és menthető. Amazon egyszerű tárolási szolgáltatás (Amazon S3) későbbi használatra. Szabványosított módon szabályozhatja a beszéd különböző aspektusait, például a kiejtést, a hangerőt, a hangmagasságot, a beszédsebességet és még sok mást. Beszédszintézis jelölőnyelv (SSML).
Beszédet szintetizálhat bizonyos Amazon Polly számára Neurális hangok a Newscaster stílus használatával, hogy úgy szóljanak, mint egy tévé- vagy rádióhíradó. A hangfolyamban található metaadatok alapján azt is észlelheti, hogy a szöveg bizonyos szavai vagy mondatai hangzanak el. Ez lehetővé teszi a fejlesztő számára, hogy a szintetizált beszéddel szinkronizálja a grafikus kiemeléseket és animációkat, például egy avatar ajakmozgását.
Módosíthatja bizonyos szavak kiejtését, például cégneveket, betűszavakat, idegen szavakat vagy neologizmusokat, például „P!nk”, „ROTFL” vagy „C'est la vie” (ha nem franciául beszélünk). hang), egyéni lexikonok segítségével.
Építészeti áttekintés
Az alábbi ábra szemlélteti megoldásunk architektúráját.
A munkafolyamat a következő:
- A hangot a Python SDK veszi fel.
- Az Amazon Polly a beszédet szöveggé alakítja, 39 lehetséges nyelven.
- Az Amazon Translate konvertálja a nyelveket.
- Az Amazon Live Transcribe a szöveget beszéddé alakítja.
- A hangot a hangszórókon továbbítják.
Előfeltételek
Szüksége van egy mikrofonnal, hangszórókkal és megbízható internetkapcsolattal felszerelt gazdagépre. Egy modern laptopnak jól kell működnie ehhez, mert nincs szükség további hardverre. Ezután be kell állítania a gépet néhány szoftvereszközzel.
Az aszinkron Amazon Transcribe streaming SDK használatához és az úgynevezett Python modulhoz telepíteni kell a Python 3.7+ verziót. pyaudio
, amellyel a gép mikrofonját és hangszóróit vezérelheti. Ez a modul egy nevezett C könyvtártól függ portaudio.h
. Ha problémákba ütközik a pyaudio
hibákat, javasoljuk, hogy ellenőrizze az operációs rendszert, és ellenőrizze, hogy rendelkezik-e a portaudio.h
könyvtár telepítve.
A szolgáltatáshívások engedélyezéséhez és hitelesítéséhez hozzon létre egy AWS Identity and Access Management (IAM) szolgáltatási szerepkör a szükséges AWS-szolgáltatások meghívására vonatkozó engedéllyel. Konfigurálásával a AWS parancssori interfész (AWS CLI) ezzel az IAM-szolgáltatási szerepkörrel futtathatja szkriptünket a gépén anélkül, hogy kulcsokat vagy jelszavakat kellene átadnia, mivel az AWS-könyvtárak a konfigurált AWS CLI-felhasználó hitelesítő adatainak használatára vannak írva. Ez egy kényelmes módszer a gyors prototípuskészítéshez, és biztosítja, hogy szolgáltatásainkat felhatalmazott személy hívja. Mint mindig, kövesse a legkisebb jogosultság elvét, amikor IAM-házirendeket rendel hozzá, amikor IAM-felhasználót vagy szerepkört hoz létre.
Összefoglalva, a következő előfeltételekre van szüksége:
- PC, Mac vagy Linux gép mikrofonnal, hangszórókkal és internetkapcsolattal
- A
portaudio.h
C könyvtár az operációs rendszerhez (brew, apt get, wget), amely szükséges a pyaudio működéséhez - AWS CLI 2.0 megfelelően jogosult IAM felhasználóval, amelyet az aws configure futtatásával konfigurált az AWS CLI-ben
- Python 3.7+
- Az aszinkron Amazon Transcribe Python SDK
- A következő Python-könyvtárak:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
Valósítsa meg a megoldást
Kiindulópontként nagymértékben támaszkodik a Pythonhoz készült aszinkron Amazon Transcribe streaming SDK-ra, és az adott SDK-ra fog építeni. Miután kísérletezett a Python streaming SDK-val, adja hozzá streaming mikrofon használatával adja meg pyaudio
, egy gyakran használt Python nyílt forráskódú könyvtár, amelyet hangadatok kezelésére használnak. Ezután hozzáadhat Boto3-hívásokat az Amazon Translate-hez és az Amazon Polly-hoz a fordítási és szövegfelolvasó funkciónk érdekében. Végül a lefordított beszédet ismét a számítógép hangszóróin keresztül továbbítja pyaudio
. A Python modul concurrent
lehetővé teszi a blokkoló kód futtatását a saját aszinkron szálában, hogy a visszaküldött Amazon Polly beszédet zökkenőmentesen, nem blokkoló módon játssza le.
Importáljuk az összes szükséges modulunkat, írjuk át a streaming osztályokat, és példányosítsunk néhány globálist:
Először is használd pyaudio
a bemeneti eszköz mintavételi gyakoriságának, eszközindexének és csatornaszámának megszerzéséhez:
Ha ez nem működik, akkor a következő kódban látható módon végignézheti és kinyomtathatja az eszközöket, majd az eszközindex segítségével lekérheti az eszköz adatait pyaudio
:
Használod channel_count
, sample_rate
és dev_index
mint paraméterek egy mikrofon adatfolyamban. Az adott adatfolyam visszahívási funkciójában egy asyncio
nem blokkoló szálbiztos visszahívás, hogy a mikrofonfolyam bemeneti bájtjait egy asyncio
beviteli sor. Vegye figyelembe a ciklus és input_queue objektumokat, amelyekkel létrehozott asyncio
és hogyan használják őket a következő kódban:
Most, amikor a generátor funkció mic_stream()
hívják, folyamatosan ad bemeneti bájtokat, amíg van mikrofon bemeneti adat a bemeneti sorban.
Most, hogy tudja, hogyan szerezhet be bemeneti bájtokat a mikrofonból, nézzük meg, hogyan írhat Amazon Polly kimeneti audio byte-okat a hangszóró kimeneti adatfolyamába:
Most pedig térjünk ki arra, hogy mit építettél fel a bejegyzésben Aszinkron Amazon Transcribe Streaming SDK Pythonhoz. A következő kódban egy végrehajtó objektumot hoz létre a ThreadPoolExecutor
alosztály három dolgozóval egyidejűleg. Ezután hozzáad egy Amazon Translate hívást a véglegesített átirathoz az EventHandlerben, és továbbítja a lefordított szöveget, a végrehajtó objektumot és aws_polly_tts()
függvény egy asyncio
hurok vele loop.run_in_executor()
, amely aszinkron módon futtatja az Amazon Polly függvényünket (lefordított beviteli szöveggel) a következő iteráció elején. asyncio
hurok.
Végül megvan a loop_me()
funkció. Ebben te határozod meg write_chunks()
, amely egy Amazon Transcribe adatfolyamot vesz argumentumként, és aszinkron módon írja rá a streaming mikrofonbemenet darabjait. Akkor használd MyEventHandler()
argumentumaként a kimeneti átírási folyamot, és hozzon létre egy kezelőobjektumot. Ezután használja a await with-t asyncio.gather()
és adja át a write_chunks()-t és a kezelőt a handle_events() metódussal, hogy kezelje e korutinok esetleges jövőjét. Végül összegyűjti az összes eseményhurkot, és hurkolja a loop_me()
funkcióval run_until_complete()
. Lásd a következő kódot:
Ha az előző kódot hiba nélkül lefutja, beszélhet a mikrofonba, és gyorsan hallhatja hangját mandarin kínai nyelvre lefordítva. Az Amazon Transcribe és az Amazon Translate automatikus nyelvészlelési funkciója minden támogatott beviteli nyelvet lefordít a célnyelvre. Elég sokáig beszélhet, és a függvényhívások nem blokkoló jellege miatt az összes beszédbevitelt lefordítják és kimondják, így ez kiváló eszköz az élő beszédek fordítására.
Következtetés
Bár ez a bejegyzés bemutatta, hogy ez a három teljesen felügyelt AWS API hogyan tud zökkenőmentesen együtt működni, javasoljuk, hogy gondolja át, hogyan használhatná más módon ezeket a szolgáltatásokat a szolgáltatások vagy médiák többnyelvű támogatására, például a többnyelvű feliratozás a jelenlegi költség töredékéért. . Az orvostudomány, az üzleti élet, sőt a diplomáciai kapcsolatok is profitálhatnak egy folyamatosan fejlődő, olcsó és alacsony karbantartási költségű fordítási szolgáltatásból.
Ha további információra van szüksége a proof of concept kódalapról ehhez a használati esethez, tekintse meg a mi oldalunkat GitHub.
A szerzőkről
Michael Tran megoldástervező az Amazon Web Services Envision Engineering csapatával. Technikai útmutatást ad, és segít az ügyfeleknek innovációs képességük felgyorsításában azáltal, hogy bemutatja a lehetséges művészetet az AWS-en. Több prototípust épített az AI/ML és az IoT köré ügyfeleink számára. Felveheti velem a kapcsolatot @Mike_Trann-nal a Twitteren.
Cameron Wilkes prototípuskészítő építész az AWS Industry Accelerator csapatában. A csapat tagjaként számos ML alapú prototípust szállított az ügyfeleknek, hogy bemutassa az ML „Lehetséges művészetét” az AWS-en. Élvezi a zenei produkciót, az off-roadozást és a tervezést.
- AI
- ai művészet
- ai art generátor
- van egy robotod
- 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
- Technikai útmutató
- zephyrnet