begin process at 2008 07 05 20:37:03
1 205 339 membres
308 nouveaux aujourd'hui
14 119 membres club

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é: 5 631 / 353

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
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"
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

02 mars 2006 00:30:24 :
Ajout d'un exemple dans un zip, en utilisant l'utilitaire MakePy
  • 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.

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS