Converti testo in parlato in Python

Manav Narula 13 luglio 2021
  1. Usa il modulo gTTS per convertire il testo in parlato in Python
  2. Usa il modulo pyttsx3 per convertire il testo in parlato in Python
Converti testo in parlato in Python

A causa del progresso tecnologico degli ultimi decenni, abbiamo molti dispositivi dotati di riconoscimento vocale. Python ha un’ampia varietà di moduli disponibili che possono funzionare con oggetti audio. Alcuni moduli possono convertire del testo scritto in audio.

In questo tutorial, discuteremo come convertire il testo in parlato usando Python.

Usa il modulo gTTS per convertire il testo in parlato in Python

Google ha creato un’API chiamata Google Text-To-Speech che utilizza per leggere un testo e fornire un output audio. Questa API è integrata con un modulo Python chiamato gtts, che può convertire il testo in parlato, eseguire la manipolazione dell’audio, tra le altre cose, memorizzando l’audio in un oggetto delle dimensioni di un byte e persino salvare l’output finale.

Useremo la funzione gTTS per creare un oggetto che leggerà il testo e lo convertirà in un oggetto audio. Possiamo usare molti parametri con questa funzione. Possiamo ridurre la velocità dell’output usando l’argomento slow. L’API di Google supporta diverse lingue e possiamo menzionare le lingue supportate utilizzando il parametro lang.

Implementeremo questo metodo nel codice seguente.

from gtts import gTTS
from playsound import playsound

s = gTTS("Sample Text")
s.save("sample.mp3")
playsound("sample.mp3")

Nel codice sopra, creiamo un oggetto che legge il testo desiderato. Salviamo questo oggetto contenente l’audio del parlato usando la funzione save() e poi lo riproduciamo usando la funzione playsound(). La funzione playsound() importata dalla libreria playsound può riprodurre un file audio.

Tieni presente che, dato che questo modulo utilizza l’API di Google per convertire il testo in voce, richiederà una connessione Internet attiva. Puoi prendere in considerazione il metodo discusso di seguito se desideri che venga eseguito offline.

Usa il modulo pyttsx3 per convertire il testo in parlato in Python

Il pyttsx3 è un altro modulo in grado di eseguire tali conversioni e funzionare senza una connessione Internet. Innanzitutto, creeremo un oggetto che fa riferimento a pyttsx3.Engine utilizzando il costruttore init() di questo modulo. Quindi la funzione say() aggiunge qui il testo richiesto da pronunciare nella coda. Quindi usiamo la funzione runAndWait() per riprodurre il comando dalla coda.

Per esempio,

import pyttsx3

s = pyttsx3.init()
data = "Sample Text"
s.say(data)
s.runAndWait()

Possiamo impostare le proprietà come la velocità di riproduzione dell’output finale usando il metodo setProperty(). Questo modulo è compatibile con Python 2 e Python 3.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn