Kuvittele kirurgi, joka soittaa videopuheluita potilaiden kanssa ympäri maailmaa ilman ihmiskääntäjää. Entä jos aloitteleva startup voisi helposti laajentaa tuotettaan yli rajojen ja uusille maantieteellisille markkinoille tarjoamalla sujuvaa, tarkkaa, monikielistä asiakastukea ja myyntiä, kaikki ilman elävää ihmiskääntäjää? Mitä yrityksellesi tapahtuu, kun kieli ei enää sido sinua?
Nykyään on tavallista pitää virtuaalisia tapaamisia kansainvälisten tiimien ja asiakkaiden kanssa, jotka puhuvat monia eri kieliä. Olipa kyseessä sisäisiä tai ulkoisia kokouksia, merkitys katoaa usein monimutkaisissa keskusteluissa ja saatat kohdata kielimuurit, jotka estävät sinua olemasta yhtä tehokas kuin voisit olla.
Tässä viestissä opit käyttämään kolmea täysin hallittua AWS-palvelua (Amazonin transkriptio, Amazon Käännäja Amazon Polly) tuottaa lähes reaaliaikainen puheen puheeksi kääntäjäratkaisu, joka voi nopeasti kääntää lähdepuhujan elävän puhesyötteen puhutuksi, tarkaksi, käännetyksi kohdekieleksi ilman koneoppimiskokemusta (ML).
Katsaus ratkaisuun
Kääntäjämme koostuu kolmesta täysin hallitusta AWS ML -palvelusta, jotka toimivat yhdessä yhdessä Python-komentosarjassa käyttämällä AWS SDK Pythonille (Boto3) tekstin käännökselle ja tekstistä puheeksi -osille sekä asynkroniselle suoratoisto-SDK:lle audiosyötteen transkriptioon.
Amazon Transcribe: Puheen suoratoisto tekstiksi
Ensimmäinen palvelu, jota käytät pinossamme, on Amazon Transcribe, täysin hallittu puheen tekstiksi -palvelu, joka ottaa syötetyn puheen ja litteroi sen tekstiksi. Amazon Transcribeilla on joustavia käsittelymenetelmiä, erä tai suoratoisto, koska se hyväksyy joko tallennetut äänitiedostot tai suoratoiston äänidatan. Tässä viestissä käytät asynkroninen Amazon Transcribe -suoratoisto-SDK Pythonille, joka käyttää HTTP/2-suoratoistoprotokollaa suoratoistaakseen suoraa ääntä ja vastaanottaakseen suoria transkriptioita.
Kun rakensimme tämän prototyypin ensimmäisen kerran, Amazon Transcriben suoratoisto ei tukenut automaattista kielentunnistusta, mutta näin ei ole enää marraskuusta 2021 lähtien. Sekä erä- että suoratoisto tukevat nyt automaattista kielentunnistusta kaikille. tuetut kielet. Tässä viestissä näytämme, kuinka parametreihin perustuva ratkaisu saumattoman monikielisen parametrittoman suunnittelun kautta on mahdollista suoratoiston automaattisen kielentunnistuksen avulla. Kun litteroitu puhesegmenttimme on palautettu tekstinä, lähetät Amazon Translatelle pyynnön kääntää ja palauttaa tulokset Amazon Transcribessamme. EventHandler
menetelmällä.
Amazon Translate: Huippumoderni, täysin hallittu käännössovellusliittymä
Seuraavaksi pinossamme on Amazon Translate, hermoston konekäännöspalvelu, joka tarjoaa nopean, laadukkaan, edullisen ja muokattavissa olevan kielikäännöksen. Kesäkuusta 2022 lähtien Amazon Translate tukee kääntämistä 75 kielelle, ja uusia kielipareja ja parannuksia tehdään jatkuvasti. Amazon Translate käyttää syväoppimismalleja, jotka isännöidään erittäin skaalautuvassa ja joustavassa AWS-pilviarkkitehtuurissa, jotta ne toimittavat nopeasti tarkat käännökset joko reaaliajassa tai erässä käyttötapauksestasi riippuen. Amazon Translaten käyttäminen on yksinkertaista eikä vaadi taustalla olevan arkkitehtuurin tai ML-taitojen hallintaa. Amazon Translatessa on useita ominaisuuksia, kuten luominen ja käyttö a mukautettu terminologia hoitaa kartoitusta toimialakohtaisten termien välillä. Lisätietoja Amazon Translate -palvelun rajoituksista on kohdassa Ohjeet ja rajat. Kun sovellus vastaanottaa käännetyn tekstin kohdekielellämme, se lähettää käännetyn tekstin Amazon Pollylle välitöntä käännettyä äänentoistoa varten.
Amazon Polly: Täysin hallittu tekstistä puheeksi API
Lopuksi lähetät käännetyn tekstin Amazon Pollylle, täysin hallittavalle tekstistä puheeksi -palvelulle, joka voi joko lähettää takaisin todentuntuisia äänileikkeiden vastauksia välitöntä suoratoistoa varten tai koota ja tallentaa Amazonin yksinkertainen tallennuspalvelu (Amazon S3) myöhempää käyttöä varten. Voit hallita puheen eri näkökohtia, kuten ääntämistä, äänenvoimakkuutta, äänenkorkeutta, puhenopeutta ja paljon muuta käyttämällä standardoitua Puhesynteesin merkintäkieli (SSML).
Voit syntetisoida puhetta tietyille Amazon Pollylle Neuraaliset äänet käyttämällä Newscaster-tyyliä saadakseen ne kuulostamaan television tai radion uutislähettäjältä. Voit myös havaita, milloin tekstissä puhutaan tiettyjä sanoja tai lauseita äänivirran sisältämien metatietojen perusteella. Näin kehittäjä voi synkronoida graafiset korostukset ja animaatiot, kuten avatarin huulten liikkeet, syntetisoidun puheen kanssa.
Voit muokata tiettyjen sanojen ääntämistä, kuten yritysten nimiä, lyhenteitä, vieraita sanoja tai neologismeja, esimerkiksi "P!nk", "ROTFL" tai "C'est la vie" (kun puhutaan ei-ranskan kielellä ääni), käyttämällä mukautettuja sanastoja.
Arkkitehtuurin yleiskatsaus
Seuraava kaavio kuvaa ratkaisuarkkitehtuuriamme.
Työnkulku on seuraava:
- Python SDK käyttää ääntä.
- Amazon Polly muuntaa puheen tekstiksi 39 mahdollisella kielellä.
- Amazon Translate muuntaa kielet.
- Amazon Live Transcribe muuntaa tekstin puheeksi.
- Ääni lähetetään kaiuttimiin.
Edellytykset
Tarvitset isäntäkoneen, jossa on mikrofoni, kaiuttimet ja luotettava internetyhteys. Nykyaikaisen kannettavan tietokoneen pitäisi toimia hyvin tähän, koska lisälaitteita ei tarvita. Seuraavaksi sinun on määritettävä kone jollakin ohjelmistotyökalulla.
Sinulla on oltava Python 3.7+ asennettuna, jotta voit käyttää asynkronista Amazon Transcriben suoratoisto-SDK:ta ja Python-moduulia pyaudio
, jolla ohjaat koneen mikrofonia ja kaiuttimia. Tämä moduuli riippuu C-kirjastosta nimeltä portaudio.h
. Jos kohtaat ongelmia pyaudio
virheitä, suosittelemme tarkistamaan käyttöjärjestelmästäsi, onko sinulla portaudio.h
kirjasto asennettuna.
Palvelupuheluiden valtuutusta ja todennusta varten luot AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) palvelurooli, jolla on oikeudet kutsua tarvittavat AWS-palvelut. Konfiguroimalla AWS-komentoriviliitäntä (AWS CLI) tällä IAM-palveluroolilla voit suorittaa komentosarjamme koneellasi ilman avaimien tai salasanojen syöttämistä, koska AWS-kirjastot on kirjoitettu käyttämään määritettyä AWS CLI -käyttäjän tunnistetietoja. Tämä on kätevä tapa nopeaan prototyyppien luomiseen ja varmistaa, että palveluihimme soittaa valtuutettu henkilöllisyys. Kuten aina, noudata pienimmän etuoikeuden periaatetta määrittäessäsi IAM-käytäntöjä luodessasi IAM-käyttäjää tai -roolia.
Yhteenvetona tarvitset seuraavat edellytykset:
- PC-, Mac- tai Linux-kone, jossa on mikrofoni, kaiuttimet ja internetyhteys
- -
portaudio.h
C-kirjasto käyttöjärjestelmällesi (brew, apt get, wget), jota tarvitaan pyaudion toimimiseen - AWS CLI 2.0, jossa on asianmukaisesti valtuutettu IAM-käyttäjä, joka on määritetty suorittamalla aws configure AWS CLI:ssä
- Python 3.7+
- Asynkroninen Amazon Transcribe Python SDK
- Seuraavat Python-kirjastot:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
Toteuta ratkaisu
Luotat vahvasti Pythonin asynkroniseen Amazon Transcriben suoratoisto-SDK:hen, ja aiot rakentaa tämän tietyn SDK:n päälle. Kun olet kokeillut Pythonin suoratoisto-SDK:ta, lisää suoratoisto mikrofoni syötä käyttämällä pyaudio
, yleisesti käytetty Python avoimen lähdekoodin kirjasto, jota käytetään äänidatan käsittelyyn. Sitten lisäät Boto3-kutsut Amazon Translateen ja Amazon Pollyyn käännös- ja tekstistä puheeksi -toimintoihimme varten. Lopuksi suoratoistat käännetyn puheen uudelleen tietokoneen kaiuttimien kautta pyaudio
. Python-moduuli concurrent
antaa sinulle mahdollisuuden suorittaa estokoodia omassa asynkronisessa säikeessään toistaaksesi palautetun Amazon Polly -puheen saumattomalla, estämättömällä tavalla.
Tuodaan kaikki tarvittavat moduulimme, litteroitetaan suoratoistoluokat ja luodaan joitain globaaleja:
Ensinnäkin käytät pyaudio
saadaksesi syöttölaitteen näytteenottotaajuuden, laiteindeksin ja kanavien lukumäärän:
Jos tämä ei auta, voit myös käydä läpi ja tulostaa laitteesi seuraavan koodin osoittamalla tavalla ja sitten käyttää laitehakemistoa laitteen tietojen hakemiseen pyaudio
:
Sinä käytät channel_count
, sample_rate
ja dev_index
parametreina mikrofonivirrassa. Tämän streamin takaisinsoittotoiminnossa käytät asyncio
estoton säikeen varma takaisinsoitto siirtääksesi mikrofonivirran syöttötavut an asyncio
syöttöjono. Ota huomioon silmukka- ja input_queue-objektit, jotka on luotu asyncio
ja miten niitä käytetään seuraavassa koodissa:
Nyt kun generaattori toimii mic_stream()
kutsutaan, se tuottaa jatkuvasti syöttötavuja niin kauan kuin syöttöjonossa on mikrofonin syöttödataa.
Nyt kun tiedät kuinka saada syöttötavuja mikrofonista, katsotaanpa kuinka kirjoittaa Amazon Polly -äänitavut kaiuttimen lähtövirtaan:
Laajennamme nyt sitä, mitä rakensit viestissä Asynkroninen Amazon Transcribe Streaming SDK Pythonille. Seuraavassa koodissa luot suorittajaobjektin käyttämällä ThreadPoolExecutor
alaluokka, jossa on kolme työntekijää samanaikaisesti. Lisäät sitten Amazon Translate -kutsun viimeisteltylle palautetulle transkriptiolle EventHandleriin ja välität käännetyn tekstin, suoritinobjektin ja aws_polly_tts()
toimia an asyncio
lenkki kanssa loop.run_in_executor()
, joka käyttää Amazon Polly -toimintoamme (käännetyllä syöttötekstillä) asynkronisesti seuraavan iteraation alussa asyncio
silmukka.
Viimeinkin meillä on loop_me()
toiminto. Siinä sinä määrittelet write_chunks()
, joka ottaa Amazon Transcriben streamin argumenttina ja kirjoittaa siihen asynkronisesti osia suoratoistomikrofonista. Käytät sitten MyEventHandler()
käyttämällä lähtötranskriptiovirtaa argumenttina ja luo käsittelijäobjekti. Sitten käytät odota kanssa asyncio.gather()
ja välitä write_chunks() ja käsittelijä hand_events()-metodilla näiden korutiinien mahdollisten futuurien käsittelemiseksi. Lopuksi kokoat kaikki tapahtumasilmukat ja silmukat loop_me()
toimimaan kanssa run_until_complete()
. Katso seuraava koodi:
Kun edellinen koodi suoritetaan yhdessä ilman virheitä, voit puhua mikrofoniin ja kuulla äänesi nopeasti käännettynä mandariinikiinaksi. Amazon Transcriben ja Amazon Translaten automaattinen kielentunnistusominaisuus kääntää minkä tahansa tuetun syöttökielen kohdekieleksi. Voit puhua jonkin aikaa, ja toimintokutsujen estävän luonteen vuoksi kaikki puhesyötteesi käännetään ja puhutaan, joten tämä on erinomainen työkalu live-puheiden kääntämiseen.
Yhteenveto
Vaikka tämä viesti osoitti, kuinka nämä kolme täysin hallittua AWS-sovellusliittymää voivat toimia saumattomasti yhdessä, kehotamme sinua miettimään, kuinka voit käyttää näitä palveluita muilla tavoilla tarjotaksesi monikielistä tukea palveluille tai medialle, kuten monikielinen tekstitys murto-osalla nykyisistä kustannuksista. . Lääketiede, liike-elämä ja jopa diplomaattisuhteet voisivat kaikki hyötyä jatkuvasti kehittyvästä, edullisesta ja vähän huoltoa vaativasta käännöspalvelusta.
Lisätietoja tämän käyttötapauksen proof of concept -koodipohjasta on meidän Github.
Tietoja Tekijät
Michael Tran on ratkaisuarkkitehti ja Envision Engineering -tiimi Amazon Web Services -palvelussa. Hän tarjoaa teknistä ohjausta ja auttaa asiakkaita nopeuttamaan innovaatiokykyään näyttämällä AWS:n mahdollisuuksien taidetta. Hän on rakentanut asiakkaillemme useita prototyyppejä tekoälyn/ML:n ja IoT:n ympärille. Voit ottaa minuun yhteyttä @Mike_Trann Twitterissä.
Cameron Wilkes on prototyyppiarkkitehti AWS Industry Accelerator -tiimissä. Ryhmässä ollessaan hän toimitti asiakkaille useita ML-pohjaisia prototyyppejä demonstroidakseen ML:n "mahdollisuuden taitoa" AWS:ssä. Hän pitää musiikin tuotannosta, off-roadista ja suunnittelusta.
- AI
- ai taide
- ai taiteen generaattori
- ai robotti
- Amazon Polly
- Amazonin transkriptio
- Amazon Käännä
- tekoäly
- tekoälyn sertifiointi
- tekoäly pankkitoiminnassa
- tekoäly robotti
- tekoälyrobotit
- tekoälyohjelmisto
- AWS-koneoppiminen
- blockchain
- blockchain-konferenssi ai
- coingenius
- keskustelullinen tekoäly
- kryptokonferenssi ai
- dall's
- syvä oppiminen
- google ai
- koneoppiminen
- Platon
- plato ai
- Platonin tietotieto
- Platon peli
- PlatonData
- platopeliä
- mittakaava ai
- syntaksi
- Tekniset ohjeet
- zephyrnet