Faire parler son ordinateur avec Python

Faire parler son ordinateur avec Python

Comment faire parler son ordinateur à l’aide Python ? C’est bien connu, tout le monde aime que son ordinateur parle… (ou pas !).

Je trouve amusants les résultats que l’on peut obtenir.

Faire parler son ordinateur avec Python

Faire parler son ordinateur à l’aide de Python en utilisant Dispatch (windows) du module win32com.client

from win32com.client import Dispatch
Dispatch("SAPI.SpVoice").Speak("Hello everybody. How are you today ? Me, i'm doing very well.")
Résultat

Bon, là, on dirait moi quand je parle anglais…

from win32com.client import Dispatch
Dispatch("SAPI.SpVoice").Speak("C'est une assez bonne semaine je trouve.")

Sous MacOS

import os
os.system("say 'Je suis trop pauvre pour avoir un Apple.'") 

N’ayant pas MacOS (je ne suis pas assez riche pour avoir un Apple…), je ne peux malheureusement pas vous donner le résultat.

Faire parler son ordinateur avec le module gtts de Python

Pour installer le module gtts :

>>> pip install gtts
from gtts import gTTS
import os    
tts = gTTS(text="Hello everybody. How are you today ?", lang='en')
tts.save("english.mp3")
os.system("start english.mp3")

Là, c’est quand-même un peu mieux non ?

L’avantage de ce module est de pouvoir préciser la langue (ici, english).

tts = gTTS(text="C'est une assez bonne semaine je trouve.", lang='fr')
tts.save("french.mp3")
os.system("start french.mp3")

On ne va pas se mentir: en français, c’est un peu trop robotisé… Mais bon! ça passe !

L’inconvénient de ce module est, vous l’aurez vu, la génération d’un fichier mp3 pour le lire après… Donc pas tip-top-moumoute quand on souhaite faire parler un logiciel sur une action ! Comme pour, par exemple, ce genre de dialogue:

Là, j’avoue, je me suis lâché…

Avec le module pyttsx3

Pour installer le module pyttsx3 :

>>> pip install pyttsx3
import pyttsx3
engine = pyttsx3.init()
engine.say("Sac à merde. Je sais que tu te tapes ma femme. Je ne vais donc pas prévoir de catégorie Mathématiques à mes récompenses. Signé : Monsieur Nobel.")
engine.runAndWait()

Si vous êtes élèves de NSI, n’oubliez pas que j’ai écrit deux ouvrages pour vous aider : voir cette page.

Vous pouvez aussi consulter les ressources concernant Python.

Stéphane Pasquet
Stéphane Pasquet

Laissez votre message