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

Windows Discussion :

[C] Synthèse vocale sous Windows


Sujet :

Windows

  1. #1
    Membre du Club Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Points : 55
    Points
    55
    Par défaut [C] Synthèse vocale sous Windows
    Bonjour à tous !

    Après avoir créé des discussions sur plusieurs forums et n'ayant eu aucune réponses constructives, je me tourne vers vous.
    En fait je recherche les différentes fonctions de l'API windows qui me permettront de créer une fonction de synthèse vocale prenant en paramètre la chaine de caratcère à lire ainsi que des indications concernant la voix (sexe, ton, vitesse ...).


    Donc si vous pouviez m'aider un peu, ce serait super sympa !

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut Re:
    Pour faire de la synthèse vocale sous Windows on utilise le Speech API. Le SDK pour cette API est téléchargeable sur le site de Microsoft, ici

  3. #3
    Membre du Club Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Points : 55
    Points
    55
    Par défaut
    Ca je l'ai déjà fait !
    Maintenant je cherche les fonctions que je doit utiliser pour l'utiliser !

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Electroniktor
    Ca je l'ai déjà fait !
    Et tu ne t'es pas pris la peine de lire la doc? http://msdn2.microsoft.com/en-us/library/ms720406.aspx. En particulier ceci.

  5. #5
    Membre du Club Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup pour les liens ! C'est exactement ce que je cherchais !
    En plus, j'ai vu que Speech API permettait également de faire de la reconnaissance vocale ! C'est parfait !

    PS : pour l'utiliser dans un programme, il faut bien que je télécharche le fichier speechsdk51msm.exe ?

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Electroniktor Voir le message
    pour l'utiliser dans un programme, il faut bien que je télécharche le fichier speechsdk51msm.exe ?
    Non, seulement si t'as l'intention de distribuer ton programme.

  7. #7
    Membre du Club Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Points : 55
    Points
    55
    Par défaut
    Ben rien ne marche chez moi !
    J'ai essayé le programme de TTS qui est donné sur MSDN mais il ne fonctionne pas ! En fait je ne sais pas où trouver les bibliothèques corespondants à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <stdafx.h>
    #include <sapi.h>
    Elle ne sont pas dans mon compilo (dev-C++) et ne sont pas dans ce que j'ai telechargé sur le site de microsoft !
    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
    #include <stdafx.h>
    #include <sapi.h>
    
    int main(int argc, char* argv[])
    {
        ISpVoice * pVoice = NULL;
    
        if (FAILED(::CoInitialize(NULL)))
            return FALSE;
    
        HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice;);
        if( SUCCEEDED( hr ) )
        {
            hr = pVoice->Speak(L"Hello world", 0, NULL);
            pVoice->Release();
            pVoice = NULL;
        }
        
        ::CoUninitialize();
        return TRUE;
    }

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    stdafx.h est un fichier automatiquement ajouté par Visual C++ lorsqu'on crée un projet non vide. Il est censé inclure les fichiers d'en-têtes "standards" recquis pour la programmation d'applications (ou de composants ...) utilisant les technologies Microsoft. Dans ton cas l'important c'est tout simplement que, SAPI étant basé sur COM, tu dois au moins inclure objbase.h et te lier avec ole32.lib. Donc :

    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
    #include <objbase.h>
    #include <sapi.h>
    
    int main(int argc, char* argv[])
    {
        ISpVoice * pVoice = NULL;
    
        if (FAILED(::CoInitialize(NULL)))
            return FALSE;
    
        HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice;);
        if( SUCCEEDED( hr ) )
        {
            hr = pVoice->Speak(L"Hello world", 0, NULL);
            pVoice->Release();
            pVoice = NULL;
        }
        
        ::CoUninitialize();
        return TRUE;
    }
    sapi.h (ainsi que sapi.lib) est fourni par le SDK.

    Je te consille également d'apprendre quelques petits trucs sur COm, pas de gros trucs, juste de petits . Tu as :

    MSDN, bien sûr.
    Les tutoriaux de débutants de CodeProject.
    Et en particulier, pour commencer, je recommande celui-ci.

    Voilà. Tu peux toujours poser des questions (quoi que j'espère qu'il n'y en a plus! ).

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Note: Le code posté par Melem est en C++.
    Voici ce à quoi devrait ressembler un équivalent C:
    Code C : 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
    #include <objbase.h>
    #include <sapi.h>
     
    int main(int argc, char* argv[])
    {
        ISpVoice * pVoice = NULL;
        HRESULT hr;
     
        if (FAILED(::CoInitialize(NULL)))
            return FALSE;
     
        hr = CoCreateInstance(&CLSID_SpVoice, NULL, CLSCTX_ALL, &IID_ISpVoice, (void **)&pVoice;);
        if( SUCCEEDED( hr ) )
        {
            hr = pVoice->lpVtbl->Speak(pVoice, L"Hello world", 0, NULL);
            pVoice->lpVtbl->Release(pVoice);
            pVoice = NULL;
        }
     
        ::CoUninitialize();
        return TRUE;
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre du Club Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Points : 55
    Points
    55
    Par défaut
    Juste une dernière question : c'est la même chose pour DEV-C++ ?

    En tout cas merci beaucoup pour tout !

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Seulement si MinGW possède des headers pour la SAPI, ou bien si les headers de la SAPI sont compatibles avec MinGW.

    ...Ce qui est peu probable.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. VAC, Commandes Vocales sous Windows 8
    Par Invité dans le forum Windows 8
    Réponses: 0
    Dernier message: 22/01/2014, 05h11
  2. Reconnaissance vocale sous Windows 7 : topic obsolète
    Par Invité dans le forum Windows 7
    Réponses: 0
    Dernier message: 14/01/2014, 05h28
  3. Synthèse vocale et Windows mobile 5
    Par Sirius29 dans le forum Windows
    Réponses: 3
    Dernier message: 10/01/2013, 18h02
  4. [WD15] Reconnaissance vocale sous Windows 7
    Par RougeCitron dans le forum WinDev
    Réponses: 0
    Dernier message: 23/04/2010, 12h32
  5. Utiliser la synthèse vocale sous Office
    Par koKoTis dans le forum VBA Word
    Réponses: 10
    Dernier message: 05/05/2008, 15h01

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