Description détaillée des fonctions de la bibliothèque dynakit

Je décris dans cette page, toutes les fonctions de dynakit.cpp, dont vous trouverez les prototypes dans dyna.h

Le lien suivant vous permet de consulter le code des fonctions de dynakit.cpp Vous reviendrez ensuite dans cette page, par AL+FLECHE_GAUCHE, pour consulter les aides détaillées sur ces fonctions.

source dynakit.cpp : code des fonctions de la bibliothèque

Les liens qui suivent donnent une description détaillée sur les fonctions de dynakit.cpp Pour chaque fonction, j'indique le prototype, suivi par une description rapide, puis on trouve la signification des paramètres (arguments de la fonction) On donne ensuite la signification de la valeur renvoyée par la fonction. Enfin, on fait des remarques et on donne des exemples, s'il y a lieu, sur l'utilisation de la fonction. On termine par l'indication des fonctions que l'on peut consulter pour un approfondissement (voir aussi)

fonction init

fonction initdipho

fonction lonwav

fonction charger

fonction mid

fonction lmid

fonction hdrdata

fonction lonliste

fonction extraire

fonction diredyna

fonction gram

fonction lire

fonction ficlonliste

fonction initlonliste

fonction chemin

fonction formuler

fonction epeler

fonction direwav

fonction entrerpage

fonction donnerligne

fonction isoler

fonction chiffre

fonction centaine

fonction coder

fonction coderphr

fonction entrer

fonction sortir

fonction dynaplay

fonction mciplay

fonction saisirpara

fonction saisirparamuet

fonction ajouter

fonction couper

fonction copier

fonction mciplaymot

fonction synthese

fonction analyse

fonction indication

fonction htmind

fonction executerind

