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

C# Discussion :

Timer sur évenement


Sujet :

C#

  1. #1
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut Timer sur évenement
    Bonjour,

    Je développe actuellement un système de reconnaissance vocale via System.Speech.

    Mes grammaires dépendent de fichiers, dont je voudrais tester le contenu.

    En gros, je teste le taux de reconnaissance en fonction des lignes de mon fichier (majuscule, accentuation, mots étrangers, abréviations, etc.).

    Un des critères de tests est le temps de reconnaissance. En effet, j'ai remarqué, par exemple, qu'une ligne passée en majuscules dans ma grammaire met plus de temps à être détectée qu'avec une ligne passée en minuscules.

    Je voudrais chiffrer ce gain de temps, j'ai donc pensé à un timer.

    Mon problème est de savoir poser un "chrono" sur l'évenement qui détecte la reconnaissance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
    // ... initialisations diverses ...
    sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_refProduit);
    Comment faire ?

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Bonjour.

    Je ne sais pas s'il est possible d'associer un timer à un event... Cependant, tu peux encadrer le code de ton event par un Stopwatch et ainsi savoir combien de temps ton bloc de code a mis à s'exécuter.

    Bon courage

  3. #3
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    Merci pour ta réponse

    J'ai tenté d'implémenter StopWatch comme tu le décris, mais ça ne correspond pas vraiment à mes attentes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Stopwatch chrono = new Stopwatch();
    chrono.Start();
    sre.SpeechRecognized +=
                  new EventHandler<SpeechRecognizedEventArgs>(sre_refProduit);
     
     
    //fonction handle sre_refProduit
    private void sre_refProduit(object sender, SpeechRecognizedEventArgs e)
    {
        chrono.Stop();
        MessageBox.Show(chrono.ElapsedMilliseconds.ToString());
        ...
    }
    Le problème, c'est que le chrono est lancé avant de recevoir une entrée vocale, donc si j'attends 30 secondes avant de parler, la MessageBox m'affiche 3x.xxx millisecondes.

  4. #4
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Hum, je n'avais pas totalement pigé Donc si je comprends bien, tu cherches à savoir le temps qui s'est écoulé entre le moment où tu parles et le moment où ton event est réellement déclenché, c'est ça ?

  5. #5
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    C'est un peu ça. En réalité j'ai aussi eu du mal à cerner exactement ce que je voulais.

    Pour tenter d'être claire (et utopique, je commence à comprendre que je n'aurais pas exactement ce que je veux ^^), je voudrais l'intervalle de temps entre la fin de mon entrée vocale, et le temps qu'il a mis à aller chercher la phrase qui correspond dans la grammaire.

    Donc en gros, c'est l'intervalle de temps entre le moment où il détecte que je commence à parler (qui peut être obtenu plus ou moins avec EventHandler<SpeechDetectedEventArgs> , et encore, il ne se déclenche pas précisément lorsque je commence à parler), et le moment où il écrit la phrase, le tout diminué de la longueur de mon entrée audio (obtenue par e.Result.Audio.Duration.TotalMilliseconds).

    C'est vraiment la réaction que je veux, mais avec l'opération que je viens de décrire, je n'obtiens que des valeurs négatives, dûes sans doute au SpeechDetectedEventArgs qui ne se lance pas au bon moment.

Discussions similaires

  1. Timer sur une fenetre "info"
    Par momobulle dans le forum WinDev
    Réponses: 2
    Dernier message: 11/07/2007, 13h26
  2. Waitable timers sur linux
    Par wajihwajih dans le forum Linux
    Réponses: 3
    Dernier message: 23/05/2007, 15h36
  3. [FLASH] Problème de timer sur FLV
    Par BnA dans le forum Flash
    Réponses: 1
    Dernier message: 03/11/2006, 11h52
  4. [C#] Timer sur les évènements des messages Windows
    Par Nullos Oracle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/09/2006, 11h33
  5. Réponses: 3
    Dernier message: 01/10/2005, 16h58

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