paint-brush
Un didacticiel de synthèse vocale Python essentiel à l'aide de la bibliothèque pyttsx3par@mshehzen
38,045 lectures
38,045 lectures

Un didacticiel de synthèse vocale Python essentiel à l'aide de la bibliothèque pyttsx3

par M Shehzen Sidiq5m2023/01/03
Read on Terminal Reader

Trop long; Pour lire

Dans cet article, nous allons discuter d'une bibliothèque que j'ai personnellement utilisée et qui a obtenu de bons résultats. C'est une bibliothèque Python qui nous permet de convertir du texte en parole. Nous le fournirons, notre texte et il convertira ce texte en audio. C'est un wrapper autour de plusieurs moteurs de synthèse vocale.
featured image - Un didacticiel de synthèse vocale Python essentiel à l'aide de la bibliothèque pyttsx3
M Shehzen Sidiq HackerNoon profile picture

Permettez-moi d'abord d'expliquer quelques abréviations et quelques termes de base que nous allons utiliser dans cet article.

Pour ceux qui ne savent pas ce que signifie TTS, cela signifie Text To Speech.


Ce que nous voulons faire, c'est donner un morceau de texte à notre programme et il convertira ce texte en discours et nous le lira.


C'est, en d'autres termes, faire en sorte que l'ordinateur nous lise.


Maintenant, il existe différentes façons de faire ce TTS, mais ici nous allons discuter d'une bibliothèque, que j'ai personnellement utilisée et qui a obtenu de bons résultats.


Nous allons utiliser pyttsx3 .

Qu'est-ce que pyttsx3

pyttsx3 est une bibliothèque Python qui nous permet de convertir du texte en parole. Nous lui fournirons donc notre texte et il convertira ce texte en audio.


Il s'agit d'un wrapper autour de plusieurs moteurs de synthèse vocale, y compris le moteur Text-to-Speech (TTS) de Microsoft.

Les trucs amusants

Voyons maintenant comment nous utilisons cette bibliothèque pour TTS.


La première chose que nous devons faire est d'installer cette bibliothèque et nous pouvons le faire en utilisant le pip , qui est fourni avec l'installation de python.


La syntaxe de cette installation est similaire à toutes les pip installs .


pip install pyttsx3


Si dans le cas où cette installation vous donne une erreur cmd not found , essayez d'utiliser pip3 au lieu de pip comme :

pip3 install pyttsx3


Après l'installation, vérifions s'il a été installé avec succès ou non en exécutant cette commande :

pip3 freeze


Il renverra une liste de tous les packages installés dans notre env. Si vous trouvez pyttsx3 dans cette liste, nous avons installé avec succès pyttsx3 et nous sommes prêts à l'utiliser dans notre projet.


Une fois l'installation terminée, nous devons importer cette bibliothèque dans notre projet, puis nous devons initialiser le moteur de synthèse vocale. Ce moteur est la partie la plus importante, et c'est ce moteur qui va effectuer le TTS pour nous.


Importing pyttsx3 and initializing the text-to-speech engine:


import pyttsx3

engine = pyttsx3.init()


.init() est la méthode qui doit être appelée pour initialiser le moteur.


Maintenant que notre moteur est initialisé, nous pouvons l'utiliser pour notre TTS en appelant la méthode say(text) .


engine.say(text)

engine.runAndWait()


Cette vitesse et ce volume du texte prononcé seront la valeur par défaut et nous pouvons les modifier des manières suivantes.


Tout ce dont nous avons besoin est de définir des valeurs pour notre moteur. C'est comme dire au moteur quoi utiliser.

Donc, nous devons le faire de la manière suivante :


  • Tout d'abord, nous obtiendrons cette propriété en utilisant getProperty(name)
  • Ensuite, nous définirons cette propriété en utilisant setProperty(name, value)


Nous fixerons le débit et aussi le volume du moteur.


Réglage du débit et du volume de la parole :


rate = engine.getProperty('rate')

engine.setProperty('rate', rate-100)


Par défaut, le taux est de 200, nous allons donc le baisser à 100. Le rate est le taux de parole, et 200 est élevé pour nous. Nous l'avons donc baissé.


Le rythme est simplement, le rythme auquel l'orateur parlera le texte passé.


Après avoir défini le débit, nous allons modifier ou définir le volume en obtenant d'abord la propriété de volume, puis en la définissant.


volume = engine.getProperty('volume')

engine.setProperty('volume', volume+0.50)


Le volume par défaut est 1 Soit 100%, nous allons l'augmenter à 150% en ajoutant le .50 à la valeur reçue de la lecture de la propriété volume.


Maintenant que nous avons fini de définir ces deux propriétés, nous appellerons say() et le discours aura maintenant notre paramètre, c'est-à-dire 1x vitesse et 1.50 volume.


engine.say("Hello, This is the test for the pyttsx3")

engine.runAndWait()


Maintenant, ce runAndWait est important pour nous. Nous voulons exécuter ce moteur et continuer à fonctionner jusqu'à ce qu'il ait terminé le TTS du texte passé.


De plus, en changeant le volume, nous pouvons également changer la voix qui est parlée. Maintenant, il y a 2 voix ici. L'un est pour la voix féminine et l'autre pour la voix masculine.


Nous utiliserons la même syntaxe pour définir notre propriété que nous l'avons fait précédemment.


Gardez à l'esprit:

  • voices[0] est pour la voix masculine.
  • voices[1] est pour la voix féminine.


Changeons de voix :


voices = engine.getProperty('voices')

engine.setProperty('voice', voices[1].id)


Nous devrons appeler la propriété id de la voix sélectionnée, puis nous serons tous prêts.

Nous pouvons copier le code supérieur et cette fois la voix sera féminine au lieu de celle par défaut qui est masculine.


Après avoir terminé le réglage des paramètres et testé le TTS, nous pouvons maintenant enregistrer le fichier audio du TTS généré.


Au lieu d'appeler .say() , nous appellerons, cette fois, .save_to_file et passerons le texte ainsi que le nom du fichier de sortie, dans lequel nous voulons que notre audio TTS soit enregistré.


Cette fois, il ne lira pas le texte à voix haute, mais l'enregistrera plutôt dans le fichier dont nous avons transmis le nom.


engine.save_to_file("Hello, this is test for pyttsx3.", "test.mp3")

engine.runAndWait()


Après l'avoir exécuté, nous aurons un fichier nommé test.mp3 avec le TTS généré.


En outre, pyttsx3 possède plusieurs autres méthodes et propriétés que vous pouvez utiliser pour personnaliser la sortie de synthèse vocale, telles que la définition du ton, de la langue, etc. Vous pouvez trouver plus d'informations à ce sujet dans la documentation pyttsx3 .

Derniers mots

Voyez-vous, à quel point est-il facile de générer un TTS à partir d'un texte ou même à partir du fichier contenant le texte ?

Nous pouvons utiliser ces TTS générés à diverses fins et c'est à vous.


Je sais, maintenant vous pourrez exécuter ce TTS avec facilité et vous ferez des projets impressionnants en l'utilisant.


Maintenant, faites une chose, suivez-moi sur Twitter , si vous aimez le contenu et souhaitez rester connecté.

Merci d'avoir lu, profitez du contenu.