| Nouvelle DLL SAPI.dll pour prononcer un texte | |
|
|
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Nouvelle DLL SAPI.dll pour prononcer un texte Dim 22 Jan 2012 - 13:30 | |
| Suite à une idée lancée par Jicehel, j'ai fait une toute petite DLL nommée SAPI.dll (dans DLLs Divers) qui permet de prononcer un texte sur les haut-parleurs de l'ordinateur. Cette fonction est:
res% = dll_call3("Speak",adr(txt$),volume%,vitesse%)
On peut lancer des appels successifs en variant vitesse et volume. La distribution des DLLs divers contient un programme "demo SAPI.bas" pour mettre ces fonctions en évidence.
| |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Dim 22 Jan 2012 - 18:46 | |
| Super Klaus, ça marche. Par contre on a une erreur si on relance derriere. A DLL is alreadu used
Il suffit de mettre le chargement de la DLL en début de programme et ne pas faire le déchargement dans la proc pour que ça marche et faire un bouton fermer qui le fasse et qui quitte le programme.
Par contre, je ne vois pas pourquoi il fais ça ca tu fermes biens la DLL puis la recharge.
Sinon, ça marche nickel (j'ai mis la voix de pierre) | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Sam 28 Jan 2012 - 11:59 | |
| J'ai ajouté un paramètre à ma fonction "Speak" de SAPI.dll: - Citation :
- res% = dll_call4("Speak”,adr(txt$),volume%,vitesse%,langue%)
txt$ = texte à prononcer volume% = niveau de volume (0…100, valeur moyenne : 50) vitesse% = vitesse d’élocution (-10…10, valeur normale : 0) langue% = numéro de la langue installée (0 = langue par défaut)
Ce 4ème paramètre permet de choisir le numéro de voix installée dans le système. La valeur 0 utilise la voix par défaut, les valeurs de 1 à n (n étant le nombre de voix installées) utilise cette voix spécifique. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Sam 28 Jan 2012 - 13:50 | |
| Merci Klaus Je testerais à mon retour de mes vacances au ski, je pense ^^ (Je ne suis pas aussi rapide que toi .... ) | |
|
| |
Invité Invité
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Sam 28 Jan 2012 - 16:41 | |
| Il y a plein des trucs intéressant en ce moment sur le forum, mais comme je n'ai pas de mémoire, et pas de temps, c'est bien dommage de ne pouvoir en profiter. |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Sam 28 Jan 2012 - 21:34 | |
| J'ai mis une nouvelle version de SAPI.dll en ligne (dans les deux endroits, bien sûr: comme d'habitude sur mon site dans DLLs Divers, et dans le nouveau répertoire partagé indiqué ici). Cette nouvelle version apporte la possibilité d'utiliser la fonction SPEAK en mode ASYNCHRONE ! Ceci veut dire que la demande de génération de la parole synthétique est mise dans une file d'attente et on revient immédiatement dans le programme appelant. On peut empiler plusieurs appels à Speak alors que le premier n'a pas encore fini de s'exécuter, par exemple. On peut aussi laisser un long texte se dire comme en tâche de fond, alors qu'on continue à travailler à l'écran. Pour cela, une nouvelle fonction permet de choisir le mode opératoire qui par défaut reste SYNCHRONE. Voici l'extrait de la doc concernant cette routine: - Citation :
- Pour choisir le mode opératoire :
res% = dll_call1("SpeakMode”,mode%) mode% = choix entre “synchrone” et “asynchrone” 0 = synchrone. Ceci est le mode par défaut si cette fonction n’est pas appellée. 1 = asynchrone
En mode synchrone, le programme effectue la lecture complète du texte soumis avant de retourner. En mode asynchrone, la demande de lecture est soumise au système de parole synthétique et on Effectue un retour immédiat dans le programme appelant, alors que la parole continue à se dérouler.
En mode asynchrone, on peut faire plusieurs appels à « Speak » sans attendre la fin du ou des messages déjà en cours.
ATTENTION ! Cette fonction permet de choisir le mode asynchrone qui a une forte incidence sur le programme Panoramic ! Si l’on passe en mode asynchrone, il ne faut en aucun cas décharger SAPI.dll ni arrêter le programme Panoramic sans être repassé en mode synchrone par l’appel de cette fonction avec le paramètre 0 (zéro) ! Dans le cas contraire, les résultats peuvent être imprévisibles et aller jusqu’au crash par violation de mémoire, car l’agent de parole synthétique aura alors perdu le lien vers son « maître ».
Et voici l'exemple de Bignono adapté à cela: - Code:
-
label fin full_space 0 : on_close 0,fin dim res%,txt$,v%,vol% ,i txt$="Bonjour Messieurs dames! C'est une belle journée!" v%=-5:vol%=70 dll_on "sapi.dll" ' res% = DLL_CALL1("SpeakMode",0) : ' mode synchrone res% = DLL_CALL1("SpeakMode",1) : ' mode asynchrone for i=1 to 250 print "a"; if i=60 res%=DLL_CALL4("Speak",adr(txt$),vol%,v%,0) res%=DLL_CALL4("Speak",adr(txt$),vol%,v%,0) end_if next i end
fin: res% = DLL_CALL1("SpeakMode",0) dll_off return
Ce programme est par défaut en mode asynchrone. On constate que l'ensemble des "a" s'affiche alors que le texte n'a pas fini d'être prononcé. Si l'on remplace la ligne 8 par la ligne 7 en déplaçant l'apostrophe, on obtient le mode synchrone, et là, le programme s'arrête après 60 "a" pour dire le texte, puis continue. On peut voir que la routine on_close 0,fin a été utilisé pour revenir en mode synchrone puis décharger la DLL. | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Sam 28 Jan 2012 - 22:05 | |
| Alors là, chapeau bas. C'est "MAÎTRE KLAUS" que l'on doit t'appeler maintenant. | |
|
| |
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Mar 31 Jan 2012 - 15:38 | |
| Hallo Klaus, ich habe ein Verständnis Problem. Kannst du bitte mal dieses Programm ansehen, aber nur wenn es deine Zeit erlaubt. Ich kann warten. - Code:
-
' Sprechen ' DIM txt$ DIM position1% =30 DIM position2% =50 ' txt$ = "Severin" ' Wait 1000 ' ' dll_on "SAPI.dll" ' res% = dll_call3("Speak",adr(txt$),position1%,position2%,0) ' dll_off ' ' terminate END
' ******************************************************************************
SAPI.dll Inhalt der DLL:
Um den Betriebsmodus wählen: res =% dll_call1 ("SpeakMode"-Modus%) mode =% die Wahl zwischen "synchron" und "asynchron" 0 = synchron. Dies ist die Standardeinstellung, wenn diese Funktion aufgerufen wird. 1 = Asynchronous
Im synchronen Modus führt das Programm eine komplette Lektüre des Textes vor der Rückkehr eingereicht.
Im asynchronen Modus wird die Lese-Anforderung an den synthetischen Sprachausgabe vorgelegt, und wir führt eine sofortige Rückkehr in das aufrufende Programm, während das Wort weiter zu entfalten.
Im asynchronen Modus können Sie mehrere Anrufe auf "Speak" ohne zu warten, die Nachricht oder den Nachrichten, die bereits im Gange.
ACHTUNG! Diese Funktion ermöglicht es Ihnen, asynchronen Modus, die einen starken Einfluss auf das Programm Panorama hat zu wählen! Drehen im asynchronen Modus, sollte es in keiner Weise zu entlasten SAPI.dll oder beenden Sie das Programm ohne gebügelt Panoramic synchron durch den Aufruf dieser Funktion mit dem Parameter 0 (Null)! Ansonsten können die Ergebnisse unvorhersehbar sein und lernen Sie den Absturz der Speicher pro Verstoß, da der Agent von synthetischer Sprache der Link zu seiner verloren haben wird "Master".
Um einen Text vom Computer: res =% dll_call4 ("Speak", addr ($ txt), Volumen% Geschwindigkeit% language%) Txt$ = text zu sprechen vol% = Lautstärke (0 ... 100, Mittelwert: 50) % = Die Geschwindigkeit der Lieferung (-10 ... 10, Normalwert: 0) Sprache% = Anzahl der installierten Sprache (0 = default language)
Diese Routine wird verwendet, um Text auf High-Wege-Lautsprecher des Computers zu lesen. Der Text kann multi-line (getrennt durch CR / LF). Spaces stellen Pausen in der Äußerung.
Das Programm nutzt Standard-Stimme in das System installiert ist. Wenn die Stimmen nicht installiert sind, gibt es eine Website, die genau wie Sie es tun, erklärt: http://www.zebulon.fr/astuces/200-synthese-vocale-windows-en-francais.html Wir müssen dem Rat folgen, auf dieser Seite gegeben, und zwar: - Installieren Sie Microsoft Reader bedarf keiner Registrierung. *** ist installiert
Dieser Schritt ist notwendig, um den nächsten Schritt abgeschlossen haben, obwohl sie nicht mit dieser Software (die auch nicht-funktionale bei der Registrierung) - Installieren Sie ReaderTTSInstallFRA.exe. - Installieren Sie ReaderTTSInstallGER.exe. *** ist installiert
Dieses Programm ermöglicht es, zwei Französisch-Stimmen (ich bevorzuge die weibliche Stimme ist klarer). - Befolgen Sie die Tipps für die Auswahl der Standard-Stimme in das Control Panel Alles ist einfach zu tun und ist kostenlos.
Danke Severin | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Prononcer un texte. Mer 1 Fév 2012 - 7:41 | |
| Bonjour.
Je programmme actuellement une application de traduction du français vers le polonais. Et j'aimerais que cette application prononce le texte traduit.
Merci de m'indiquer la façon de faire pour lire un texte en polonais, si cela est possible.
Cordialement. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Mer 1 Fév 2012 - 8:54 | |
| Salut Pan59 Tu le fais en Panoramic ? | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Prononciation de texte. Mer 1 Fév 2012 - 17:08 | |
| | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Mer 1 Fév 2012 - 18:04 | |
| Ok Bravo pour ton application^^ Je vais pouvoir le tester car j'ai des amis qui programment en espagnol et je comprend rien à leurs commentaires En plus j'ai mes futurs jeux à traduire en polonais grace à toi^^ Je trouve super ce que tu partages sur ton site pour faire connaître la culture polonaise Très belle culture^^ J'ai testé la traduction de : Un langage de programmation super pour les jeux. Il me demande de mettre une ponctuation. J'ai essayé avec le point d'exclamation (!) et il répète la même chose^^ Ton site est bien mais fait trop débutant du début d'internet, il faudrait que tu le refasse en CSS pour faire bien, surtout que de plus en plus les frames vont disparaitre dans les navigateurs, à cause des nombreuses fonctions nouvelles des navigateurs. Sinon j'ai une question technique, le programme que j'ai téléchargé se lance mais derriere il y a toujours cette fenetre dos qui commande au programme on dirait, il n'y a pas moyen de l'enlever ? Sinon tu peux le programmer en un autre langage pour la version hors ligne. [img] [/img] La traduction "c'est vrai" c'est quand j'ai cliqué sur "traduire en espagnol"... | |
|
| |
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Mer 1 Fév 2012 - 19:13 | |
| Hallo Pan59, glückwunsch zu deiner Webseite. Warum gibst du die nicht bei deinem Profil ein ? Severin Hello Pan59, congratulations to your website. Why do not you give the one on your profile ? Severin Bonjour Pan59, Félicitations à votre site Web. Pourquoi ne pas vous donner l'un sur votre profil ? Severin | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Logiciel de traduction. Mer 1 Fév 2012 - 21:02 | |
| Bonjour Exdragon.
Je viens de mettre en ligne une nouvelle version, qui corrige un petit bug de traduction.
Désolé, mais je ne connais pas du tout le CSS. Et j'avoue qu'en ce moment, je n'ai pas vraiment le temps de l'apprendre. Le lancement du logiciel se fait par la commande java 'java.exe', il ne m'est donc pas possible de la supprimer dans la fenêtre DOS.
Je suis par contre preneur pour toute demande d'amélioration.
Amicalement. | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Logiciel de traduction. Mer 1 Fév 2012 - 21:03 | |
| Bonjour Séverin.
Désolé, mais je ne comprends pas votre demande. Merci de la reformuler, svp.
Amicalement.
| |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Mer 1 Fév 2012 - 21:47 | |
| Je voulais dire que ton programme se fait en java et lance cette fenetre dos en arriere plan ce qui ne fait pas pro et encombre l'écran pour rien, par contre si tu refais ton programme en un autre langage ça ferait mieux Je ne connais pas assez Panoramic ni les subtilités de ton programme pour savoir si tu pourrais le refaire avec panoramic par contre^^ Mais tu peux choisir aussi un autre langage : Delphi, turbo-pascal, le C, etc, qui te feront un joli executable sans fenetre dos derriere. | |
|
| |
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Jeu 2 Fév 2012 - 20:09 | |
| Eventuell könntest du Pan59 und mir noch einmal helfen??? Severin | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Jeu 2 Fév 2012 - 20:52 | |
| Je regarderai ton problème ce soir ou demain.
Ich werde Dein Problem heute abend oder morgen untersuchen. | |
|
| |
pan59
Nombre de messages : 367 Age : 67 Localisation : Wattignies Date d'inscription : 16/10/2011
| Sujet: Logiciel de traduction. Sam 4 Fév 2012 - 20:18 | |
| Bonsoir.
Afin de ne pas faire apparaître le texte dans la fenêtre DOS, il suffit d'ajouter la ligne suivante (en 1ère ligne du fichier 'polonais.bat'):
@echo off | |
|
| |
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Ven 30 Mar 2012 - 22:40 | |
| @ Klaus Kannst du mir helfen ? Wenn ich das Proramm starte, geht es gut. Bei einem Neustart kommen Fehlermedungen. Danke Severin - Code:
-
label fin ' ' *** Form 0000 **************************************************************** full_space 0 on_close 0,fin ' dim res% :' = dll_call4("Speak",addr(txt$),Volumen%,Geschwindigkeit% Sprache%) dim txt$ :' = zu sprechenden Text dim v% :' = Die Geschwindigkeit der Lieferung (-10 ... 10, Normalwert: 0) dim vol% :' = Lautstärke (0 ... 100, Mittelwert: 50)
dim i ' ' txt$="Bonjour Messieurs dames! C'est une belle journée!" txt$="Das ist ein Programm von Klaus. Es dient der Sprachausgabe!" ' v% =-5 vol%=70 ' dll_on "sapi.dll" ' ' res% = DLL_CALL1("SpeakMode",0) : ' mode synchrone res% = DLL_CALL1("SpeakMode",1) : ' mode asynchrone ' for i=1 to 250 print "a"; if i=60 res%=DLL_CALL4("Speak",adr(txt$),vol%,v%,0) res%=DLL_CALL4("Speak",adr(txt$),vol%,v%,0) end_if next i end
fin: res% = DLL_CALL1("SpeakMode",0) dll_off return END ' ****************************************************************************** ' ****************************************************************************** Um die Betriebsart wählen: res% = dll_call1 ("SpeakMode"%-Modus) mode% = Wahl zwischen "synchron" und "asynchron" 0 = synchrone Dies ist der Standardmodus, wenn die Funktion nicht aufgerufen wird. 1 = asynchrone ' Im synchronen Modus, führt das Programm eine vollständige Lektüre des Textes vor der Rückkehr vorgelegt. ' Im asynchronen Modus wird die Leseanforderung an das synthetische Sprache-System versandt und wir Führt eine sofortige Rückkehr in das aufrufende Programm zurück, während die Sprache weiter zu entfalten. ' Im asynchronen Modus, können Sie mehrere Anrufe zu "sprechen" ohne zu warten, für die Nachrichten oder bereits im Gange. ' WARNUNG! ! Diese Funktion wählt den asynchronen Modus, die einen starken Einfluss auf das Programm Panorama hat ! Drehen im asynchronen Modus, verschieben sich nicht SAPI.dll oder stoppen Sie das Programm ohne gebügelt Panoramic synchron durch den Aufruf dieser Funktion mit dem Parameter 0 (Null)! Ansonsten können die Ergebnisse unvorhersehbar sein und lernen Sie den Absturz von Speicher Verletzung, da der Agent synthetische Sprache der Link zu seiner verloren haben "Master."
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Ven 30 Mar 2012 - 23:12 | |
| Bei mir funktionniert Dein Programm fehlerfrei. Ich habe für alle Fälle die DLL neu auf MYDRIVE geladen. Hole sir Dir dort wieder und versuche es noch einmal. Habe leider keine bessere Idee, da bei mir alles normal verlaïuft, auch bei mehrmaligem Starten des Programmes. | |
|
| |
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Ven 30 Mar 2012 - 23:49 | |
| @ Klaus Ich bin dumm wie ein Brot. DLL im Falschen Verzeichnis. Severin | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte Ven 30 Mar 2012 - 23:50 | |
| Kann passieren. Kein Problem... | |
|
| |
Contenu sponsorisé
| Sujet: Re: Nouvelle DLL SAPI.dll pour prononcer un texte | |
| |
|
| |
| Nouvelle DLL SAPI.dll pour prononcer un texte | |
|