Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FAIRE PARLER PYTHON!


Information sur la source

Catégorie :Divers Classé sous : text, speech, parler, voix Niveau : Débutant Date de création : 04/02/2006 Date de mise à jour : 02/03/2006 00:30:23 Vu / téléchargé: 7 853 / 403

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Python n'a rien à envier au VB : il est possible d'utiliser le fameux objet Text-To-Speech de Microsoft pour rendre les programmes parlants. Dans ce cas, je charge l'objet dynamiquement grâce à Win32Com. Pour faire fonctionner ce code, il faudra donc télécharger les extensions "Win32" de Python (voir www.python.org). Désolé, ça marche pas sous Linux, alors je m'excuse d'avance pour les "Anti-Microsoft" endurcis.

Ce programme attend le mot "end" pour terminer. Il lit en anglais (à adapter) chaque phrase.
 

Source

  • # Un exemple de programme Python qui parle!
  • import time
  • import win32com.client
  • import pythoncom
  • import thread
  • # Une fonction d'attente
  • def Attente(ObjetVoix):
  • while ObjetVoix.Speaking>0:
  • pythoncom.PumpWaitingMessages()
  • voix=win32com.client.Dispatch("{EEE78591-FE22-11D0-8BEF-0060081841DE}")
  • voix.Speak("")
  • # A adapter pour avoir la voix anglaise (suivant voix disponibles)
  • voix.CurrentMode=7
  • Texte = ""
  • print "ENGLISH SPEAKER"
  • inst = "Please type a text to read. To quit the program type 'end'."
  • print inst
  • voix.Speak(inst)
  • Attente(voix)
  • while Texte != "end":
  • Texte = raw_input(">> ")
  • voix.Speak(Texte)
  • Attente(voix)
  • voix.Speak("Good bye.")
  • Attente(voix)
# Un exemple de programme Python qui parle!
import time
import win32com.client
import pythoncom
import thread

# Une fonction d'attente
def Attente(ObjetVoix):
	while ObjetVoix.Speaking>0:
		pythoncom.PumpWaitingMessages()

voix=win32com.client.Dispatch("{EEE78591-FE22-11D0-8BEF-0060081841DE}")
voix.Speak("")

# A adapter pour avoir la voix anglaise (suivant voix disponibles)
voix.CurrentMode=7

Texte = ""

print "ENGLISH SPEAKER"

inst = "Please type a text to read. To quit the program type 'end'."
print inst
voix.Speak(inst)
Attente(voix)

while Texte != "end":
    Texte = raw_input(">> ")
    voix.Speak(Texte)
    Attente(voix)

voix.Speak("Good bye.")
Attente(voix)

Conclusion

Si on veux ajouter de la voix dans une application graphique (style TK ou WxWindows), il n'est pas nécessaire d'utiliser la fonction "Attente"
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

02 mars 2006 00:30:24 :
Ajout d'un exemple dans un zip, en utilisant l'utilitaire MakePy

Commentaires et avis

signaler à un administrateur
Commentaire de LouisPython le 25/02/2006 20:16:13

Merci pour ce script, mais de quel objet Text-To-Speech de Microsoft s'agit-il ?
Serait-ce 'Microsoft Speech Object Library'.SpVoice (?)
Est-ce que ceci correspond à un GUID spécifique à ton installation ?
Peut-on utiliser une autre codification, qui serait : voix=win32com.client.Dispatch("'Microsoft Speech Object Library'.SpVoice')
Si possible, merci de me donner un petit coup de main en complétant le script par quelques infos sur le composant à utiliser.
LouPython

signaler à un administrateur
Commentaire de xeolin le 02/06/2006 21:18:48

ca fonctionne pas...

g xp
g win32com,pythoncom,time,thread

signaler à un administrateur
Commentaire de Rocco123 le 04/06/2006 23:55:00

Visiblement, ce genre de code source ne marche pas chez tout le monde. La première question est "Avez vous installé le SAPI 4.0 de chez Microsoft avec au moins une voix?", on trouve le nécessaire sur http://www.microsoft.com/msagent . Je sais, utiliser des fonctions propriétaires dans un langage comme Python n'est pas une bonne pratique. Moi je me souviens juste avoir installé SAPI 4.0 et la voix en français et ça avait marché directement sur une nouvelle installation de Windows XP, testé avec les dernières versions de Python et PyWIN32.

signaler à un administrateur
Commentaire de aera group le 23/02/2007 16:50:59

Bonjour,
À quoi correspond
        voix=win32com.client.Dispatch("{EEE78591-FE22-11D0-8BEF-0060081841DE}")
                  à la ligne 12, il semblerait que ce soit ça qui pose problème chez moi. Merci

_____
Aéra

signaler à un administrateur
Commentaire de Willi le 20/03/2007 23:27:30 administrateur CS

win32com.client.dispatch() crée et retourne une référence à l'objet COM que tu lui demandes.

signaler à un administrateur
Commentaire de clintmourlevat le 02/11/2008 20:22:38

il existe pyTTS :
==>http://mindtrove.info/articles/synthesizing-speech-with-pytts/

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Petit problème avec "return" [ par Uims ] Bonjour, Je suis entrain de faire un annuaire en python (avec Tk), mais j'ai un petit problème avec return dans la fonction "loc", j'aimerai que reseau local, serveur/client [ par xilure ] Bonjour,j'ai fait un petit scripte, que me permet soit d'etre un serveur ou un clien, et d'envoyer des message (chat en reseau) Mais voila, quand je s Débutant en python... problème avec les fonctions [ par pedro ] Bonjour,Je suis sur python depuis quelques heures... en plus les languages orientés objets sont un peu nouveau pour moi... J'essaie désesperement de f Problème avec draw.text du module PIL [ par MasterID ] Tkinter + Text + coloration [ par Kickaha59 ] Bonjour à tous,Je souhaite colorer certains mots afficher dans une fenêtre avec la fonction Text de Tkinter.Par exemple je veux colorer en vert tout l opération simple ...et pourtant compliquée...et pourtant simple...et p.... [ par dojh ] Bonjour à tousEn pleine initiation Python, mais aussi en prise de tête, mais c'est bien, ça fait travailler le cerveau...L'idée, c'est qu'avec l'impor PYTHON TKINTER utilisation de labels [ par bichon3001 ] Bonjour, Je souhaite utiliser l'interface graphique TKinter de Python pour appeler une fonction avec un bouton, et afficher le résultat dans un label. programme a améliorer [ par samuel310 ] Bonjour a tous,Je suis nouveau sur ce forum et débutant avec python.Je dois créer un petit jeu avec language python pour l'école, programme noté bien


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.