J'ai essayé PyTTS (obsolète) et PyTTSx (le plus recommandé) et deux solutions Google TTS (gTTS et une autre par un gars du nom de Hung Truong) mais aucune d'entre elles ne fonctionnait sous Python 3.4. It semble qu'ils n'ont pas été portés sur 3.x.
J'ai cherché ici sur StackOverflow et Google, mais toutes les solutions TTS proposées ne fonctionnent pas sous Python 3. Je suis sur Windows 7.
Un utilisateur sur Reddit a trouvé une solution .
Il s'avère que gTTS fonctionne sous Python 3.x, c'est moi qui importais mal le module.
J'utilisais:
import gtts
blabla = ("Spoken text")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/test.mp3")
Il en résulte l'erreur suivante:
NameError: name 'gTTS' is not defined
Lorsque la bonne façon est:
from gtts import gTTS
blabla = ("Spoken text")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/test.mp3")
La meilleure solution pour cela est:
Pyttsx3 est une bibliothèque test multiplateforme hors ligne multiplateforme qui est compatible avec les deux Python 3 et Python 2 et prend en charge plusieurs TTS moteurs.
Je l'ai trouvé très utile et il n'y a pas de retard dans la production sonore contrairement à gTTS qui a besoin d'une connexion Internet pour fonctionner et a également un certain retard.
pip install pyttsx3
`` ''
import pyttsx3
engine = pyttsx3.init()
engine.say("Hello this is me talking")
engine.setProperty('rate',120) #120 words per minute
engine.setProperty('volume',0.9)
engine.runAndWait()
`` ''
Je viens d'installer gtts 1.0.7 qui a été téléchargé le 2015-10-07
Le code suivant fonctionne pour moi dans Python 3.5:
import subprocess
from gtts import gTTS
audio_file = "hello.mp3"
tts = gTTS(text="Hello World!", lang="en")
tts.save(audio_file)
return_code = subprocess.call(["afplay", audio_file])
Je suis sur un Mac en utilisant le "afply" intégré pour lire le mp3, mais il existe d'autres moyens, par exemple Lecture d'une chanson mp3 sur python