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

VB.NET Discussion :

Sapi.spvoice freeze le programme


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Sapi.spvoice freeze le programme
    Bonsoir,

    J'ai créé un logiciel permettant de gérer les processus de Windows, et souhaitant le perfectionner au maximum, j'ai ajouté un mode pour les malvoyant.
    Pour cela j'utilise sapi.spvoice mais le problème est : a chaque fois que l'ordinateur parle, le programme s’arrête seulement lorsqu'il parle.
    Ce n'est pas très jolie et pratique, je sais qu'il est possible d'éviter cela avec une simple ligne de code en plus mais je me souviens plus de la quelle.

    Merci de votre réponse
    Bien à vous

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Cela bien longtemps que je n'ai pas joué avec cela. Mais une inspiration soudaine et non testée.

    Je crois me souvenir qu'il y a une histoire de "speakasync" ou quelque chose qui ressemble à cela, pour parler de façon asynchrone.

    Su tu n'as pas le SDK de sapi, tu peux télécharger celui de la version 5.1 là

    Apparemment les versions suivantes du SDK ont été ajoutées au SKD de Windows et ne sont plus disponibles séparément.

    Mais tu le voir en ligne

    Mais comme tu ne montres pas ton code, le Framework contient System.Speak

    Il n'est peut-être pas à jour, mais ils ont aussi ce guide
    Dans le lien, il y a Office.14 et pour le commun des mortels, Office 14 c'est Office 2010.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Je t'avourai ne pas avoir tout pris compris.
    Pour ce qui est du code, je n'y ai pas penser ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ep = CreateObject("sapi.spvoice")
    ep.speak(Textbox1.text)
    Merci pour votre réponse

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonsoir,

    L'aide MSDN est votre amie.
    Sur cette page : https://docs.microsoft.com/en-us/pre...602(v%3Dvs.85)
    On voit qu'effectivement il faut lire en asynchrone comme le préconisait clementmarcotte :
    The Speak method places a text stream in the TTS engine's input queue and returns a stream number.
    It can be called synchronously or asynchronously. When called synchronously, the Speak method does not return until the text has been spoken; when called asynchronously, it returns immediately, and the voice speaks as a background process.
    Donc on comprend que cette méthode peut être appelée en synchro ou asynchrone. On va donc voir l'aide de cette méthode : https://docs.microsoft.com/en-us/pre...28v%3dvs.85%29

    Et on voit qu'il y a un paramètre supplémentaire qui permet de spécifier le mode asynchrone avec le paramètre de type SpeechVoiceSpeakFlags qui est optionnel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        SpVoice.Speak(
         Text As String,
         [Flags As SpeechVoiceSpeakFlags = SVSFDefault]
    ) As Long
    Cette énum est définie ici : https://docs.microsoft.com/en-us/pre...28v%3dvs.85%29

    Donc je dirais que le code doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ep = CreateObject("sapi.spvoice")
    ep.speak(Textbox1.text, SpeechVoiceSpeakFlags.SVSFlagsAsync )

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Désolé pour ma réponse si tardive.

    Merci pour votre réponse

Discussions similaires

  1. Incompréhension dans l'utilisation de sapi.spvoice
    Par papyxy dans le forum VBScript
    Réponses: 6
    Dernier message: 08/08/2018, 10h54
  2. Problème ActiveX SAPI.SpVoice
    Par hackoofr dans le forum VBScript
    Réponses: 10
    Dernier message: 01/04/2011, 09h42
  3. Exception dans kernel32.dll qui freeze mon programme
    Par Chekov dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 30/03/2009, 14h59
  4. Sapi.SpVoice avec cscript
    Par alixbasix dans le forum VBScript
    Réponses: 14
    Dernier message: 07/02/2008, 13h27
  5. Pas d'erreur au debugage mais le programme freeze
    Par bob2356 dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 25/09/2006, 20h16

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