IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Capture du texte notepad en temps réel


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut Capture du texte notepad en temps réel
    Bonjour!

    Je souhaite utiliser la reconnaissance vocale microsoft pour faire bouger des objects dans le Blender Game Engine (logiciel de modélisation 3D avec un moteur de jeu).

    Avec la reconnaissance vocale windows, on peut dicter du texte qui s'écrit directement dans notepad. Je voudrais transmettre ce texte à mon programme python, mais je ne sais pas trop comment m'y prendre.

    J'ai essayé quelques trucs avec le module subprocess, mais sans succès. Sinon, j'ai aussi essayé avec fichier = open('test.txt', 'r') puis print(fichier.read()) ou fichier.readline() et ça marche mais il faut auparavant sauvegarder le document test.txt (fichier>enregistrer) pour avoir accès au nouveau contenu de test.txt.

    Ce que je voudrais, c'est vraiment qu'à chaque fois qu'un nouveau mot est écrit dans notepad, mon programme python soit immédiatement informé sans qu'il soit besoin de sauvegarder le document notepad (ou trouver un moyen d'automatiser la sauvegarde dans notepad à chaque fois qu'on écrit quelque chose dedans (je suppose qu'il faudrait utiliser l'API de windows mais je ne connais pas du tout...)

    Vous avez des idées? Merci!!

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par youle31 Voir le message
    (je suppose qu'il faudrait utiliser l'API de windows mais je ne connais pas du tout...)


    Pourquoi ne pas regarder la documentation de Microsoft Speech et/ou poser des questions dans les forums Windows?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut
    Oui je pense que je vais également poser la question sur le forum Windows. Merci! En attendant, si vous avez d'autres idées, pas forcément en utilisant notepad, je suis preneur! (Après avoir jeté un coup d'oeil à la doc de Microsoft speech, il ne semble pas possible de "contrôler" l'output directement. Donc il faudrait trouver un workaround.) Merci!

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Par défaut Key Event Handling
    Bonjour,

    je ne connais pas bien le logiciel de reconnaissance en question mais quand vous dites « notepad », est-ce lié à certaines applications seulement ou peut-on dicter/écrire sur n'importe quel "input" entrée/zone de texte ?

    Un exemple simple qui me vient à l’esprit c'est un lecteur de code barre plug-and-play PS2/USB, pour pouvoir écrire automatiquement le code en scannant une étiquette il se contente d'émuler un clavier sans aucun pilote nécessaire, pour venir écrire sur n'importe quelle zone de texte.

    Ici c'est sans doute pareil, il émule l'écriture des touches, comme le fait certains logiciels de macro générique : déplacement souris et séquencement d’appui de touche.

    Si c'est le cas, il suffit d'intercepter l'action des touches en input, ou en interface avec tkinter par exemple, lib standard.

    Le terme exacte en anglais c'est key (event) handling, le fait de capturer les événements liés aux touches du clavier.

    Voici un exemple donné par l’excellent guide pour Tkinter v2: http://effbot.org/tkinterbook/tkinte...d-bindings.htm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    # -*- coding: utf-8 -*-
    # Python 2 & 3
     
    from __future__ import print_function # Replace print function
     
    try: # v2
    	from Tkinter import *
    except: # v3
    	from tkinter import *
     
     
    root = Tk()
     
    def key(event):
    	print("pressed", repr(event.char))
     
    def callback(event):
    	frame.focus_set()
    	print("clicked at", event.x, event.y)
     
    frame = Frame(root, width=100, height=100)
    frame.bind("<Key>", key)
    frame.bind("<Button-1>", callback)
    frame.pack()
     
    root.mainloop()
    Il suffit ensuite de sélectionner la fenêtre/cadre et d'appuyer sur des touches pour qu'il les intercepte.

    Nom : tkinter Key Event Handling.png
Affichages : 553
Taille : 8,1 Ko

    Pour capturer des mots je suppose qu'il faille utiliser un buffer et de vérifier l’existence dans un dictionnaire pour en exécuter la fonction.

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 221
    Par défaut
    hello,
    Youle31 j'ai plusieurs questions à te poser :

    1 - Quel genre de texte veux-tu transmettre à ton programme python (donne nous un exemple) ?
    2 - Pourquoi ne pas directement faire la reconnaissance vocale avec le programme python ( avec les modules pyspeech ou dragonfly par exemple) ?

    Ami calmant, J.P

  6. #6
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut
    @YCL-1: Salut! Mon but n'est pas de capturer le clavier. Dans l'idéal je n'aurai pas à m'en servir (tout se ferait par la reconnaissance vocale). Avec la reconnaissance vocale windows, on peut dicter du texte dans plusieurs logiciels. J'ai choisi notepad parce que ça me semblait le plus simple, mais peut-être existe-t-il d'autres logiciels qui me permettraient plus facilement de faire ce que je veux faire.

    @jurassik pork: Salut! Voici une vidéo explicative de ce que je voudrais faire:

    https://drive.google.com/file/d/0B3G...ew?usp=sharing

    Pourquoi je n'utilise pas dragonfly ou pyspeech? Parce qu'ils sont prévus pour fonctionner avec python 2.x. Il faut donc avoir une installation de python 2 pour les faire fonctionner (à moins qu'il existe des versions mises à jour pour python 3 mais je n'en ai pas trouvé). Pourquoi je ne veux pas utiliser une version de python 2? Parce que mon logiciel Blender utilise une version propre à lui de python 3.4 et que dans l'idéal, pour partager mon fichier, j'aimerai soit pouvoir directement me servir de modules extérieurs compatibles avec la version 3.4 intégrée à Blender (je pourrais directement coder dans l'IDE propre à Blender et joindre seulement le module de reconnaissance vocale pour partager mon fichier (sans qu'il soit besoin pour l'utilisateur d'installer une version complète de python 2 + d'installer le module de reconnaissance vocale), soit me passer complètement de modules extérieurs et faire avec notepad (que tous les utilisateurs windows ont par défaut).

    Sinon, j'ai essayé avec speech recognition 1.1.4 https://pypi.python.org/pypi/SpeechRecognition/ (qui marche avec l'API google speech) mais la procédure d'installation est vraiment galère (il faut créer un compte et récupérer une clé... pour avoir accès à l'API et la clé n'est valable qu'un jour... Il faut aussi PyAudio) et de toute façon je n'ai pas réussi à le faire fonctionner sur mon PC.

    Donc je me suis replié sur cette solution notepad+reconnaissance vocale microsoft. Dans le principe, ça marche, mais il faudrait que je puisse contrôler la sauvegarde du document notepad depuis python. J'ai pas trouvé de version de pywinauto compatible avec python 3.4, alors je suis à cours d'idées...

    Donc si vous avez un tuyau, je vous en serais très reconnaissant. Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Capture d'écran en «temps réel»
    Par silverlight dans le forum C#
    Réponses: 3
    Dernier message: 27/06/2012, 18h35
  2. Fichier texte et Temps Réel, comment faire ?
    Par prog_ dans le forum Langage
    Réponses: 14
    Dernier message: 30/03/2010, 00h29
  3. colorier texte en temps réel
    Par greg08 dans le forum Composants
    Réponses: 2
    Dernier message: 31/10/2008, 16h35
  4. afficher un texte dans un cadre en temps réel.
    Par lunyboy dans le forum Débuter
    Réponses: 1
    Dernier message: 19/06/2008, 09h54
  5. Capture du corps du mail en temps réel; lors de la frappe
    Par cavo789 dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 01/06/2007, 05h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo