Comment pourrais-je faire Python dire du texte?
Je pourrais utiliser Festival avec un sous-processus mais je ne pourrai pas le contrôler (ou peut-être en mode interactif, mais ce ne sera pas propre).
Existe-t-il une bibliothèque TTS Python?), Comme une API pour Festival, eSpeak, ...?
Veuillez noter que cela ne fonctionne qu'avec python 2.x
Vous devriez essayer d'utiliser le paquet PyTTSx puisque PyTTS est obsolète. PyTTSx fonctionne avec la dernière python.
http://pypi.python.org/pypi/pyttsx/1. -> Le paquet
J'espère que ça aide
Un peu ringard, mais si vous utilisez un Mac, vous pouvez passer une commande de terminal à la console à partir de python.
Essayez de taper ce qui suit dans le terminal:
$ say 'hello world'
Et il y aura une voix du mac qui parlera cela. De python une telle chose est relativement facile:
import os
os.system("echo 'hello world'")
os.system("say 'hello world'")
from win32com.client import Dispatch
speak = Dispatch("SAPI.SpVoice")
speak.Speak("Ciao")
Après avoir installé le module gtts dans cmd: pip install gtts
from gtts import gTTS
import os
tts = gTTS(text="This is the pc speaking", lang='en')
tts.save("pcvoice.mp3")
# to start the file from python
os.system("start pcvoice.mp3")
Le paquet python-espeak est disponible dans les distributions Debian, Ubuntu, Redhat et autres distributions Linux. Il a des mises à jour récentes et fonctionne bien.
from espeak import espeak
espeak.synth("Hello world.")
Jonathan Leaders note que cela fonctionne également sous Windows et que vous pouvez également installer les voix mbrola. Voir le site Web espeak à l'adresse http://espeak.sourceforge.net
Un simple Google m'a conduit à pyTTS , et quelques documents à ce sujet . Il semble cependant non maintenu et spécifique au moteur de parole de Microsoft.
Sous Mac OS X au moins, vous pouvez utiliser subprocess
pour appeler la commande say
, ce qui est très amusant pour jouer avec vos collègues mais peut ne pas être très utile pour vos besoins.
On dirait que Festival a également quelques API publiques:
Festival propose une interface à base de socket BSD. Cela permet à Festival de fonctionner en tant que serveur et aux programmes clients d'y accéder. En gros, le serveur propose un nouvel interpréteur de commande pour chaque client qui s'y attache. Le serveur est créé pour chaque client, mais cela est beaucoup plus rapide que d’attendre le début d’un processus Festival. De plus, le serveur peut fonctionner sur une machine plus grande, offrant une synthèse beaucoup plus rapide. linky
Il y a aussi un API C++ complète , que vous pourrez peut-être créer un module Python (c'est amusant!). Festival propose également une version réduite API C - continuez à faire défiler ce document - vous pourrez peut-être lancer ctypes
pour une seule fois.
Peut-être avez-vous identifié un trou sur le marché?
Il y a plusieurs façons de faire Python parler à la fois en Python3 et en Python2, les deux méthodes les plus intéressantes sont:
Si vous êtes sur mac, vous aurez le module os intégré dans votre ordinateur. Vous pouvez importer le module os en utilisant:
import os
Vous pouvez ensuite utiliser os pour exécuter des commandes de terminal à l'aide de la commande os.system:
os.system("Your terminal")
Dans les terminaux, la façon dont vous faites parler votre ordinateur utilise la commande "dire", donc pour faire parler l'ordinateur, vous utilisez simplement:
os.system("say 'some text'")
Si vous voulez utiliser ceci pour parler d'une variable, vous pouvez utiliser:
os.system("say " + myVariable)
La deuxième façon d’obtenir python pour parler est d’utiliser
Vous devrez l'installer en utilisant
pip isntall pyttsx3
ou pour Python3
pip3 install pyttsx3
Vous pouvez ensuite utiliser le code suivant pour le faire parler:
import pyttsx3
engine = pyttsx3.init()
engine.say("Your Text")
engine.runAndWait()
J'espère que ça aide! :)
Vous pouvez utiliser espeak en utilisant python pour le convertisseur de synthèse vocale).
Voici un exemple python code
de l'appel d'importation du sous-processus speech = "Hello World!" appel (["espeak", speech])
P.S: si espeak n'est pas installé sur votre système Linux, vous devez d'abord l'installer.
Ouvrez le terminal (avec ctrl + alt + T) et tapez
Sudo to install espeak
Si vous utilisez python 3 et Windows 10, la meilleure solution que j'ai trouvée fonctionne est celle de Giovanni Gianni. Cela a joué pour moi à la voix masculine:
import win32com.client as wincl
speak = wincl.Dispatch("SAPI.SpVoice")
speak.Speak("This is the pc voice speaking")
J'ai aussi trouvé ceci vidéo sur youtube, donc si vous le voulez vraiment, vous pouvez trouver quelqu'un que vous connaissez et créer votre propre voix en bricolage.
Il n’ya peut-être rien de spécifique à Python, mais les bureaux KDE et GNOME offrent la synthèse vocale dans le cadre de la prise en charge de l’accessibilité, ainsi que des liaisons python. Il est possible que cela soit possible. utiliser les liaisons python pour contrôler les bibliothèques du bureau pour la synthèse vocale).
Si vous utilisez l'implémentation Jython de Python sur la machine virtuelle Java), le système FreeTTS peut être utilisable.
Enfin, OSX et Windows ont des API natives pour la synthèse vocale. Il peut être possible de les utiliser à partir de python via des ctypes ou d’autres mécanismes tels que COM.
C'est ce que vous recherchez. Une solution TTS complète pour Mac. Vous pouvez utiliser ce serveur Mac autonome ou co-localisé pour les applications Web:
THE COMPLETE SOLUTION TO ALL YOU PYTHON TEXT-TO-SPEECH NEEDS
Pyttsx3 est un module python qui est un clone du pyttsx module pour Python 2.x, sauf modifié pour fonctionner parfaitement dans les dernières versions de Python 3!
C'est 100% MULTI-PLATEFORME [~ # ~] et [~ # ~] TRAVAILLE HORS LIGNE [~ # ~] et [~ # ~] EST ACTIF/ENCORE EN COURS DE DÉVELOPPEMENT [~ # ~] et [~ # ~] FONCTIONNE AVEC TOUT PYTHON = VERSION
Il peut être facilement installé avec pip install pyttsx3
et l’utilisation est la même que pyttsx:
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait();
Cela fonctionne facilement et sans faille, alors je pense que c'est la meilleure solution