83 votes

Comment faire parler Python

Comment faire pour que Python dise du texte ?

Je pourrais utiliser Festival avec subprocess 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 Python TTS ? Comme une API pour Festival, eSpeak, ... ?

0 votes

Le "Festival" dispose-t-il d'une API publique ?

0 votes

Pour la synthèse vocale, j'ai trouvé ce paquet appelé " gTTS " en Python. Vous pouvez l'essayer. Il fonctionne avec Python 3.5. Le dépôt github de ce paquet est le suivant gTTS-github .

42voto

masterLoki Points 397

Vous devriez essayer d'utiliser le paquet PyTTSx car PyTTS est dépassé. PyTTSx fonctionne avec Python 2. Pour Python 3, installez le paquet PyTTSx3.

http://pypi.python.org/pypi/pyttsx/

https://pypi.org/project/pyttsx3/

5 votes

Ne fonctionne pas pour python 3. Cette réponse était à jour en 2009

4 votes

Bien qu'il soit disponible par le biais de pip, il ne fonctionne toujours pas depuis 2015.

0 votes

Je confirme qu'il ne fonctionne pas avec python3 et que les corrections faciles (printf en tant que fonction, correction de la syntaxe de gestion des exceptions et correction des importations) ne le font pas fonctionner, il échoue simplement en silence. L'interfaçage avec espeak (ce qu'il fait sous Linux) est aussi simple que de lancer un sous-processus, c'est donc ce que j'ai fini par faire.

42voto

cantdutchthis Points 1153

C'est un peu ridicule, 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 de la mac qui le dira. A partir de python une telle chose est relativement facile :

import os
os.system("echo 'hello world'")
os.system("say 'hello world'")

7 votes

Je ne veux pas say pour bloquer mon code Python, donc j'ajoute une esperluette comme ceci : os.system("say 'hello world' &")

0 votes

Sur ubuntu, la commande à utiliser dans le terminal est la suivante spd-say

16voto

nealmcb Points 1223

Le site python-espeak est disponible dans Debian, Ubuntu, Redhat, et d'autres distributions Linux. Il dispose de mises à jour récentes et fonctionne bien.

from espeak import espeak
espeak.synth("Hello world.")

Jonathan Leaders note qu'il fonctionne également sous Windows, et que vous pouvez également installer les voix mbrola. Consultez le site Web d'espeak à l'adresse http://espeak.sourceforge.net

10voto

Jed Smith Points 9022

Une simple recherche sur Google m'a conduit à pyTTS et quelques documents à ce sujet . Cependant, il ne semble pas entretenu et est spécifique au moteur vocal de Microsoft.

Sur au moins Mac OS X, vous pouvez utiliser subprocess pour appeler le say qui est assez amusante pour embêter vos collègues mais qui n'est peut-être pas très utile pour vos besoins.

Il semble que Festival dispose également de quelques API publiques :

Festival offre une interface BSD basée sur les sockets. Cela permet à Festival de fonctionner comme un serveur et de permettre aux programmes clients d'y accéder. En fait, le serveur offre un nouvel interpréteur de commandes pour chaque client qui s'y attache. Le serveur est bifurqué pour chaque client mais c'est beaucoup plus rapide que d'avoir à attendre qu'un processus Festival démarre à partir de zéro. De plus, le serveur peut fonctionner sur une machine plus grande, offrant une synthèse beaucoup plus rapide. lien

Il y a aussi un API C++ complète que vous pourrez peut-être utiliser pour créer un module Python (c'est amusant !). Festival propose également une API C simplifiée - continuez à faire défiler ce document - que vous pourriez utiliser pour créer un module Python. ctypes pour une seule fois.

Vous avez peut-être identifié un trou dans le marché ?

2voto

grrussel Points 3315

Il n'y a peut-être rien de "spécifique à Python", mais les bureaux KDE et GNOME offrent une synthèse vocale dans le cadre de leur prise en charge de l'accessibilité, et proposent également des liaisons avec les bibliothèques Python. Il peut être possible d'utiliser les liaisons python pour contrôler les bibliothèques de bureau pour la synthèse vocale.

Si vous utilisez l'implémentation Jython de Python sur la JVM, l'option FreeTTS peut être utilisable.

Enfin, OSX y Windows ont des API natives pour la synthèse vocale. Il peut être possible de les utiliser à partir de python via ctypes ou d'autres mécanismes tels que COM.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X