web-dev-qa-db-fra.com

Comment faire Python parler

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, ...?

63
dugres

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

36
masterLoki

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'") 
29
cantdutchthis

Comment utiliser les fonctionnalités de synthèse vocale d'un PC Windows

from win32com.client import Dispatch

speak = Dispatch("SAPI.SpVoice")

speak.Speak("Ciao")

Utiliser Google Api Text-to-Speech pour créer un mp3 et l'entendre

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")
23
Giovanni Python

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

15
nealmcb

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é?

9
Jed Smith

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:

  • En utilisant os

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

  • Le module pyttsx

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! :)

4
Alex Hawking

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 
2
alphaguy

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.

2
Eli

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.

2
grrussel

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:

http://wolfpaulus.com/jounal/mac/ttsserver/

1
John Moore

PYTTSX3 !

THE COMPLETE SOLUTION TO ALL YOU PYTHON TEXT-TO-SPEECH NEEDS

QUOI:

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!

POURQUOI:

C'est 100% MULTI-PLATEFORME [~ # ~] et [~ # ~] TRAVAILLE HORS LIGNE [~ # ~] et [~ # ~] EST ACTIF/ENCORE EN COURS DE DÉVELOPPEMENT [~ # ~] et [~ # ~] FONCTIONNE AVEC TOUT PYTHON = VERSION

COMMENT:

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();

CONCLUSION:

Cela fonctionne facilement et sans faille, alors je pense que c'est la meilleure solution

1
Toby56