Kaj je gTTS?
gTTS je odprtokodna Python knjižnica in orodje za ukazno vrstico, ki besedilo spremeni v govorjeni MP3 z uporabo končne točke za pretvorbo besedila v govor Google Prevaja. Rezultat lahko shranite v datoteko, objekt, podoben datoteki, za nadaljnjo obdelavo zvoka ali neposredno na stdout. Avtor je Pierre Nicolas Durette, distribuira se pod MIT licenco in je ena najbolj prenašanih TTS knjižnic na PyPI z okoli 175.000 prenosi na teden ob času pisanja. Če ste kdaj želeli zapis pretvoriti v MP3 v treh vrsticah Pythona, ste najverjetneje najprej naleteli na gTTS.
Pomembno pa je poudariti, da gTTS ni Google Cloud Text-to-Speech. Povezuje se z isto nedokumentirano zaledno storitvijo, ki poganja gumb »Poslušaj« v Google Prevaja. Ta razlika vpliva na vse spodaj – na to, v čem je gTTS dober, kje ima pomanjkljivosti in kdaj raje uporabiti kaj drugega.

Kdaj uporabiti gTTS?
Uporabite gTTS za brezplačno in hitro prototipiranje, enostavno ustvarjanje MP3 iz besedila, večjezične predstavitve, hobi projekte, učne primere ali skripte za dostopnost, ki na glas berejo izvoz iz Google Docs. Ne uporabljajte gTTS, če potrebujete zanesljivost v produkciji, dokumentiran SLA, kloniranje glasu, SSML, nevralne ali izrazne glasove, pretakanje zvoka ali jasno komercialno licenco.
Kako deluje gTTS?
gTTS govora ne sintetizira lokalno. Ustvari zahtevo do istega zaledja kot Google Prevajalnik za funkcijo »Poslušaj«, prenese ustvarjeni MP3 in bajte dostavi uporabniku. Potrebujete aktivno internetno povezavo, ker ni offline načina – zvok nastane na Googlovih strežnikih, ne na vaši napravi. Končna točka ni uradna in projekt ni povezan z Googlom ali Google Cloud; spremembe na strani Googla lahko storitev kadarkoli prekinejo.
Namestitev
bash
pip install gTTS
gTTS zahteva Python 3.7 ali novejši in deluje na macOS, Windowsu ter Linuxu. Trenutna različica na PyPI je 2.5.4 (november 2024). Na Debianu temelječih sistemih, tudi na Raspberry Pi, bodite pozorni na razliko v velikosti črk: pip paket je gTTS, apt pa python3-gtts. Če pip install odpove z napako »externally-managed-environment«, namestite v virtualno okolje.
Osnovna uporaba
Najbolj osnovni primer:
python
from gtts import gTTS
tts = gTTS("Hello, world.")tts.save("hello.mp3")
Ukazna vrstica:
bash
gtts-cli "hello" --output hello.mp3
Izbira jezika in naglasa
python
tts = gTTS("Bonjour le monde", lang="fr")tts.save("bonjour.mp3")
gTTS omogoča tudi upravljanje regionalnih oznak prek parametra tld – na primer
tld="co.uk" za britanski angleški naglas ali tld="ca" za kanadsko-francoski naglas – tako da pošlje zahtevo prek različnih Google Translate domen.
Počasni način
python
tts = gTTS("Read this slowly.", lang="en", slow=True)tts.save("slow.mp3")
To je praktično vse, kar lahko pri govoru nadzorujete. Ni parametra za višino glasu, nastavitev hitrosti razen slow=True, izbire glasov ali SSML-ja.
Pretok v pomnilniški medpomnilnik
python
from io import BytesIOfrom gtts import gTTS
buf = BytesIO()gTTS("Stream me").write_to_fp(buf)buf.seek(0)# zdaj lahko buf podate pydub, ffmpeg, web odzivu ...
Predobdelava in dolga besedila
Ena bolje zasnovanih lastnosti gTTS je njegov razbijalnik besedila (tokenizer). Samodejno razdeli poljubno dolga vhodna besedila na dele, ki jih zaledje sprejme (okoli 100 znakov), pri tem ohranja intonacijo in obravnava okrajšave, decimalke ter ločila. Možnost imate tudi priključiti lastne predobdelovalnike za ponavljajoče se izgovorne težave – npr. za imena izdelkov ali kratice.
Prednosti gTTS
gTTS (Google Text-to-Speech) je priljubljen med razvijalci, ker je lahek, enostaven za uporabo in se dobro vklopi v Python delovne tokove. Ustvarite lahko MP3 datoteke in jih shranite neposredno v datoteko, objekt, podoben datoteki, ali stdout, kar je priročno za avtomatizacijo in skripte. Podpira približno 60 jezikov s številnimi narečnimi variantami. Na voljo je tudi ukazna vrstica (gtts-cli) za uporabo v shell skriptah ter prilagodljivi razbijalniki in predobdelovalniki besedila (npr. za okrajšave in številke). Minimalni Python API omogoča preprosto uporabo v Jupyter zvezkih, Flask aplikacijah, Discord botih in drugih lahkih projektih brez zapletenega učenja.
Pomanjkljivosti gTTS
Kljub enostavnosti ima gTTS pomembne omejitve glede na sodobne platforme za umetno inteligenco v govoru. Glasovi temeljijo na standardnem izhodu Google Prevajalnika, zato so funkcionalni, vendar jim manjka naravna intonacija, čustva in realističnost, ki jih nudijo novejši nevralni govorni sistemi. Uporabniki ne morejo izbirati različnih stilov glasu v jeziku, prav tako ni naprednih nastavitev, kot sta podpora SSML ter nastavitev višine ali hitrosti govora. gTTS zahteva tudi prenos celotne MP3 datoteke pred predvajanjem, ni pretakanja v realnem času, kar lahko pomeni zamik za interaktivne aplikacije. Poleg tega vsaka zahteva potrebuje internet in omrežno povezavo, zato gTTS ni uporaben brez povezave in je manj primeren tam, kjer sta zanesljivost ali nizka zakasnitev ključni.
Kakšne so omejitve gTTS za razvijalce?
1. Omejitve hitrosti na nedokumentirani končni točki
To je glavna past za vse, ki gredo preko »hello world«. gTTS ne objavi kvote porabe, ker je tudi zaledje ne. V praksi lahko posamezen IP navadno pošlje nekaj deset tisoč znakov na uro, preden začne Google vračati HTTP 429, dejanska omejitev pa se prilagaja prometu. Če z enega strežnika ustvarjate zvok za več uporabnikov, boste prej ali slej naleteli na omejitve brez možnosti ugovora ali SLA.
2. Končna točka se lahko spremeni brez opozorila
Ker gTTS uporablja interno pot Google Prevajalnika in ne dokumentiran javni API, lahko Google kadarkoli spremeni podpis ali obliko odgovorov, kar je tudi v preteklosti že storil in s tem zaustavil delovanje gTTS. Vzdrževalec objavi popravek, vi
pip install -U gTTS in življenje gre naprej. To je povsem v redu za hobi skripto, ne pa za produkcijo sredi noči.
3. Vzdrževalni cikel
Projekt še izdaja različice, vsaj eno v zadnjem letu, a se napake odpravljajo počasi, vodi pa ga praktično ena oseba. Nekateri nadzorniki zdravja paketov repo uvrščajo kot »neaktiven«. Za brezplačno MIT knjižnico je to normalno; če pa je gTTS pomembna odvisnost v plačljivem produktu, je to vredno premisleka.
4. Komercialna in TOS nejasnost
Ker gTTS uporablja Google Prevajalnik in ne Google Cloud TTS, licenca za komercialno uporabo ustvarjenega zvoka ni jasno opredeljena. Knjižnica je MIT-licencirana, toda zvočni bajti so vezani na Googlova pravila za neuradno API storitev. Če vaša pravna ekipa potrebuje jasen odgovor, ga pri gTTS ne bo dobila.
5. Občutljivi podatki zapustijo vašo napravo
Vsako besedilo, ki ga sintetizirate, gre na Googlove strežnike. Če pretvarjate notranje dokumente, osebne podatke strank ali izvoz iz Google Docs, pred uporabo dobro razmislite tudi o varstvu podatkov.
Kakšna je razlika med gTTS in Google Cloud Text-to-Speech?
Čeprav gTTS in Google Cloud Text-to-Speech pogosto zamenjujejo, to nista isti izdelek. Razlike so:
Če v produkciji potrebujete Google glas, skoraj zagotovo želite Google Cloud TTS, ne gTTS.
Kdaj preiti na profesionalni TTS API?
Kdaj preiti z gTTS na profesionalni TTS API, je odvisno od tega, kako pomembni so vam kakovost zvoka, zanesljivost in možnosti prilagajanja. gTTS dobro deluje za prototipe, portfeljske projekte, osebna orodja za dostopnost, učne predstavitve in poskuse, ker je preprost in brezplačen. Če pa lansirate izdelek za plačljive uporabnike, stavite na vrhunsko kakovost govora ali potrebujete nizko zamudo ter SLA, je profesionalna rešitev boljša izbira. Nadgradnja je smiselna tudi, če potrebujete več glasov, kloniranje glasu, SSML podporo, pretakanje, podroben nadzor nad izgovorjavo in tempom ali jasne pravne pogoje. Ko projekt preide iz eksperimenta v produkcijo, postanejo te funkcije ključne.
Izbrati gTTS ali Speechify API?
Speechify API je uradno podprta, plačljiva storitev z nevralnimi glasovi, več glasovi na jezik, SSML podporo in vključeno komercialno licenco v pogodbi, ne le ovoj okoli nedokumentirane storitve. Če vas začnejo omejitve gTTS ovirati, je to dober trenutek za selitev.
Pogosta vprašanja
Ali je gTTS brezplačen?
Da, gTTS je brezplačna MIT-licencirana Python knjižnica, za jasno licencirane rešitve za komercialno uporabo pa priporočamo plačljivo storitev, kot je Speechify API.
Ali gTTS deluje brez povezave?
Ne; gTTS potrebuje internet, ker klice izvaja na Googlove strežnike. Enako velja za Speechify API, saj gre za oblačno storitev.
Ali lahko uporabim gTTS v komercialnem produktu?
Licenca za output v komercialne namene ni jasna, ker temelji na nedokumentirani Googlovi storitvi; Speechify API pa ima izrecno komercialno licenco.
Kako zamenjam glasove v gTTS?
Pravzaprav ne morete. gTTS omogoča le en glas na jezik, medtem ko Speechify API ponuja več nevralnih glasov.
Ali gTTS podpira SSML?
Ne, gTTS nima SSML podpore, nastavitev višine ali natančnega nadzora hitrosti; Speechify API pa omogoča popoln nadzor nad prozodijo.
Kaj pomeni HTTP 429 pri gTTS?
Presegli ste Googlovo omejitev na nedokumentirani točki, zato veliko razvijalcev preide na storitev z dejanskim SLA, kot je Speechify API.
Ali je gTTS enak kot Google Cloud Text-to-Speech?
Ne, gTTS ovija neuradno storitev Google Prevajalnika, Google Cloud TTS je ločen plačljiv produkt, Speechify API pa je še ena plačljiva možnost z nevralnimi glasovi.
Katera Python TTS knjižnica je najboljša za produkcijo?
gTTS je v redu za prototipe, ne pa za produkcijo; za resne obremenitve večina razvijalcev uporablja plačljiv API, kot je Speechify API.
Ali gTTS lahko klonira glas?
Ne, kloniranje glasu v gTTS ni podprto, lahko pa ga najdete v Speechify API.
Kako pretakam zvok z gTTS?
gTTS ne podpira pretakanja v realnem času, vrne le končan MP3. Če potrebujete pretakanje z nizko zakasnitvijo, uporabite Speechify API.

