Choix pour le codage et l'analyse de données informatiques

L'idée la plus naturelle, pour retrouver une portion quelconque, d'un document quelconque, est de placer dans un fichier texte, l'adresse du début de la portion sélectionnée, ainsi que sa longueur.

On analysera ensuite la portion sélectionnée, puis on la traitera avec des outils d'accessibilités adaptés au but recherché. Les données binaires nécessitent de connaître les formats et les règles, qui ont été choisis pour leur construction. Les fichiers qui contiennent des caractères (asci, unicode...) pourront être analysés plus simplement, avec un outil simple de reconnaissance des caractères.

Conventions de base

On a choisi les conventions de base suivantes, qui sont bien adaptés aux actions que l'on fera ultérieurement :

dans un fichier de suffixe .ind, dont le nom est identique à celui du fichier des données, onplace des indications sous la forme

$texte#adresselongueur

Les symboles $, dièse et tilde, sont choisis comme séparateurs de champs.

Le symbole $ est choisi pour reconnaître le début d'une indication. Une indication pourra être placée dans la chaîne texte, qui donnera, par exemple, des explications, sur la portions définie par l'adresse et la longueur, spécifiées par les 2 champs qui suivent cette indication.

Le symbole dièse est utilisé pour signaler la fin d'une indication, et permet de marquer le début de l'adresse en octet, de la portion de la donnée sélectionnée.

Le symbole tilde marque le début du nombre, qui représente, en octets, la longueur de la portion sélectionnée.

Exemple de fichier d'indications .ind

Par exemple, si la donnée est le fichier accord.wav, qui est une donnée sonore au format wav, on pourra placer dans un fichier accord.ind, les indications suivantes :

$accord de do majeur#1~8530$tonique do#1~2500$tierce mi:#2501~3000$quinte sol#5500~2500

Les indications et les adresses et longueurs des données qui s'y rapportent, permettront d'analyser très simplement le contenu du fichier .wav Pour cela, il suffira de faire pointer, un pointeur de caractère à l'adresse qui correspond à l'indication désirée, puis d'envoyer à la carte sonore, la portion de donnée de longueur correspondante, à partir de cette position du pointeur.

Cette dernière démarche, sera faite par un outil que l'on doit développer.

Cet outil demande au programmeur, de connaître les conventions pour l'écriture du header d'un .wav. Ce header (en tête) placé devant les données, contient les informations, qui permettent de spécifier à la carte sonore, le nombre d'octets à lire, ainsi que le paramètre de fréquence, utilisé pour cette lecture.

La reconnaissance du contenu sonore d'un .wav, par l'analyse de ses octets de donnée, n'est pas aisé, et de plus ce n'est pas notre objectif.

On choisit de reconnaître le contenu sonore d'une portion, simplement en l'écoutant.

Comment choisir une portion sonore d'une source .wav

Pour permettre à tout utilisateur, de choisir les indications qu'il désire affecter à toute portion du .wav, il suffit de créer un kit de traitement des sources sonores, qui lui permettra de sélectionner toute portion de son choix, de l'écouter.

Il recommencera par approximations successives, jusqu'à l'obtention d'une portion sonore satisfaisante, pour l'indication qu'il a en vue. Il pourra alors entrer le texte de son choix, qui sera écrit automatiquement par le programme utilitaire.

Il pourra répéter ces opérations, pour autant de portions sonores qu'il le désire, dans les limites prévues par l'utilitaire.

L'utilitaire wavkit

Cet utilitaire est la commande wavkit.exe, qui sera commenté en détail plus loin.

l'outil wavkit créera de lui-même, les indications que l'utilisateur aura choisies, dans un fichier texte .ind Il est important d'écrire les indications dans un fichier texte, plutôt que dans un fichier binaire, pour que tout utilisateur puisse éventuellement modifier ces indications, si bon lui semble. Il pourra ainsi ajouter, ou supprimer, ou modifier ces indications, avec un éditeur de texte ordinaire.

Utilitaires d'analyse et de synthèse des données sonores

On construira alors un analyseur d'indication, qui permettra de faire entendre la portion sonore, qui correspond au choix d'une indication.

On construira aussi un synthétiseur sonore, qui permettra d'assembler des portions associées à un choix d'indications. Ce synthétiseur permettra par exemble, de créer un .wav, qui contiendra un arpège, construit à partir des notes de l'accord de do majeur, avec un motif rythmique que l'on choisira. Dans ce cas, le fichier accord.wav apparaît comme une banque sonore, qui permet la synthèse de tout arpège de do majeur.

Exemples pour la synthèse vocale, l'analyse grammaticale...

On peut envisager des exemples plus généraux, comme une synthèse par mot, ou par phonèmes...

Un autre exemple est donné par un fichier texte, pour lequel on aimerait associer des commentaires à des parties du texte. On procédera comme ci-dessus. On pourra même envisager d'associer plusieurs fichiers d'indications, pour envisager des commentaires plus ou moins détaillés, ou pour graduer le niveau des explications...

Les indications pourront être simplement utilisées, comme un complément d'information, comme pour un double adressage. Elles permettront bien plus, comme dans le traitement des bases de données.

En résumé, on a choisi d'associer à chaque donnée, un fichier texte .ind, qui contient ce qu'il faut pour faire une analyse et une synthèse, qui seront utiles pour des applications pédagogiques, ou qui faciliteront l'accessibilité aux données.

On envisagera un codage plus riche, que celui indiqué par les 3 champs, associés aux symboles $ dièse et tilde. Pour une analyse grammaticale de texte, on peut par exemple, créer un dictionnaire dans lequel on affectera à chaque mot, un code qui permette de retrouver facilement sa nature (verbe, nom...) Le codage des textes est un domaine, qui a été largement étudié depuis longtemps.

On trouve des systèmes ingénieux, plus ou moins faciles à utiliser, avec les outils informatiques. Un code grammatical facilement utilisable par un programme, peut être constitué par un nombre, dont le premier chiffre représente la nature du mot, le deuxième chiffre le type,... On peut convenir pour le premier chiffre, que 1 signifie verbe, 2 signifie nom... Si le premier chiffre vaut 1, le deuxième chiffre représentera le groupe, le troisième chiffre représentera le mode, puis le temps, la personne...

Quand on aura choisi un système de codage des données, il faudra lui associer les outils de synthèse et d'analyse pour les traiter. La création de ces outils nécessite quelques connaissances en programmation.

Pour vous faciliter ce travail, je vous propose d'utiliser un moule, dans lequel vous n'aurez besoin d'écrire uniquement, que quelques lignes de code.

Si vous n'êtes pas intéressé par la programmation, vous pouvez vous contenter d'utiliser les outils que je mets à votre disposition.

Ces outils sont décrits dans la page suivante.

suivant : dynakit, un kit pour l'analyse et la synthèse des données

retour au sommaire