fonction init Prototype : int init(char *ficinit) dans dyna.h Description : initialise les paramètres d'environnement Paramètres : ficinit, nom du fichier d'initialisation Remarques : Les paramètres d'environnements sont des variables globales, déclarées dans dynavar.h La fonction init initialise tous ces paramètres par défaut. Elle recherche ensuite un fichier d'initialisation, dont le chemin est dans la chaîne ficinit. Si ce fichier n'est pas trouvé, la fonction renvoie la valeur 0, et les paramètres d'environnement ont les valeurs définies par défaut. Sinon elle recherche des valeurs des paramètres d'environnement, définies dans ce fichier d'initialisation. On utilise les fonctions entrerpage et saisirparamuet à cet effet. Enfin, la fonction init renvoie la valeur 1 Remarque supplémentaire : La syntaxe, pour définir un paramètre d'environnement, dans le fichier d'initialisation, est : para=valeur Par exemple une ligne du fichier d'initialisation peut être : chembase=\sv6\ Elle permettra d'affecter la chaîne \sv6\ à la variable globale chembase, qui contient le chemin du répertoire de base, dans lequel se trouveront toutes les données sonores. Par défaut, chembase contient la chaîne \sv3\ Les paramètres qui ne sont pas définis dans le fichier d'initialisation, conservent leur valeur par défaut (initialisation du fabriquant) L'intérêt de la fonction init, est de permettre de choisir un environnement adapté à une application, à partir d'un fichier texte, qui peut facilement être créé par un éditeur ordinaire pour DOS, ou pour WINDOWS Un exemple de fichier d'initialisation est donné par le fichier dynakit.ini, du sous-répertoire source de dynakit. Utilisez de préférence un éditeur ASCII pour DOS, si vous voulez écrire dans ce fichier, des caractères accentués, ou dont le code ASCII est supérieur à 127 (caractères étendus) En effet, les codes iso, unicode... ne sont pas transformés en code ASCII par la fonction init. Ceci est volontaire, pour permettre d'utiliser tous les caractères ASCII, qui peuvent figurer par exemple dans la chaîne listesep, qui définit les séparateurs des mots. Ceci est essentiel pour la lecture correcte des formules (en mathématiques, en musique...) Voir aussi : entrerpage saisirpara saisirparamuet fonction initdipho Prototype : long initpho(char *nompho,char diphonem,char *listedipho,long *londipho) dans dyna.h Description : La fonction initdipho charge en mémoire vive, le tableau de caractère diphonem, qui contient les octets d'une source .wav Paramètres : nompho, nom du fichier .wav qui contient la banque de phonèmes, qui sera chargé dans le tableau diphonem. diphonem, un tableau de caractère de grande taille, qui contiendra les octets de la banque de phonèmes. listedipho, un tableau qui contiendra la liste des noms des phonèmes londipho, un tableau de type long, qui contiendra les positions successives, en octets, des phonèmes de la liste, dans le fichier .wav de la banque de phonème. Return : La fonction renvoie le nombre d'octets copiés dans la source .wav, ou 1 en cas d'erreur. Remarques : Les tableaux diphonem, listedipho et londipho sont utilisés par la fonction diredyna, pour les modes de lecture définis par imode = 0 1 ou 2 Ces modes de lecture utilisent la synthèse vocale, qui a besoin de ces données.
fonction lonwav Prototype : long lonwav(char *ficwav) dans dyna.h Description : La fonction lonwav calcule la longueur, en octets, du fichier .wav indiqué. Paramètres : ficwav, contient le chemin du fichier .wav à analyser. Return : La fonction lonwav renvoie la longueur, en octets, du .wav, ou 0 si le fichier n'est pas trouvé, ou 1, s'il y a une erreur dans le header du .wav Remarques : Les octets 5,6,7,8 et 41,42,43,44 du header d'un .wav, permettent de calculer la longueur du .wav de 2 manières. Quand le calcul redonne la même valeur, la fonction lonwav retourne la longueur totale du .wav Comme le header possède 44 octets, la longueur des données qui suivent ce header, est la longueur totale moins 44. Voir aussi : hdrdata charger fonction charger Prototype : long charger(char *fic,char *pho) dans dyna.h Description : Charge en mémoire vive, le contenu des octets du fichier fic, dans le tableau de caractères pho. Paramètres : fic, contient le chemin du fichier à charger. pho, tableau de caractères, qui contiendra les octets chargés, en cas de succès. Return : La fonction chartger renvoie la longueur en octets, du fichier chargé, ou 0 en cas d'erreur. Un test sert pour éviter les dépassement de capacité du tableau pho. Ici, on suppose que pho est de taille supérieure à 100000. Vous remplacerez le test par un test de votre choix, si besoin est. Remarques : Quand le fichier est un .wav, la fonction charger affecte la valeur du paramètre ivoix, aux octets 25 et 29 du tableau pho. Ceci permet de règler la hauteur de la voix, grâce à ivoix. Il est conseillé de choisir ivoix entre 30 et 60. Voir aussi : lonwav hdrdata diredyna fonction mid Prototype : char mid(char *cible,char *source,int d,int n) dans dyna.h Description : La fonction mid coupe la portion de la chaîne de caractères source, depuis l'octet de début d, en prenant n octets, le résultat étant placé dans la chaîne cible. Paramètres : cible, chaîne résultat fonction lmid Prototype : char lmid(char *cible,char *source,long d,long n) Description : Permet de couper une portion de la chaîne source, depuis la position d, en prenant n octets, que l'on place dans la chaîne cible. Cette fonction est analogue à la fonction mid, mais permet de traiter des tableaux de caractères, de longueur plus grande. Voir aussi : mid entrer sortir entrerpage fonction hdrdata Prototype : long hdrdata(char *hdr,char *data,long lon) dans dyna.h Description : La fonction hdrdata calcule le header qui correspond à la longueur lon, pour les données data, puis remplit le tableau hdr ace header suivi de la portion de donnée choisie. Paramètres : hdr, tableau de caractères qui contiendra le header suivi des données de longueur choisie par l'argument lon. data, tableau de caractères qui contient des données wav (sans header) lon, longueur en octets de la portion des données du tableau data qui sera copiée dans hdr à la suite de son header. Return : La fonction hdrdata renvoie la longueur de hdr, ou 44 en cas d'erreur ou de données vides. Remarques : Les octets 5,6,7,8 et 41,42,43,44 du tableau hdr, sont calculés à partir de la longueur indiquée par l'argument lon. Les octets 25 et 29 du tableau hdr sont définis par la variable globale ivoix, qui définit la hauteur de la voix. On copie à la suite des 44 premiers octets de hdr, les octet du tableau data, depuis le début, jusqu'à la longueur indiquée par l'argument lon. Remarquez que le premier octet de hdr est dans hdr[0] et non pas dans hdr[1] La fonction hdrdata peut servir pour traiter les données d'un .wav, en changeant la hauteur de la voix, ou en raccourcissant la longueur des données... Par exemple, on peut l'utiliser pour un moteur de synthèse musicale, pour raccourcir la longueur des notes de musique, en les ajustant à partir d'une banque qui contient uniquement des rondes, pour en faire des blanches, des noires... Remarque importante : Il faut que hdr ait la taille suffisante pour recevoir le nombre d'octets choisis. Sinon, le résultat peut être imprévisible. On a placé un test, qui correspond à un tableau hdr dont la dimension est supérieure à 100000 octets. Vous ajusterez ce test suivant vos besoins, conformément à la taille du tableau hdr que vous voulez remplir. Voir aussi : lonwav charger diredyna fonction lonliste Prototype : int lonliste(char *liste,long *indice) dans dyna.h Description : La fonction lonliste remplit le tableau indice, avec les positions en octets, des phonèmes de la banque de phonèmes. Ces valeurs sont définies par la chaîne liste, qui peut être obtenue à partir du fichier kitpho.ind Paramètres : liste, chaîne de caractères qui contient la suite des noms des phonèmes, chacuns de ces nom étant suivis de sa position dans la banque .wav, et séparé du nom par le symbole # indice, un tableau de long qui sera rempli par les positions trouvées dans la chaîne liste. Return : La fonction lonliste renvoie le nombre de phonèmes de la liste, qui est limité à 200, ce qui est largement suffisant pour les applications. Remarques : Les fichiers kitpho.wav et kitpho.ind du sous-répertoire source de dynakit, définissent la banque de phonèmes, et la liste des noms et des indices de ces phonèmes. Ce sont les 34 phonèmes qui servent pour le moteur de synthèse vocale pour le français. Ils ont été créés avec l'outil wavind de dynakit. Vous ferez de même pour créér votre banque personnelle. Pour cela, vous commencerez par enregistrer les .wav de votre banque, avec un outil standard d'enregistrement. Si vous ne possèdez pas de micro, vous pouvez utiliser des .wav existants, en les traitant éventuellement avec l'outil wavkit.exe Cet outil vous permet également de joindre tous les .wav choisis dans un seul fichier prv.wav Renommez alors prv.wav d'un nom de votre choix, comme musipho.wav par exemple, pour une banque de notes de musique. Utilisez ensuite wavind.exe, pour créer un fichier prv.ind, qui contiendra les noms de vos phonèmes et leur position dans votre banque musipho.wav Une aide en ligne vous explique comment procèder dans wavind.exe, pour crééer ce fichier prv.ind Renommez enfin prv.ind d'un nom de votre choix, comme musipho.ind par exemple. Pour disposer de votre banque de phonèmes personnelle dans une application, vous utiliserez la fonction initdipho au début de votre programme. Vous pouvez vous servir des exemples winmain.cpp des différents exemples que je vous propose dans les sous-répertoires source, en les modifiant à votre guise. Dans ce cas, remplacez les noms des fichiers kitpho.wav et kitpho.ind dans dynainit.cpp par les noms des fichiers que vous avez construits, par exemple musipho.wav et musipho.ind Pour éviter les confusions par la suite, renommez dynainit.cpp d'un nom de votre choix, par exemple musiinit.cpp, et modifiez l'instruction #include "dynainit.cpp" dans votre winmain, en la remplaçant par #include "musiinit.cpp" Remarque importante : Ne crééz pas des banques trop volumineuses, car vous risquez des dépassements de capacité ! Une banque de 100000 octets permet déja d'avoir un bon nombre de phonèmes. Si les phonèmes sont assez volumineux, comme par exemple des notes de musique d'un instrument, vous pouvez augmenter légèrement la taille de la banque, ou mieux créer plusieurs banques que vous chargerez suivant les besoins. Dans le sous-répertoire source de musidyna, j'ai opté pour des banques de 120000 octets. Par mesure de sécurité, adaptez les tests sur le nombre maximum d'octets à charger dans les tableaux hdr, diphonem,data... Voir aussi : init initdipho charger fonction extraire Prototype : long extraire(char *mot,char *liste,char *hdrliste,long *lonliste,char *data) dans dyna.h Description : La fonction extraire place dans la chaîne data, les données extraites de la banque de phonèmes contenues dans hdrdata, associées au phonème de nom défini par la chaîne mot. Paramètres : mot, contient le nom du phonème à extraire de hdrliste. liste, contient la liste des noms des phonèmes de la banque hdrliste. hdrliste, contient les octets du .wav qui correspond à la banque de phonèmes (avec son header) lonindice, contient la liste des longueurs des phonèmes de la banque hdrliste. data, contiendra les octets des données qui correspondent au phonème recherché dans la banque hdrliste. Return : La fonction extraire renvoie le nombre d'octets copiés dans la chaîne data, ou 0 si lenom contenu dans la chaîne mot n'est pas un phonème de la liste. Remarque : Avant d'utiliser la fonction extraire, vous devez avoir initialiser une banque de phonèmes, grâce à la fonction initdipho. Vous pouvez recharger une banque de phonème de votre choix, n'importe où, dans le programme. Le tableau data doit être assez grand pour contenir les octets des données associées au phonème recherché. La fonction extraire est utilisée dans la fonction diredyna. Voir aussi : initdipho diredyna fonction diredyna Prototype : int diredyna(char *phr, char *listedipho,char *diphonem, long *londipho,char *hdr) dans dyna.h Description : La fonction diredyna permet de lire une chaîne de caractères, avec les modes définis par les paramètres d'environnement courants. Paramètres : phr, chaîne qui contient la phrase à lire oralement. listedipho, liste des phonèmes de la banque. diphonem, tableau des phonèmes. londipho, tableau des longueurs des phonèmes. hdr, tableau avec son header, qui contiendra le phonème trouvé. Return : La fonction diredyna renvoie 0 Les paramètres d'environnement utilisés sont : imode entre 0 et 8 pour le mode de lecture (texte, chiffre texte, dictée, formule, caractère, mot) ivoix entre 30 et 60 de préférence, pour la hauteur de la voix. iparle entre 0 et 5, pour le mode muet synchrone ou asynchrone, normal ou mci. ilang entre 0 et 8 pour le choix de la langue (français, espagnol, italien, anglais, musique, allemand, mathématiques, arabe, langue personnelle) Pour imode=1 et 2, la chaîne phr est traitée par les fonction isoler et chiffre. Pour imode = 0 1 et 2, la chaîne phr peut être traitée par le moteur de synthèse gram. Dans dynakit.cpp, on a placé les symboles // devant l'appel du moteur gram, car vous devrez construire par vous-même le moteur personnalisé qui traitera vos phonèmes. Par exemple, consultez les choix que j'ai faits dans les applications pour la synthèse vocale pour le français et pour la musique, dans les fichiers dynagram.cpp et dynamusi.cpp, des sous-répertoires source de gramdyna et de musidyna. Pour imode = 2 (mode dictée) les ponctuations sont lues oralement, tandis que pour imode = 0 et 1, elles sont transformées en silences, pour améliorer la compréhension du texte synthétissé. Pour iparle = 1, les .wav qui correspondent au traitement de phr, sont prononcés successivement, en utilisant la fonction PlaySound de mmsystem.h, avec le paramètre SND_MEMORY. Pour iparle = 2 et 3, la fonction diredyna crée le fichier prv.wav ou prvi_j.wav, qui contient l'écho sonore de la chaîne prv, ainsi que le fichier prv.txt ou prvi_j.txt, qui contient la chaîne phr Elle crée aussi les fichiers prv.ind et prvi_j.ind, qui contiennent les indications pour la synthèse et l'analyse de phr Ces fichiers sont placés respectivement dans le répertoire défini par chembase, pour iparle = 2, et dans le répertoire courant pour iparle = 3. I et j sont les valeurs courantes des paramètres d'environnement ipage et iligne. Tous ces fichier commencent par le préfixe prv, pour faciliter leur effacement par la commande erase prv*.* Une fois le .wav créé, il est lu par la fonction PlaySound en mode asynchrone, ce qui permet d'arrêter la lecture sonore, par l'appel à la lecture d'un nouveau .wav Il n'est par contre pas possible d'arrêter la lecture sonore en mode synchrone ! Remarque : La fonction diredyna utilisera la banque de phonèmes courante, pour imode = 0 1 et 2. Si vous changez de banque, il faudra éventuellement modifier diredyna, si celle-ci doit utiliser une autre synthèse que celle définie par la fonction gram. Les sources sonores utiles pour la lecture de phr, sont recherchées dans la banque courante, dans les répertoires de la langue courante, ou dans le répertoire wav du répertoire de base, ou dans le répertoire où se trouve la commande qui utilise diredyna, suivant le mode défini par imode. Pour imode = 4 (mode formule) les mots de longueur 1 sont cherchés dans le répertoire de la langue courante, et les mots plus longs dans le répertoire wav. Pour imode = 5, les caractères de phr sont recherchés (par leur code ASCII) dans le répertoire de la langue courante. Pour imode = 6, les caractères de phr sont recherchés (par leur code ASCII) dans le répertoire courant Pour imode = 7, les mots de phr sont recherchés dans le répertoire de la langue courante. Pour imode = 8, les mots de phr sont recherchés dans le répertoire courant. La chaîne globale listesep, contient la liste des séparateurs de mots. Cette liste est utilisée pour reconnaître le début et la fin des mots, enmode formule et en mode mot (imode = 4 7 et 8) Voir aussi : extraire copier ajouter sortir gram isoler chiffre formuler epeler direwav lire fonction gram Prototype : int gram(char *phr) dans dyna.h Description : La fonction gram sert pour appeler un moter de synthèse. Ce moteur remplacera la chaîne phr, par une suite de phonèmes, qui seront traités pour la lecture sonore, par la fonction diredyna. Paramètre : phr, chaîne à traiter par le moteur de synthèse Remarques : La fonction gram peut servir pour les modes de lecture avec une synthèse vocale, dans diredyna. Elle est utilisée dans les exemples de gramdyna et musidyna, avec les moteurs gramm00 et musigram respectivement. Vous développerez votre moteur personnel et vous l'introduirez dans la fonction gram. Cela permet de ne pas modifier la fonction diredyna, qui utilisera avec la fonction gram, le moteur que vous y aurez placé. Voir aussi : diredyna initdipho ficlonliste initlonliste fonction lire Prototype : int lire(char *phr) dans dyna.h Description : lecture sans moteur de synthèse. Paramètre : phr, chaîne à lire. Return : La fonction lire renvoie 0 en cas de succès Remarques : Pour imode inférieur ou égal à 4, la fonction lire utilise le mode formule pour la lecture de phr. Pour imode=5 et 6, on utilise la fonction epeler, pour lire phr en mode caractères. Pour imode = 7 et 8, on utilise la fonction direwav, pour lire phr en mode mot. Voir aussi : formuler epeler direwav diredyna fonction ficlonliste Prototype : fonction initlonliste Prototype : fonction chemin fonction formuler Prototype : int formuler(char *phr) dans dyna.h Description : La fonction formuler lit la chaîne phr en mode formule, dans le mode courant défini par ilang et iparle. Paramètre : phr, chaîne à lire. Return : La fonction renvoie 0 en cas de succès Remarques : Les mots de phr sont recherchés, en utilisant la chaîne listesep, qui contient les symboles de séparation. Quand un mot ou un séparateur est trouvé, il est lu oralement, en recherchant sa source .wav dans le répertoire de langue, pour les symboles ou mots d'un seul caractère, ou dans le répertoire wav, pour les mots de plus d'un caractères. La chaîne listesep est initialisée par défaut, ou dans le fichier dynakit.ini, par la fonction init. Pour les mathématiques, on choisira comme séparateurs de mots, les symboles grecs, les parenthèses, les crochets et les accolades, les caractères de ponctuation et les chiffres. On placera dans le répertoire wav, les .wav dont les noms correspondent aux noms des fonctions usuelles. Voir aussi : dynaplay init epeler direwav diredyna fonction epeler Prototype : int epeler(char *phr) dans dyna.h Description : La fonction epeler lit les caractères de phr. Paramètre : phr, chaîne à lire. Return : La fonction epeler renvoie 0 en cas de succès Remarques : Les échos sonores des caractères de phr, sont recherchés parmi les .wav dont le nom correspond à leur code ASCII. Pour imode=5, ils sont recherchés dans le répertoire de la langue courante, défini par la chaîne globale chemlang. Pour imode = 6, ils sont recherchés dans le répertoire courant. Quand un .wav n'est pas trouvé, je le signale par la fonction MessageBox de windows.h Les caractères sont lus dans le mode défini par iparle, en utilisant la fonction dynaplay. Voir aussi : dynaplay chemin formuler direwav diredyna fonction direwav Prototype : int direwav(char *phr) dans dyna.h Description : La fonction direwav lit la chaîne phr, dans le mode mot qui correspond à imode = 7 ou 8 Paramètre : phr, chaîne à lire. Remarques : La chaîne globale listesep est utilisée pour séparer les mots. Les mots sont recherchés comme des .wav dont le nom correspond à ce mot. Ils sont recherchés dans le répertoire de la langue courante pour imode = 7, et dans le répertoire courant pour imode = 8 Ils sont lus dans le mode défini par iparle, en utilisant la fonction dynaplay. Voir aussi : dynaplay chemin formuler epeler diredyna fonction entrerpage Prototype : fonction donnerligne Prototype : fonction isoler Prototype : int isoler(char *ent,char *sort) Description : La fonction isoler transforme les caractères isolés, pour qu'ils soient lus correctement par la synthèse vocale définie par le moteur gram. Paramètres : ent, phrase à traiter. sort, résultat du traitement. Remarque : La fonction isoler est utilisée pour les modes chiffre texte et dictée. Voir aussi : diredyna fonction chiffre Prototype : int chiffre(char *rep,char *ent,char *sort) dans dyna.h> Description : La fonction chiffre transforme la chaîne ent, qui peut contenir des nombres, en une chaîne de caractères, dans laquelle les nombres sont écrits en lettres. Paramètres : rep, paramètre inusité (conservé pour une raison de compatibilité avec une ancienne version de cette fonction) ent, chaîne à transformer. sort, résultat de la transformation. Remarques : La fonction chiffre est utiliser pour les modes de lecture des formules, pour le mode chiffre texte et pour le mode dictée. Voir aussi : formule diredyna fonction centaine Prototype : int centaine(char *ent,char *sort) dans dyna.h Description : La fonction centaine transforme un nombre compris entre et , écrit en chiffre, en un nombre écrit en lettres. Paramètres : ent, chaîne qui contient le nombre écrit en chiffres. sort, chaîne qui contient l'écriture en lettres, du nombre contenu dans la chaîne ent. Remarques : La fonction centaine est utilisée par la fonction chiffre. Elle sert pour la lecture sonore en mode formule, en mode chiffre texte et Voir aussi : chiffre diredyna fonction coder Prototype : int coder(char *listechar,char *listecode,char *l1) dans dyna.h Description : La fonction coder sert pour coder (ou décoder) le caractère contenu dans l1. Paramètres : listechar, chaîne qui contient les caractères qui seront remplacés par les caractères de listecode, situés à la même position, dans listechar et dans listecode. listecode, chaîne qui contient les caractères, qui remplaceront le caractère l1, si celui-ci se trouve dans listechar. l1, chaîne qui contient un seul caractère à remplacer par le caractère correspondand de listecode, si l1 est trouvé dans listechar. Return : La fonction coder renvoie le code ASCII du caractère de remplacement. Remarques : La fonction coder est utilisée pour rendre compatibles des codages différents, comme par exemple les codes ASCII et ISO, utilisés respectivement sous DOS et sous WINDOWS. Pour cela, j'ai placé dans les fichiers listecha.prv et listecod.prv de dynakit\source, la liste des caractères accentués usuels utilisés avec leurs traduction ASCII et ISO. Ces chaînes sont utilisées dans les applications, grâce à la fonction entrer, qui les copie dans listechar et listecode. Vous pouvez définir un codage personnel, en écrivant dans ces chaînes, une liste de caractères de votre choix. Il devient alors très facile de remplacer n'importe quel caractère ASCII, par n'importe quel autre caractère ASCII. Vous pourrez par exemple, utiliser cette remarque, pour coder le clavier ASCII de la page de code standard du français, par n'importe quelle autre combinaison de touches ! Ceci peut être utile pour faciliter certaines saisies, en regroupant les touches spécifiques à certaines actions, pour qu'elles soient plus faciles d'accès. Voir aussi : coderphr entrer fonction coderphr Prototype : int coderphr(char *listechar,char *listecode,char *phr) Description : La fonction coderphr code (ou décode) la chaîne phr, en utilisant les listes indiquées. Paramètres : listechar, chaîne qui contient les caractères à décoder. listecode, chaîne qui contient les caractères de remplacement. phr, chaîne que l'on veut coder avec les caractères de listecode. Return : La fonction coderphr écrit le résultat du codage dans la chaîne phr. Remarques : La fonction coderphr utilise la fonction coder, pour coder successivement les caractères de phr. Quand un caractère de phr est trouvé dans listechar, il est remplacé par le caractère de listecode, qui est situé à la même position que le caractère trouvé dans listechar. Voir aussi : coder fonction entrer Prototype : int entrer(char *phr,char *fic) dans dyna.h Description : La fonction entrer copie la première ligne du fichier fic dans la chaîne phr. Paramètres : phr, chaîne qui contient la première ligne du fichier fic, en cas de succès. fic, chaîne de caractères, qui contient le chemin du fichier dont on désire copier la première ligne dans phr. Return : La fonction entrer renvoie 0 en cas de succès, ou 1 sinon. Voir aussi : entrerpage, donnerligne, sortir fonction sortir Prototype : int sortir(char *phr,char *fic) dans dyna.h Description : La fonction sortir copie la chaîne phr dans le fichier fic Paramètres : phr, chaîne à sortir. fic, chaîne de caractères qui contient le chemin du fichier, dans lequel sera écrit la chaîne phr. Return : La fonction sortir renvoie 0 en cas de succès et 1 sinon. Voir aussi : entrer entrerpage donnerligne fonction dynaplay Prototype : int dynaplay(char *mot,char *hdr) dans dyna.h Description : La fonction dynaplay lit le mot indiqué, en chargeant le .wav correspondant dans le tableau hdr. Paramètres : mot, mot à lire. hdr, chaîne de caractère qui contiendra les octets du .wav, avec son header. Return : Remarques : La lecture est faite dans le mode défini par la variable globale iparle. iparle = 0 correspond au mode muet, pour lequel dynaplay renvoie 0, sans écho sonore. On charge le .wav avec la fonction charger, et on utilise la fonction PlaySound de mmsystem.h, pour lire le .wav chargé en mémoire vive. La lecture est faite en mode synchrone ou en mode asynchrone, pour iparle supérieur à 0. La lecture se fait avec la valeur courante de la variable globale ivoix, qui permet de choisir la hauteur de la voix. Ce paramètre ivoix est en effet utilisé par la fonction charger. Voir aussi : charger fonction mciplay Prototype : fonction saisirpara Prototype : int saisirpara(char *.phr) dans dyna.h Description : La fonction saisirpara recherche les paramètres d'environnement, contenus dans la chaîne phr, puis affecte leurs valeurs aux variables globales correspondantes. Paramètre : phr, chaîne de caractères dans laquelle sont recherchés les paramètres d'environnement. Return : Remarques : Les paramètres sont recherchés par leur nom suivi du signe = Quand on rencontre un paramètre suivi du signe égal dans la chaîne phr, la valeur qui suit le signe égal est copiée quand le paramètre est du type chaîne de caractères, ou transformé en un entier, quand le paramètre est un int. Un écho sonore indique la modification d'un paramètre d'environnement. Voir aussi : saisirparamuet fonction saisirparamuet Prototype : int saisirparamuet(char *phr) Description : La fonction saisirparamuet est analogue à la fonction saisirpara, mais aucun écho sonore n'est envoyé quand un paramètre d'environnement est modifié. Remarque : Cela permet de pouvoir changer l'environnement en cours de lecture des données, sans que l'usager se rende compte des modifications de paramètres. Des exemples sont donnés dans le fichier demo.txt des répertoires ou sous-répertoires de gramdyna et musidyna Voir aussi : saisirpara fonction ajouter Prototype : long ajouter(char *data1,long ldata1,char *data2,long ldata2,char *mot,char *indphr) dans dyna.h La fonction ajouter permet de placer des données à la suite d'un tableau. Voir aussi : couper copier mid lmid fonction couper Prototype : long couper(char *data1,long ldata1,char *data2,long ldata2,long d,long n) dans dyna.h Description : La fonction couper permet de sélectionner une partie d'un tableau de données. Voir aussi : ajouter copier mid lmid fonction copier Prototype : int copier(char *hdr,long lhdr,char *ficwav) dans dyna.h Description : la fonction copier copie les données d'un .wav avec son header, contenues dans la chaîne hdr, dans le fichier dont le chemin est dans ficwav. Voir aussi : ajouter couper mid lmid charger fonction mciplaymot Prototype : DWORD mciplaymot(char *phrmot,char *ficmci,char *indphr,long lplus,long lmoins,int iflag) dans dyna.h Description : La fonction mciplaymot permet de lire des mots en mode mci, avec la possibilité de choisir la portion de la lecture sonore, grâce aux paramètres plus et moins. Voir aussi : mciplay diredyna fonction synthese Prototype : int synthese(char *indcou,char *texte,long ldeb,long lfin) dans dyna.h Description : La fonction synthese recherche les indications contenues dans une chaîne. Voir aussi : analyse indication htmind fonction analyse Prototype : int analyse(char *motind,char *indcou,char *texte,long ldeb,long lfin) dans dyna.h Description : La fonction analyse recherche les indications contenues dans une chaîne. Voir aussi : synthese indication htmind fonction indication Prototype : int indication(char *indcou,char *indsep,char *texte) dans dyna.h Description : La fonction indication donne les indications contenues dans une chaîne. Voir aussi : htmind fonction htmind Prototype : int htmind(char *pagehtm,char *indcou) dans dyna.h Description : La fonction htmind recherche les indications des liens d'une page html. Voir aussi : indication executerind fonction executerind Prototype : int executerind(char *indsep,char *fic) dans dyna.h Description : La fonction executerind utilise le suffixe du fichier indiqué, pour l'exécuter, quand ce suffixe est en association avec une commande utilitaire. Voir aussi : mciplay dynaplay retour au sommaire de la rubrique dynakit