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
.
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.
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 :
getProperty(name)
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 .
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.