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 :

System.speech dans un projet 64 bit


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    Bonjour,
    J'ai lu cette discussion.

    J'arrive à utiliser System.Speech sans aucun problème, avec une voix français celle de Virginie cité plus haut.

    J'ai cru comprendre que la reconnaissance vocale de Microsoft speech sdk 11 était plus performante:
    En essayant donc de me servir de Microsoft.Speech je rencontre une erreur à l'exécution.

    Ce que j'ai fait :
    - Installation (64bits) de SpeechPlatformRuntime.msi, MicrosoftSpeechPlatformSDK.msi, MSSpeech_TTS_fr-FR_Hortense.msi, MSSpeech_SR_fr-FR_TELE.msi
    - Dans mon projet j'ajoute la référence vers C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll via le bouton parcourir puisque non accessible directement dans les Assemblys.
    Remarque : Depuis l'écran d'ajout de référence, si je regarde la partie COM -> Bibliothèque de type j'ai "Microsoft Speech Object Library" version 5.4 et 11.0

    Lors de l'exécution j'obtiens l'erreur suivante :
    La récupération de la fabrique de classes COM pour le composant avec le CLSID {D941651C-44E6-4C17-BADF-C36826FC3424} a échoué en raison de l'erreur suivante : 80040154 Classe non enregistrée (Exception de HRESULT : 0x80040154 (REGDB_E_CLASSNOTREG)).
    sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SpeechSynthesizer m_synth = new SpeechSynthesizer();
    Attention code C#

    Quelqu'un aurait il une idée ?

    Mea Culpa, j'avais oublié un p'tit détail en relisant une dernière fois : Le seconde problème de GreenZephyr: Forcer à compiler pour x64 et non "Any CPU"

    Citation Envoyé par greenzephyr Voir le message
    Salut et merci de ton retour.

    Ok. j'ai compris le problème. En fait 2 problèmes.
    D'abord j'utilisais System.Speech. En ajoutant l'assembly C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly (version 64) et en travaillant avec Microsoft.Speech, cela fonctionne. J'ai aussi du forcer mon projet à compiler pour x64 et non pas "Any CPU".
    Et là ca marche.

    Par contre j'ai trouvé cette voix française "Virginie" (télécharger) qui fonctionne avec System.Speech.

    Voilà, merci pour ton aide.
    Du coup l'exécution est bonne...
    Bon pour le moment je n'ai pas de son en sortie contrairement à System.Speech, mais je verrai demain pour ça...

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Par défaut
    Suite de mes tentatives... Je n'ai toujours pas de son en sortie avec Microsoft.Speech.

    Quand je vérifie les langues installées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach (InstalledVoice voice in m_synth.GetInstalledVoices())
    {
          VoiceInfo info = voice.VoiceInfo;
          textBox.Text = textBox.Text + " + " + info.Name;
    }
    Attention code C#

    J'obtiens bien : Microsoft Server Speech Text to Speech Voice (fr-FR, Hortense)

    Le setteur de la voix ne crash d'ailleurs pas, il trouve bien la langue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_synth.SelectVoice("Microsoft Server Speech Text to Speech Voice (fr-FR, Hortense)");
    Attention code C#

    Mais je n'obtiens aucun son en sortie ...

    Quelqu'un aurait-il une piste ?

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Bonjour,
    Il y a plusieurs choses qui me dérangent dans cette discussion;
    Les premières :

    1) Je ne vois pas pourquoi Virginie ne pourrait pas parler en compagnie des 64 bits... serait-elle en état de choque?...
    J'ai vu CECI sur le forum, bon, c'est du VBA mais le principe reste le même.

    2) Pourquoi se met-on à insérer du code "E.T." sur cette discussion alors que nous sommes dans le forum VB.NET ???
    (comme par exemple "foreach (InstalledVoice voice in m_synth.GetInstalledVoices())") ???

    3) Pourquoi je vois "question résolue" alors qu'on continue à poser des questions depuis un moment ???

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par ACIVE_CS Voir le message
    2) Pourquoi se met-on à insérer du code "E.T." sur cette discussion alors que nous sommes dans le forum VB.NET ???
    (comme par exemple "foreach (InstalledVoice voice in m_synth.GetInstalledVoices())") ???
    Ce qui est dit dans cette discussion pour VB.NET est tout aussi valable en C#; c'est juste la syntaxe qui change, mais à part ça les deux fonctionnent exactement selon les mêmes principes, et sur la même plateforme .NET... Ca te dérange tant que ça de voir du C# sur le forum VB.NET ?

    Citation Envoyé par ACIVE_CS Voir le message
    3) Pourquoi je vois "question résolue" alors qu'on continue à poser des questions depuis un moment ???
    Parce que c'est résolu depuis longtemps pour la personne qui a posé la question au départ, et mklein8791 a juste rebondi sur cette discussion puisqu'il rencontrait le même problème. Là encore, je ne vois pas trop ce qu'il y a de dérangeant là-dedans...

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Bonjour tomlev,
    Ca te dérange tant que ça de voir du C# sur le forum VB.NET ?
    Oui... dans ce cas ce forum devrait s’appeler "Dotnet>Langages>VB.NET/C#"
    Pourquoi? parce que quand on fait une recherche sur le net et qu'on voit "VB.NET" on s'attend à retrouver un code VB.NET et pas du C#, ça ne te dérange pas de faire 20 pages de google avec rien à voir avec ce que tu as tapé ???

    Ceci-dit je code en VB (toutes versions) depuis 1996 (Basic11, Qbasic, vb4, 5, 6, .net jusqu'à 2013), etc même des versions spécifiques électronique que presque personne connait ou encore des versions encore plus anciennes..., C, C++, C#, Java, Java Android, sans parler des langages web ET, bien sur, de l'assembleur (code machine) car ma formation au départ est en programmation de microprocesseurs et électronique digitale.

    Tu ne vas pas me dire qu'un quelconque langage serait sensé me déranger, non ???
    Maintenant je crois savoir que tu peux me "virer" du site; j'en demande que ça... fais-le!

    Parce que c'est résolu depuis longtemps pour la personne qui a posé la question au départ, et mklein8791 a juste rebondi sur cette discussion puisqu'il rencontrait le même problème. Là encore, je ne vois pas trop ce qu'il y a de dérangeant là-dedans..
    Nous sommes en 2015 !..., j'en connais des sites et des forums... je suis sur qu'en cherchant un peu vous arriverez à modifier le statut de "sujet résolu" en rapport avec un utilisateur qui finalement n'as pas tout résolu...
    Est-ce moi (ou quelqu'un d'autre) qui doit vous dicter la démarche à suivre ??? ÉVOLUEZ avec notre temps....

    Cordialement

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par ACIVE_CS Voir le message
    Pourquoi? parce que quand on fait une recherche sur le net et qu'on voit "VB.NET" on s'attend à retrouver un code VB.NET et pas du C#, ça ne te dérange pas de faire 20 pages de google avec rien à voir avec ce que tu as tapé ???
    Non. Pouquoi ? Si je trouve le code dont j'ai besoin en C# alors que je veux du VB.NET (ou l'inverse), eh bien, au lieu de râler, je me prends par la main et je le traduis. C'est tellement simple et mécanique qu'il y a même des outils automatisés pour le faire...

    (et on n'a vraiment pas la même définition de "rien à voir"...)

    Citation Envoyé par ACIVE_CS Voir le message
    Ceci-dit je code en VB (toutes versions) depuis 1996 (Basic11, Qbasic, vb4, 5, 6, .net jusqu'à 2013), etc même des versions spécifiques électronique que presque personne connait ou encore des versions encore plus anciennes..., C, C++, C#, Java, Java Android, sans parler des langages web ET, bien sur, de l'assembleur (code machine) car ma formation au départ est en programmation de microprocesseurs et électronique digitale.

    Tu ne vas pas me dire qu'un quelconque langage serait sensé me déranger, non ???
    Bah j'en sais rien moi, je peux pas deviner quelles sont tes compétences... et ton message précédent laisse clairement penser que oui, ça te dérange. Tu l'as d'ailleurs confirmé quelques lignes plus haut, avant de dire le contraire.

    Citation Envoyé par ACIVE_CS Voir le message
    Maintenant je crois savoir que tu peux me "virer" du site; j'en demande que ça... fais-le!
    ...
    Tu hallucines un peu, là... D'abord, non, je n'ai pas le pouvoir de te virer; et même si je l'avais, il faudrait quelque chose de nettement plus grave qu'un message un peu agaçant pour en arriver à de telles extrémités... Ai-je dit quoi que ce soit qui laissait penser que je voudrais faire ça ? Je ne crois pas... Mon message n'avait d'ailleurs rien d'agressif il me semble, donc je ne comprends pas pourquoi tu réagis comme ça.


    Citation Envoyé par ACIVE_CS Voir le message
    Nous sommes en 2015 !..., j'en connais des sites et des forums... je suis sur qu'en cherchant un peu vous arriverez à modifier le statut de "sujet résolu" en rapport avec un utilisateur qui finalement n'as pas tout résolu...
    Est-ce moi (ou quelqu'un d'autre) qui doit vous dicter la démarche à suivre ??? ÉVOLUEZ avec notre temps....
    Ce que tu racontes n'a strictement aucun sens, c'est sans queue ni tête... Je ne vois pas le rapport entre le fait qu'on soit en 2015, le fait de marquer un sujet comme résolu sur Developpez.com, les autres sites et forums, la "démarche à suivre" (pour faire quoi d'ailleurs), et le fait d'évoluer avec son temps. Je sais pas si c'est clair dans ta tête, mais moi j'ai rien compris.

    (Accessoirement, si la discussion est marquée comme résolue, c'est parce que shayw, qui avait posé la question initiale, a considéré son problème comme résolu. Si ensuite d'autres personnes sont venues se greffer à cette discussion, ça n'a rien à voir avec le fait que shayw a résolu son problème...)

  7. #7
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par mklein8791 Voir le message
    Suite de mes tentatives... Je n'ai toujours pas de son en sortie avec Microsoft.Speech.

    Quand je vérifie les langues installées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach (InstalledVoice voice in m_synth.GetInstalledVoices())
    {
          VoiceInfo info = voice.VoiceInfo;
          textBox.Text = textBox.Text + " + " + info.Name;
    }
    Attention code C#

    J'obtiens bien : Microsoft Server Speech Text to Speech Voice (fr-FR, Hortense)

    Le setteur de la voix ne crash d'ailleurs pas, il trouve bien la langue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_synth.SelectVoice("Microsoft Server Speech Text to Speech Voice (fr-FR, Hortense)");
    Attention code C#

    Mais je n'obtiens aucun son en sortie ...

    Quelqu'un aurait-il une piste ?
    Je suppose, ou devrais-je dire j'espère, que c'est pareil en Caiguisé. En VB.net, il y a moyen d'utiliser une constante de compilation conditionnelle, (si ma mémoire m'est fidèle c'est 64bits ou #64bits) qui permet de mettre des instructions spécifiques 32 et 64 bits (essentiellement) dans une solution anycpu. Tu peux donc avoir system.Speech et Virginie et Microsoft.speech et Hortense dans la même solution.


    En (presque) VB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if 64bits then
       Hortense
    #Else
       virginie
    #en if
    P.S. Avec la volonté affirmée de Microsoft de rendre, et de maintenir, VB et Caiguisé, complètement équivalents, il faudra peut-être, dans x années fusionner les forums VB.net et C#.

    Par exemple, c'est cette "équivalence" qui a valu à VB "d'adopter" l'opérateur Yield de Caiguisé.

    P.P.S Verra-t-on, toujours au nom de l'équivalence, My.Settings, My.Application et My.Computer débarquer en C# ?

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Caiguisé
    lol, première fois que je vois ce mot... c'est bien trouvé

    Citation Envoyé par clementmarcotte Voir le message
    P.S. Avec la volonté affirmée de Microsoft de rendre, et de maintenir, VB et Caiguisé, complètement équivalents, il faudra peut-être, dans x années fusionner les forums VB.net et C#.
    Pitié, pas ça
    Plus sérieusement, ça me semble quand même hautement improbable... même si les fonctionnalités sont presque équivalentes, la syntaxe est vraiment trop éloignée. D'ailleurs l'équivalence totale n'est pas encore atteinte, et ne le sera probablement jamais. Par exemple je ne crois pas qu'il soit question de supporter les littéraux XML en C#, ou le code unsafe et les pointeurs en VB.NET.

    En plus les deux langages ont des philosophies assez différentes, qu'il serait difficile de réconcilier. VB.NET a tendance à masquer implicitement la complexité de certains concepts (au risque de faire parfois des "leaky abstractions" qui rendent certains problèmes difficiles à diagnostiquer), alors que C# préfère en général que les choses soient bien explicites.

    Citation Envoyé par clementmarcotte Voir le message
    P.P.S Verra-t-on, toujours au nom de l'équivalence, My.Settings, My.Application et My.Computer débarquer en C# ?
    Pas demain la veille à mon avis... il n'y a pas vraiment de demande en ce sens de la part de la communauté des développeurs. Soit dit en passant, ce ne sont pas vraiment des fonctionnalités du langage VB.NET lui-même, mais plutôt des fonctionnalités de l'IDE (code généré pour My.Settings) et une bibliothèque (Microsoft.VisualBasic.dll pour My.Computer et My.Application). D'ailleurs on peut aussi utiliser les classes de settings générées par VS en C#, et rien n'empêche de référencer Microsoft.VisualBasic.dll depuis C# ou un autre langage .NET

Discussions similaires

  1. System.speech dans un projet 64 bit
    Par shayw dans le forum VB.NET
    Réponses: 12
    Dernier message: 17/05/2014, 10h02
  2. file system dans un projet multimodules
    Par ggalou08 dans le forum Maven
    Réponses: 13
    Dernier message: 22/05/2008, 14h56
  3. Inclure un type de police spécial dans un projet
    Par AOliv dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 27/06/2003, 09h39
  4. Réponses: 7
    Dernier message: 24/05/2003, 15h56
  5. Réponses: 6
    Dernier message: 21/06/2002, 14h48

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