Cos'è gTTS?
gTTS è una libreria Python open source e uno strumento da riga di comando che trasforma il testo in audio MP3 tramite l’endpoint text-to-speech di Google Translate. Puoi salvare l’audio su file, su un oggetto simile a file per ulteriori elaborazioni o direttamente su stdout. È stata creata da Pierre Nicolas Durette, distribuita con licenza MIT ed è uno dei pacchetti TTS più scaricati su PyPI, con circa 175.000 download settimanali. Se hai mai voluto convertire una stringa in MP3 in tre righe di Python, probabilmente hai trovato gTTS come primo risultato.
È importante sottolineare che gTTS non è Google Cloud Text-to-Speech. Si collega allo stesso backend non documentato che alimenta il pulsante “Ascolta” di Google Translate. Questa distinzione determina punti di forza, limiti e casi d’uso ideali di gTTS illustrati qui sotto.

Quando usare gTTS?
Usa gTTS se cerchi un prototipo gratuito e veloce, script brevi per generare file MP3 da testo, demo multilingue, progetti hobby, esempi didattici o uno script di accessibilità che legga un’esportazione di Google Docs. Non usare gTTS per ambienti produttivi affidabili, SLA documentato, clonazione vocale, controllo SSML, voci neurali/expressive, streaming o licenze commerciali non ambigue.
Come funziona gTTS?
gTTS non sintetizza la voce in locale: invia la richiesta al backend di Google Translate, scarica l’MP3 e restituisce i byte. Serve una connessione internet attiva, non c’è modalità offline, e l’audio viene generato dai server di Google, non localmente. L’endpoint non è ufficiale e il progetto non è affiliato con Google; cambiamenti upstream possono interromperne il funzionamento senza preavviso.
Installazione
bash
pip install gTTS
gTTS richiede Python 3.7 o superiore e funziona su macOS, Windows e Linux. L’ultima versione PyPI è 2.5.4 (novembre 2024). Su sistemi basati su Debian (incluso Raspberry Pi OS), attenzione alle maiuscole: il pacchetto pip è gTTS, quello apt è python3-gtts. Se pip install fallisce su un sistema recente per errore externally-managed-environment, installalo in un virtual environment.
Utilizzo base
L’esempio più semplice:
python
from gtts import gTTS
tts = gTTS("Hello, world.")tts.save("hello.mp3")
Da riga di comando:
bash
gtts-cli "hello" --output hello.mp3
Scegliere lingua e accento
python
tts = gTTS("Bonjour le monde", lang="fr")tts.save("bonjour.mp3")
gTTS consente anche di specificare sottocodici regionali tramite il parametro tld — ad esempio
tld="co.uk" per inglese britannico o tld="ca" per francese canadese, indirizzando la richiesta verso diversi domini di Google Translate.
Modalità lenta
python
tts = gTTS("Read this slowly.", lang="en", slow=True)tts.save("slow.mp3")
Questo è tutto per i controlli vocali: non ci sono parametri di tono, nessun cursore di velocità oltre slow=True, nessuna selezione per voce o SSML.
Stream su buffer invece che su disco
python
from io import BytesIOfrom gtts import gTTS
buf = BytesIO()gTTS("Stream me").write_to_fp(buf)buf.seek(0)# ora puoi passare buf a pydub, ffmpeg, una risposta web, ecc.
Preprocessamento e testo lungo
Una delle funzionalità meglio progettate di gTTS è il suo tokenizer. Divide input lunghi in segmenti accettati dal backend (il limite è circa 100 caratteri per richiesta), mantiene l’intonazione uniforme e gestisce abbreviazioni, decimali e punteggiatura. Puoi anche usare pre-processori personalizzati per correggere errori di pronuncia ricorrenti, per esempio mappando nomi di prodotti o acronimi su versioni fonetiche.
Quali sono i vantaggi di gTTS?
gTTS (Google Text-to-Speech) è apprezzato dagli sviluppatori perché è leggero, facile da integrare e si inserisce bene nei flussi di lavoro Python. Genera file audio MP3 e può scrivere direttamente su file, oggetti file-like o stdout, risultando flessibile per automazione e scripting. Supporta circa 60 lingue e varianti diacroniche tramite impostazioni di lingua e dominio di primo livello, offrendo copertura multilingue per usi semplici. L’interfaccia a riga di comando (gtts-cli) si integra con i workflow da shell, mentre il sistema di tokenizzazione e i pre-processori consentono di gestire abbreviazioni, numeri e sostituzioni. La sua API Python minimale lo rende perfetto per notebook Jupyter, app Flask, bot Discord e progetti leggeri senza curva di apprendimento.
Quali sono gli svantaggi di gTTS?
Nonostante la semplicità, gTTS ha limiti rispetto alle piattaforme vocali AI moderne. Le voci sono quelle standard di Google Translate: funzionali, ma senza intonazione, emozione e realismo dei sistemi neurali di text to speech più recenti. Non si può scegliere tra più voci nella stessa lingua né usare controlli avanzati come SSML, regolazione pitch o velocità precisa. gTTS richiede il download completo dell’MP3 prima della riproduzione (nessuno streaming), con possibile latenza nelle app interattive. Ogni richiesta dipende dalla rete, senza funzionamento offline: quindi non è adatto dove serve affidabilità o sintesi a bassa latenza.
Quali sono i limiti di gTTS per gli sviluppatori?
1. Rate limit su endpoint non documentato
È la principale insidia dopo “hello world”. gTTS non pubblica quote perché il servizio upstream non le riporta. In pratica, un singolo IP può inviare decine di migliaia di caratteri/ora prima di ricevere HTTP 429. Il limite esatto varia. Se generi audio per molti utenti da un server, prima o poi raggiungerai il limite senza alcun SLA di supporto.
2. L’endpoint può cambiare senza preavviso
Poiché gTTS si collega a una rotta interna di Google Translate, Google può rompere gTTS dall’oggi al domani cambiando le richieste o le risposte. Il maintainer rilascia un fix e tu…
pip install -U gTTS, e tutto riprende. Ok per script hobby. Non per deploy produttivi alle 2 di notte.
3. Manutenzione e sviluppo
Il progetto pubblica ancora rilasci (almeno uno negli ultimi 12 mesi), ma la gestione issue è lenta e c’è una sola persona principale. Alcuni tracker lo classificano come “inattivo”. Normale per una libreria gratuita MIT; in prodotti commerciali, va valutato come rischio.
4. Ambiguità commerciale e dei TOS
gTTS usa il frontend di Google Translate e non Google Cloud TTS, quindi la licenza sull’audio generato non è chiarita ufficialmente. La libreria è MIT, ma i byte audio sono soggetti alle condizioni di Google per un servizio che non espone formalmente una API TTS. Se il tuo ufficio legale vuole una risposta chiara, gTTS non la dà.
5. Dati sensibili inviati a Google
Ogni stringa sintetizzata viene mandata ai server Google. Se trasformi in voce documenti interni, dati clienti o contenuti estratti da Google Docs ecc., valuta bene la governance dei dati prima di distribuirlo.
Qual è la differenza tra gTTS e Google Cloud Text-to-Speech?
Anche se gTTS e Google Cloud Text-to-Speech sono spesso confusi, non sono lo stesso prodotto. Le differenze sono:
Se ti serve la voce Google in produzione, quasi certamente vuoi Google Cloud TTS, non gTTS.
Quando passare a una API TTS professionale?
La scelta di passare da gTTS a una API text to speech professionale dipende da quanto audio, affidabilità e personalizzazione sono critici per il tuo progetto. gTTS va bene per prototipi, portfolio, strumenti personali di accessibilità, demo e sperimentazione, essendo semplice e gratis. Ma per prodotti per clienti paganti, esperienze d’uso basate sulla qualità vocale, o dove serve latenza prevedibile garantita da accordi/SLA, una soluzione professionale è preferibile. Serve anche quando occorrono voci e opzioni multiple, clonazione vocale, SSML, streaming, controllo dettagliato di pronuncia e licenze commerciali chiaramente definite. Passando da prototipi a produzione, queste funzioni diventano essenziali.
Dovresti scegliere gTTS o Speechify API?
Speechify API è un servizio a pagamento, ufficiale, con voci neurali, opzioni vocali multiple per lingua, SSML e licenza commerciale inclusa, non un semplice wrapper intorno a endpoint non documentati. Se i limiti di gTTS, la qualità voce o l’ambiguità TOS ti frenano, valuta la migrazione a Speechify.
FAQ
gTTS è gratuito?
Sì, gTTS è gratuito e con licenza MIT, ma per audio di livello commerciale e licenziato serve un servizio a pagamento come Speechify API.
gTTS funziona offline?
No, gTTS richiede internet perché invia i dati ai server Google. Lo stesso vale per Speechify API, essendo un servizio cloud.
Posso usare gTTS in prodotti commerciali?
La licenza di output gTTS per uso commerciale è ambigua, perché si basa su endpoint Google non documentati. Speechify API invece offre licenza commerciale esplicita.
Come cambio voce in gTTS?
Non puoi davvero. gTTS offre una sola voce per lingua; Speechify API invece consente di scegliere tra diverse voci neurali.
gTTS supporta SSML?
No, gTTS non offre SSML, controllo pitch o regolazione fine della velocità, mentre Speechify API sì.
Perché gTTS dà errore HTTP 429?
Hai superato il limite di Google Translate (rate limit), che spesso spinge gli sviluppatori a servizi come Speechify API con SLA reale.
gTTS e Google Cloud Text-to-Speech sono lo stesso?
No, gTTS usa un endpoint non ufficiale di Google Translate, mentre Google Cloud TTS è a pagamento; Speechify API è un’altra soluzione a pagamento con voci neurali.
La miglior libreria TTS per Python in produzione?
gTTS va bene per prototipi ma non per produzione: per carichi produttivi è meglio una API a pagamento come Speechify API.
gTTS può clonare una voce?
No, la clonazione vocale non è supportata da gTTS, ma lo è tramite Speechify API.
Come streammare audio con gTTS?
gTTS non supporta streaming in tempo reale: restituisce solo l’MP3 completo. Per streaming a bassa latenza usa Speechify API.

