Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Faire parler Panoramic | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Faire parler Panoramic Dim 22 Jan 2012 - 13:59 | |
| Suite à une suggestion de Jicehel, j'ai réalisé une petite DLL donnant accès au système SAPI de Microsoft pour la parole synthétique. C'est très simple. ET je pense qu'une telle fonction pourrait apporter un plus à tous ceux qui développent des jeux. Cela pourrait donc être intéressant d'incorporer cette fonction dans Panoramic, sous forme d'une commande simple. J'ai réalisé la fonction DLL suivante: res% = DLL_CALL3("Speak",adr(txt$),volume%,vitesse%) avec volume% variant de 0 à 100, et vitesse% variant de -10 à 10. Cela marche parfaitement. Je suggère donc la commande suivante: SPEAK T,VOL,VIT Dans ma DLL, c'est réalisé de la manière suivante (en Delphi 6): - Code:
-
function Speak(const mes, volume, speed: integer):integer; stdcall; export; var voix: variant; txt: string;
begin txt := string(pointer(mes)^); voix:=CreateOLEObject('SAPI.SpVoice'); voix.Volume := volume; voix.Rate := speed; if length(trim(txt))>0 then voix.Speak(trim(txt)); voix:=UnAssigned; result := 0; end; On voit que j'utilise le mécanisme OLE Automation qui devrait fonctionner partout. Mais il y a aussi une méthode par un composant Delphi que j'ai faite marcher aussi, en cas de besoin. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Faire parler Panoramic Dim 22 Jan 2012 - 15:58 | |
| Il est génial, non mais c'est vrai ... Je galère pendant plus d'un an sur un truc, je lui dis un soir à pas d'heure et le lendemain, il y a une DLL ... Moi, je me dis bon, un jour, s'il a le temps, il va y jetter un oeil et voir si c'est faisable, mais non, direct la DLL le lendemain. Heureusement que je suis assis, sinon, j'en tomberais sur le c...l.
Merci klaus, je teste de suite ...
Je pense aussi que ce serait une commande sympa pour Panoramic, car en dehors de mon fantasme personnel, c'est une commande qui permet d'améliorer l'accessibilité des programme pour les jeunes utilisateurs, mais aussi pour nos amis mal voyants, par exemple...
Pour les jeux en effet, c'est plus vivant aussi...
Par contre, du coup ça m'annule mon défit pour Klaus ... (Encore réussi ...). Hum, je ne sais pas, c'est moins utile, mais peut-être la reconnaissance vocale cette fois ? (Pas sûr qu'il n'y ait pas un sujet plus important, la synthèse, c'est plus maitrisable et utile et mieux maitrisé, la reconnaissance, c'est autre chose ...).
En tout cas encore bravo Klaus et merci | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Faire parler Panoramic Dim 22 Jan 2012 - 16:27 | |
| @Jicehel: Merci pour ton message - ça fait plaisir.
Maintenant, les remarques suivantes: - d'accord, ce serait très intéressant comme commande dans Panoramic. J'en ai d'ailleurs déjà fait la demande dans la rubrique appropriée, en publiant le code que j'utilise dans cette mini-dll. - la reconnaissance vocale est certes un peu plus lourde, mais se gère par exactement le même modèle. Ceci dit, le problème est d'établir les définitions des mots et de la grammaire à utiliser, et en principe, il faut tout un toolkit pour ça (téléchargeable chez MicroSoft). En tout cas, ce n'est pas quelque chose qu'on met en oeuvre facilement, dans son coin. Si on peut l'obtenir, alors on peut écrire sous la dictée, déclencher une action en fonction de commandes parlées, etc. Mais encore une fois, ce n'est pas tant la programmation qui est difficile, mais plutôt la définition du dictionnaire vocal à utiliser.
Maintenant, de manière générale: j'aime bien créer de petits modules précis, concis, réalisant une fonction bien définie pour Panoramic, afin d'enrichir encore plus ce langage déjà très performant. Si tu te souviens, j'avais fait une DLL pouvant réaliser des forms translucides, des forms avec des tous ou ayant uune forme quelconque, etc. ET ce n'est qu'un exemple. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Faire parler Panoramic Dim 22 Jan 2012 - 18:52 | |
| Klaus, c'est une fonctionnalité intégrée dans W7 mais je suis d'accord avec toi sur la complexité de mise en œuvre ... en plus les utilisations sont plus complexes, en effet. Déjà, la synthèse vocale va apporter beaucoup ^^ Ça me donne envie de reprendre mon jeu et de l'intégrer ^^. Là si ça t’intéresse, avec le code donné par Jean Debord, tu peux déjà intégrer les courbes de tendance voir faire une DLL pour utiliser un min tableur qui utilise ensuite ces graphiques ou inversement. Mais si l'idée ne t'emballe pas et que tu as court d'idées (ce dont je doute ), on trouvera bien quelque chose enfin au début vu la vitesse à laquelle tu travailles ^^ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Faire parler Panoramic Dim 22 Jan 2012 - 19:14 | |
| Je regarderai les courbes de tendance tranquillement. En ce qui concerne le semblant de tableur, je m'y suis déjà essayé, mais pour le momen, je m'y suis cassé les dents. On verra... | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Faire parler Panoramic Dim 22 Jan 2012 - 19:15 | |
| - Citation :
- Il est génial, non mais c'est vrai ... Je galère pendant plus d'un an sur un truc, je lui dis un soir à pas d'heure et le lendemain, il y a une DLL ... Moi, je me dis bon, un jour, s'il a le temps, il va y jetter un oeil et voir si c'est faisable, mais non, direct la DLL le lendemain. Heureusement que je suis assis, sinon, j'en tomberais sur le c...l.
Comme toi Jicehel !!! C'est fou, il est extraordinaire ce klaus | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Faire parler Panoramic Dim 22 Jan 2012 - 19:33 | |
| Bonsoir Klaus, Alors là, vraiment un grand bravo! La parole à Panoramic, ça manquait. J'ai pas le temps de tester ta dll, mais c'est promis, dès que j'en ai fini avec mon prochain programme, je m'y atelle! Dailleurs, je vais ouvrir un post pour en parler de ce satané programme! A bientôt | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Faire parler Panoramic Sam 28 Jan 2012 - 0:35 | |
| Bonjour Klaus, J'ai réussi après tatonnements à faire fonctionner ta dll pour faire parler Panoramic. Par contre avec le code suivant, on voit que ça bloque l'éxécution du programme après avoir imprimé 60 "a", et qu'une fois terminé la phrase, le programme reprend.N'y a-t-il pas moyen d'éviter de suspendre l'éxécution du programme? - Code:
-
full_space 0 dim res%,txt$,v%,vol% ,i txt$="Ladies and gentlemen good morning! It's a good day!" v%=-5:vol%=70 dll_on "c:\jeubasic\dll_klaus\sapi.dll" for i=1 to 250 print "a"; if i=60 res%=DLL_CALL3("Speak",adr(txt$),vol%,v%) end_if next i dll_off A bientôt | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Faire parler Panoramic Sam 28 Jan 2012 - 1:46 | |
| Non, ce n'est pas possible. L'appel d'une fonction de DLL est "synchrone" ce qui veut dire que le programme continue avec la ligne Panoramic suivante seulement après le retour de la fonction DLL. il faut le temps que cela s'exécute, puis Panoramic continue. C'est comme si tu utilisais la commande MESSAGE à la place - les "a" continueront à s'afficher lorsque tu auras validé le message. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Faire parler Panoramic Sam 28 Jan 2012 - 9:18 | |
| Klaus, il faudrait ajouter une fonction pour pouvoir indiquer au programme soit le numero de la voix que l'on veut utiliser, soit son nom afin de pouvoir changer de voix comme on veut. L'avantage du numéro, c'est la simplicité, Tiens, voilà quelques astuces pour faire des fonctions sympas en plus: - Code:
-
voices.l = TTSEngCount() ; Get the highest voice index. If voices > -1 ; If there are any voice installed... Debug "There are "+Str(voices+1)+" voices installed in your system" ;Remember that voice index starts from 0 For i=0 To voices name$=TTSEngName(i) ; Retrieve each voice name. Debug "Voice index = "+Str(i)+" , Voice name = "+name$ Next i Else MessageRequester("erreur","je ne trouve pas de voix"+Chr(10)+"installé sur le system",#PB_MessageRequester_Ok ) End EndIf
- Code:
-
; liste des voix For i=0 To voices name$=TTSEngName(i) ; Retrieve each voice name. language$ = TTSEngLang(i) ; arg1.l = voice index AddGadgetItem(#liste, -1, language$ ) ; ajoute dans la liste les noms trouvé+nationalité Next i
name$=TTSEngName( voix) ; cherche le nom language$ = TTSEngLang(voix) ; cherche le nom+nationalité SetGadgetState(#liste, voix) ; active la voix lu par defaut dans la liste
Voilà, je pense que tu dois pouvoir ajouter une fonction pour récupérer les voix installée comme ça et une autre pour la choisir. Enfin j'espère ... Ca permettrait de simuler des dialogue. Après, on peut jouer en vérifiant que les voix les plus rependues sont installées sur le poste et à faire parler pierre et virginie par exemple. En plus en jonglant avec les paramètres des voix, on doit pouvoir simuler quelques personnages ... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Faire parler Panoramic Sam 28 Jan 2012 - 9:32 | |
| | |
| | | mimic
Nombre de messages : 103 Localisation : france Date d'inscription : 02/09/2009
| Sujet: Re: Faire parler Panoramic Dim 8 Fév 2015 - 14:20 | |
| Bonjour,
Où trouver la dll en question, d’avance merci.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Faire parler Panoramic Dim 8 Fév 2015 - 15:55 | |
| Il s'agit de KGF.dll. Tu la trouves dans mon WebDav, dossier DLLs, ou sur mon Site Web adresse: http://klauspanoramic.comxa.com/index.html(également accessible via le bouton "www" de mon profil). Tu vires la publicité ou tu attends quelques secondes pour qu'elle disparaisse, puis tu cliques sur "Externes", et tu as des liens vers KGF.dll et KGF.chm (la doc de KGF.dll). | |
| | | Contenu sponsorisé
| Sujet: Re: Faire parler Panoramic | |
| |
| | | | Faire parler Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |