Comment convertir du texte en audio en Python avec gTTS ?

Par : TutorialsGrey, le 10 Janvier 2022

De nos jours avec l'évolution technologique, on assiste à la naisssance de nombreux appareils équipés d'application de reconnaissance vocale. Le langage Python dispose d'une panoplie de bibliothèques qui permettent de manipuler et de traiter du texte et de l'audio. Certaines de ces bibliothèques permettent de convertir du texte écrit en paroles. Dans cet article, nous allons voir comment convertir du texte écrit en parole en Python en utilisant la bibliothèque gTTS.

 

Installation des bibliothèques

Nous allons utilisé 02 bibliothèques dans cet article : une pour convertir du texte en audio (gTTS) et l'autre pour lire le fichier audio (playsound) produit par la bibliothèque précédente.

gTTS, acronyme de Google Text-To-Speech est une API mise sur pied par Google pour transformer du texte en parole. Cette API est intégrée à une bibliothèque Python appelé gtts, qui peut convertir du texte en parole, effectuer des manipulations audio, entre autres, en stockant l’audio dans un objet de la taille d’un octet, et même enregistrer le son produit.

Pour pouvoir utiliser les bibliothèque gTTS et playsound, vous devez d'abord les installer via les commandes respectives suivantes :

pip install gTTS
pip install playsound

Une fois les bibliothèques installées, nous pouvons passer aux choses sérieuses.

 

 

Utilisation

Nous allons utiliser la fonction gTTS() du module gtts pour créer un objet qui lira le texte et le convertira en objet audio. Nous pouvons utiliser de nombreux paramètres avec cette fonction, comme réduire la vitesse de lecture du texte en utilisant le paramètre slow, ou encore choisir la langue de lecture du texte avec le paramètre lang. L’API gTTS prend en charge différentes langues. La langue de lecture par défaut est l'anglais.

Pour lire le fichier audio produit, nous allons utiliser la fonction playsound() du module playsound.

À présent, voyons le code pour convertir du texte en audio.

from gtts import gTTS
from playsound import playsound

speech = gTTS("Texte en français.", lang='fr')
speech.save('sample.mp3')
playsound('sample.mp3')

 

Dans le code ci-dessus, nous importons d'abord les bibliothèques dont nous avons besoin. Ensuite, nous créons un objet, speech, qui lit le texte souhaité. Notez que nous modifions la langue de lecture en français (lang='fr') car notre texte est en français. Puis, nous sauvegardons cet objet contenant l'audio des paroles du texte à l’aide de la fonction save(). Enfin, nous jouns le fichier audio précédemment enregistré à l’aide de la fonction playsound(). La fonction playsound() importée de la bibliothèque playsound permet de lire un fichier audio.
Notez qu’étant donné que ce module utilise l’API de Google pour convertir le texte en parole, il nécessitera une connexion Internet active. Si vous souhaitez faire une conversion hors ligne, vous pouvez envisager d'utiliser le module pyttsx3.