Je ne prétends pas donner plus, ici et maintenant, qu’une esquisse de tutoriel pour l’utilisation d’Emacs 21.4a dans un environnement sonore. Deux options sont possibles :
Signalons d’emblée que j’ai choisi actuellement la première plutôt que la deuxième solution parce qu’Emacspeak en dépit de ses innombrables qualités, présente le défaut d’être très mal adapté à une utilisation multilingue. Speechd-el en revanche, a été conçu dans l’optique de l’utilisation conjointe de plusieurs langues.
En conséquence, le document relatif à Emacspeak n’a pas été mis à jour sinon un nettoyage purement technique consistant à réactualiser les références.
Les deux outils mentionnés plus haut, ont tout de même ceci en commun qu’ils sont des “extensions” d’Emacs 21.4a et que, par conséquent, leur utilisation, requiert quelques notions quant à l’utilisation d’Emacs lui-même. Nous donnons quelques conseils, que nous espérons les plus utiles possibles dans la sections III.1.
Rappelons qu’Emacspeak est un programme Emacs ; autrement dit qu’en lançant Emacspeak vous lancez en fait Emacs qui exécute le programme Emacspeak. Par conséquent vous utilisez une interface sonore de Emacs. Certaines commandes sont spécifiques d’Emacspeak comme nous en avons déjà mentionné certaines dans la section III.3.6.2 et à propos desquelles nous donnerons plus dé détails dans la section III.3.
D’autres sont simplement des commandes de Emacs qui sont adaptées par Emacspeak afin de produire, en plus de leur destination originelle un retour sonore comme nous l’avons aperçu dans la section III.3.6.1.
Dorénavant, nous ne distinguerons que s’il y a vraiment lieu, entre ces deux types de commandes et nous nous bornerons à parler des commandes de Emacs en prenant soin à chaque fois de spécifier quel type de retour sonore est produit par Emacspeak.
Le logiciel Emacs est certes, au départ, un éditeur de texte mais sont langage de programmation emacs-lisp a permis aux développeurs de le doter d’un grand nombre de possibilités supplémentaires disponibles dans une installation standard. Ainsi, Emacs est amené à manipuler un certain nombre d’objets différents dans un certain nombre de contextes différents.
J’ai également dans tout ce paragraphe, parlé de commandes. Emacs étant, au moins en fonctionnement normal, un logiciel interactif, une fois qu’il est lancé, même s’il exécute un certain nombre de tâches sans intervention de l’utilisateur, il attend cependant de celui-ci un certain nombre d’instructions. Nous verrons en détail dans la section III.1.2.
Répétons-le une dernière fois, Emacs étant, à l’origine au moins, un éditeur de texte, l’objet de base est bien évidemment le caractère. En pressant n’importe laquelle des touches du clavier correspondant à un caractère alphabétique « a b c A B C » etc, celui-ci est inséré dans le texte courant à la position où se trouve le curseur.
Si vous avez choisi de lire la version info ou html de cette documentation avec Emacspeak comme indiqué dans les sections III.3.2.2.2 et III.3.2.2.3 vous vous trouvez déjà dans une situation particulière où les manipulations précédentes ne sont pas possibles ! Veuillez m’excuser par avance, pour ce que vous pourrez assimiler à un manque de pédagogie. Cependant, vous touchez d’emblée au coeur de la spécificité de Emacs ! Vous remarquez que, si vous être en train de lire la version info du tutoriel et si vous pressez u, vous n’allez pas insérer un caractère “u” dans le texte que vous êtes en train de lire, mais remonter d’un niveau dans son arborescence. Sans détailler le fonctionnement des modes sous Emacs comme je le ferai un peu plus dans la section III.1.8, disons que le processus qui vous a conduit à charger la version info du tutoriel a réaffecté la touche « u » à une autre fonction que l’insertion du caractère « u ».
Si donc vous voulez bénéficier des possibilités d’insertion de caractères il vous faut changer de buffer actif (cf. III.1.4.)
Les plus hardis d’entre vous peuvent tenter la manipulation suivante :
Si donc vous êtes dans une situation où l’insertion de caractères est possible, ce qui sera le cas si vous avez simplement lancé Emacspeak, vous obtiendrez un écho sonore soit caractère à caractère, soit mot à mot (suivant les réglages d’Emacspeak (cf. III.3.6.) Ce dernier écho est obtenu lorsque vous pressez la touche <ESPACE> après avoir tapé un certain nombre de caractères qui sont alors regroupés et prononcés ensembles. Le type de résultat sonore obtenu dépend évidemment très fortement de la synthèse vocale que vous utilisez. Vous ne pouvez par exemple pas espérer qu’Emacspeak obtienne de votre synthèse vocale une prononciation à la française si vous utilisez une synthèse vocale anglophone ou réciproquement.
Nous avons déjà amplement mentionné les commandes de Emacs sans expliquer tout à fait systématiquement comment entrer une commande et à quoi elles servent. Ne comptez évidemment pas sur ce texte pour répondre exhaustivement à la deuxième partie de la question ! d’autant plus qu’on peut à volonté, fabriquer soi-même des commandes Emacs III.1.7. À l’exception de la commande d’insertion d’un caractère dont nous avons déjà parlé dans la section III.1.1, et qu’on pourrait il est vrai considérer séparément des autres, il y a essentiellement trois manières de faire exécuter une commande par Emacs :
Certaines commandes Emacs peuvent être lancées à partir de menus. En pressant la touche F10, par exemple, vous ouvrez le menu principal dont tous les items seront prononcés par Emacspeak jusqu’à ce que vous pressiez à nouveau une touche. Celle-ci peut être, soit un caractère correspondant à l’un des items du menu qui sera alors sélectionné (on voit que lorsque l’objet manipulé par Emacs est un menu l’insertion de caractère n’a évidemment pas de sens), soit l’une des flèches de déplacement vertical touche <FLÈCHE HAUT> ou touche <FLÈCHE BAS> lesquelles provoquent le déplacement du curseur d’un item vers le haut ou le bas. Après chacun de ces déplacement, l’item du menu sur lequel se trouve le curseur est prononcé par Emacspeak. En pressant ensuite la touche touche <ENTRÉE> vous sélectionnez l’item et effectuez la commande correspondante.
En ouvrant le menu principal avec F10, vous constaterez que le premier item est file. En pressant touche <ENTRÉE> ou l’initiale f, vous ouvrirez un nouveau menu dont le premier item est Open File. En pressent touche <ENTRÉE> ou o, vous exécutez une commande pour laquelle Emacs a besoin de connaître un nom de fichier qu’il vous demande d’entrer grâce au minibuffer. La suite des opérations relève de la section III.1.6.
Vous pouvez également sélectionner l’item HELP dans le menu principal qui ouvre un menu dont le premier item est un tutoriel en anglais pour Emacs (cf. III.3.6.5.3.) Si l’anglais n’est pas un obstacle pour vous, vous lirez ce document avec profit. À tout moment, au cours de cette lecture, la déjà connue commande Ctrl-x b ouvrira un dialogue grâce au minibuffer où vraisemblablement le nom du buffer que vous avez quitté pour lire le tutoriel vous sera proposé, c’est-à-dire celui où se trouve la présente documentation à laquelle vous pourrez alors revenir.
Un certain nombre de commandes Emacs peuvent être déclenchées grâce à des séquences de touches. Par exemple Ctrl-x Ctrl-c provoquera la fin d’une session Emacs et vous rendra la ligne de commande du shell. De même Ctrl-x Ctrl-s vous permettra de sauvegarder, (enregistrer sur le disque) le fichier correspondant au buffer actif (voir la section III.1.6,) ou Ctrl-x Ctrl-f vous permettra d’ouvrir un nouveau fichier. Un message sera alors prononcé et Emacs ouvrira (rendra actif) le minibuffer (cf. III.1.5p)our vous permettre d’entrer le nom du fichier que vous voulez visiter. La commande quit déclenchée par Ctrl-g est particulièrement utile car elle permet d’annuler une commande en cas de mauvaise manipulation et de revenir au buffer actif avant le début de la séquence de commandes. Nous avons déjà vu également la commande Ctrl-x Ctrl-b qui permet de change de buffer actif.
Certains pourraient être rebutés par ces commandes à base de Ctrl obligeant parfois à adopter des positions inconfortables sur le clavier. Il faut savoir, que les combinaisons de touches auxquelless sont affectées les commandes peuvent être modifiés à volonté par l’utilisateur (voir la section III.1.7,) et qu’il pourrait par exemple affecter certaines commandes utilisées particulièrement souvent aux touches de fonctions du clavier s’il le souhaite.
Les commandes Emacs ont toute un nom. Elles peuvent être appelées par ce dernier grâce à la procédure suivante :
La commande particulière Esc x, la touche d’échappement suivie du caractère « x », ces deux touches étant pressées successivement, provoque l’ouverture du minibuffer en attente du nom d’une commande. Celui-ci peut être saisi partiellement puis la touche TAB sollicitera Emacs pour qu’il complète automatiquement ; ce qu’il fera jusqu’au point où il n’y aura pas ambiguïté pour lui. Dès que la touche touche <ENTRÉE> est pressée, la correspondance est établie par Emacs entre la chaîne de caractères que vous venez d’entrer et une commande qui est exécutée en cas de succès.
Ainsi Esc x puis « find-file » puis touche <ENTRÉE> provoquera un effet exactement semblable à celui de Ctrl-x Ctrl-f. Vous pourriez encore entrer Esc x puis « find-fi » puis TAB. Alors Emacs ajoutera les caractères « le » et en pressant finalement touche <ENTRÉE> le minibuffer s’ouvrira pour que vous puissiez entrer le nom du fichier que vous voulez visiter.
Si les mots, phrases et paragraphes apparaissent naturellement comme les objets dont les caractère sont les sous-objet, nous avons entrevu au paragraphe précédent le rôle suffisamment important que jouent les buffers dans Emacs pour leur consacrer dès à présent un paragraphe avant même d’autres entités. Une compréhension élémentaire du maniement des buffers est nécessaire pour utiliser Emacs. Un buffer est un ensemble de données (en général du texte,) qui peut être manipulé par Emacs. Tous les buffers ne peuvent cependant pas être manipulés exactement de la même manière. À chaque buffer est, en effet associé un mode (cf. III.1.8,) c’est-à-dire, pour faire bref avant de plus amples développement, un ensemble de commandes autorisées à l’utilisateur (ainsi d’ailleurs qu’un certain nombre de comportements spontanés.) L’exemple de la section III.1.1 montre que si l’on a lancé Emacspeak de manière à pouvoir lire la version info de ce tutoriel, on se trouve devant un buffer dans lequel l’insertion de caractère n’est pas autorisée.
Les espaces de données constitués par les buffers sont, en général, dédiés à une tâche particulière. Dès que Emacs en effet, doit exécuter une tâche particulière, il y affecte un buffers ; la plus courante de ces tâches étant de visiter un fichier (cf. III.1.6.) Un buffer Emacs possède toujours un nom (auquel on peut faire référence notamment pour le sélectionner) et un mode qui spécifie les opérations possibles (autorisées à l’utilisateur) vis-à-vis de ce buffer.
Si Emacs peut manipuler (ou garder une référence) à un nombre quasi-infini de buffers simultanément, un seulement d’entre eux est actif. Ceci signifie qu’une commande entrée par l’utilisateur concernera ce buffer et non un autre ! Un certain nombre d’opérations sous Emacs peuvent bien entendu changer le buffer actif.
Le procédé que nous indiquions dans la section III.1.1 lorsque l’utilisateur avait lancé Emacspeak afin de lire le tutoriel en mode info, consistait à sélectionner une autre buffer que le buffer courant (où l’insertion de caractère n’était pas possible) afin de tester comment insérer des caractères dans un texte. La commande Ctrl-x b consiste en effet à demander à Emacs de sélectionner un autre buffer actif en utilisant le minibuffer (cf. III.1.5p)our procéder au dialogue afin de déterminer quel buffer l’utilisateur veut choisir comme buffer actif.
Il ne faut pas confondre la notion de buffer Emacs et de fichier même si, dans bien des cas, ces deux notions ont tendance à coïncider. Emacs peut créer, détruire, modifier etc ... des buffers ne correspondant à aucun fichier c’est-à-dire à aucun groupe de données référencé par le système d’exploitation.
Cependant, comme vous le verrez au paragraphe III.1.6, lorsque Emacs veut manipuler un fichier il commence par lui associer un buffer.
Le minibuffer est un buffer Emacs particulier qu’en général l’utilisateur ne peut sélectionner directement comme buffer actif mais qui est automatiquement sélectionné par Emacs lorsque celui-ci veut entamer un dialogue avec l’utilisateur. En général, si la commande que vous venez d’entrer appelle naturellement une question de la part de Emacs à laquelle il s’attend à ce que vous répondiez (en entrant un nom de fichier par exemple), il sélectionne le minibuffer comme buffer actif y place le curseur en attendant que vous saisissiez un chaîne de caractère que vous terminerez par la touche <ENTRÉE> et qu’il utilisera comme paramètre. Si plusieurs paramètres sont nécessaires à une opération donnée, Emacs ouvrira autant de fois qu’il le faut le minibuffer afin de vous solliciter à lui fournir les données dont il a besoin. L’édition dans le minibuffer se fait de manière très très intuitive mais de capacités supplémentaires sont adjointes qui vous permettent de ne taper par exemple que le début d’une chaîne de caractère suivi de TAB si Emacs peut compléter de manière non ambiguë en fonction du contexte.
Une des principales utilisations du minibuffer par Emacs est la réponse aux alternatives que peut poser le logiciel c’est-à-dire des questions appelant une réponse du type oui ou non ! C’est en effet un point de fonctionnement très important de Emacs. Les questions appelant une réponse de type Oui/Non sont de deux niveaux différents suivant l’importance que peut avoir la réponse.
Soit la question est terminée par (y or n?) et dans ce cas la simple pression sur la touche y va faire continuer le process, soit la question est terminée par (yes or no?), et dans ce cas il faut réellement entrer yes ou no en toute lettres puis touche <ENTRÉE>. Ces dernières questions concernent en général des manipulations dont l’issue peut amener à la perte de donnée ou des choses de cette importance.
Par exemple si des buffers ont été modifiés et non sauve gardés, et qu’on essaye de sortir de Emacs par la commande Ctrl-x Ctrl-c, Emacs demandera d’abord si on veut sauver les buffers qui ne l’ont pas été en demandant de répondre par (y or n?) mais si l’on répond n pour l’un d’entre eux, il demandera confirmation de l’abandon des modifications, cette fois par (yes or no?) et on n’en sortira pas tant qu’on n’aura pas répondu par l’une ou l’autre de ces réponses. Ainsi en va-t-il également de la fermeture d’un buffer (avec le menu ou avec Ctrl-x k) qui n’aurait pas été sauvé.
Nous l’avons mentionné dans la section consacrée aux buffers (cf. III.1.4,) un buffer c’est-à-dire un ensemble de données manipulable par Emacs n’est pas nécessairement lié à un fichier c’est-à-dire un ensemble de données manipulable par le système d’exploitation et le plus souvent correspondant à un espace physique sur le disque dur de la machine. Deux opérations peuvent cependant créer ce lien :
Après quoi, ce buffer sera lié au fichier qui vient d’être créé et toute opération de sauvegarde par Ctrl-x Ctrl-s s’effectuera dans ce fichier. Il se peut qu’alors le nom du buffer soit modifié pour correspondre plus intuitivement au nom du fichier.
Remarquons cependant, que si l’utilisateur oublie de sauvegarder le contenu d’un buffer lié à un fichier, au moment de la sortie commandée par Ctrl-x Ctrl-c, Emacsdemandera confirmation de l’abandon des modifications.
Notons encore qu’évidemment, si un incident (ceux-ci sont pour ainsi dire inexistants) provoquait l’arrêt inopiné de Emacs, celui-ci conserve malgré tout une trace des modifications apportées à un fichier. Évidemment, un incident matériel sur le disque pourrait anéantir les efforts de Emacs pour conserver les données.
Nous avons apporté, dans les descriptions précédentes, quelques restrictions à la permanence des commandes sous Emacs en spécifiant, ici ou là, que certaines opérations sous Emacs étaient liées au contexte. Ce dernier est implémenté par la notion de mode. Chaque buffer possède un mode qui conditionne les opérations permises à l’intérieur de ce buffer et la manière dont elles s’exécutent. Nous ne détaillerons pourtant pas cette notion qui est à la fois une des plus complexes, mais une des plus performantes sous Emacs.
Donnons simplement quelques exemples. Nous avons déjà mentionné que l”utilisateur peut redéfinir l’affectation de certaines combinaisons de touches à certaines commandes. Ceci peut-être fait de manière globale ou pour un mode particulier. Ainsi la combinaison de touche peut être actif quelque soit les circonstances ou bien uniquement si le buffer actif est d’un type particulier. Ceci sera contrôlé par le mode. Dans le mode info par exemple, les buffers utilisés pour afficher les pages d’information sont ouverts uniquement en lecture puisqu’il ne s’agit pas de modifier ces pages. Certains caractères qui déclenchent ordinairement la commande d’insertion seront alors réaffectés à d’autres tâches comme u qui permet de remonter d’un niveau dans l’arborescence de l’information.
À cette question on répondra de manière partielle et on renverra à la documentation en ligne de Emacs pour un panorama complet de modes existant sous Emacs. Ce panorama ne sera d’ailleurs jamais complet puisque il est permis à n’importe quel utilisateur de créer ses propres modes. Il est hors de question de dire quoi que ce soit de la manière de procéder ici, puisque ces opérations appartiennent à une utilisation experte de Emacs et que lorsqu’on s’attaque à un tel travail on doit être capable de lire la documentation dans le détail.
Cependant la probabilité de devoir réaliser une telle opération au moins dans le cadre d’une utilisation élémentaire de Emacs est extrêmement faible. Un grand nombre de modes prédéfinis et dédiés aux tâches les plus courantes existent déjà. Le plus simple d’entre eux est dit fondamental et correspond au mode dans lequel sera ouvert un buffer dans lequel on voudrait réaliser des tâches d’édition standard. Certains raffinements existent qui permettent d’éditer avec des facilités très appréciables des fichiers de type particulier, comme des sources C ou JAVA, des sources LATEX, etc ...
Certains modes sont encore plus particuliers comme le mode shell auquel, étant donnée son importance, surtout pour les utilisateurs d’Emacspeak, nous réserverons une section particulière (cf. III.1.8.6.)
Mentionnons encore, pour mémoire, le mode info qui permet de lire de façon pratique les fichiers conçus pour le programme info.
Le minibuffer (cf. III.1.5,) a son propre mode qui permet certaines opérations spécifiques comme la complession par exemple.
Le plus souvent, le mode d’un buffer est sélectionné automatiquement par Emacs suivant des critères préétablis. Par exemple si vous souhaitez lire des fichiers info, Emacs affichera leur contenu dans un buffer ouvert sous un mode particulier.
Si vous visitez une fichier avec Emacs, dans un grand nombre de cas, l’extension détermine le mode dans lequel sera ouvert le fichier. Par exemple un fichier comportant l’extension c ou C ou cc sera ouvert dans un mode spécifique à l’édition de code source C. Ainsi en va-t-il également de fichiers comportant l’extension tex ou java.
Ce paragraphe est destiné à ceux qui, dès le début, aurait pu se sentir captifs de Emacs et qui auraient craint de ne pouvoir accéder qu’à une surcouche du système d’exploitation sans pouvoir accéder au système lui-même. Cependant Emacs est ouvert sur le système et Emacspeak permet de profiter de cette ouverture dans le cadre d’un environnement sonore. Il se comporte, dans cette situation, à peu près comme une revue d’écran. En effet, il existe sous Emacs un mode spécial appelé mode shell dans lequel le buffer actif se comporte exactement comme un shell système. Comme tout buffer il peut être parcouru et sonorisé par Emacspeak. Grâce à ce mode particulier, lorsque la touche <ENTRÉE> est pressée, la partie de la ligne située avant le curseur est envoyé au système comme une shellcommandtxt est le texte retourné par la commande est inséré dans le buffer.
Pour accéder au mode shell, il faut entrer la commande Emacs shell c’est-à-dire (cf. III.1.2.3,) faire Esc x puis shell puis touche <ENTRÉE>. On se retrouve alors dans un buffer qui peut ressembler à quelque chose comme ça :
[lorenzon@jabberwocky emacspeak]$
Si l’on entre ls, puis touche <ENTRÉE>, le contenu du buffer doit ressembler à
[lorenzon@jabberwocky emacspeak]$ ls auto emacspeak-info introduction.tex connexes.tex emacspeak-info.tar Makefile doc.tex emacspeak.log modes.tex efm.mac emacspeak.tex modes.tex~ efm.sty emacspeak.txt readme-festival.index.tex efm.sty~ emacs.tex survol.tex emacspeak.aux espeak-features.tex syntheses.tex emacspeak.dvi install.tex emacspeak.idx interactive.tex [lorenzon@jabberwocky emacspeak]$
[lorenzon@jabberwocky emacspeak]$ ll total 472 drwxr-x--- 4 lorenzon users 4096 Jul 10 08:34 . drwxr-x--- 6 lorenzon users 4096 Jun 23 08:21 .. drwxr-x--- 2 lorenzon users 4096 Jul 10 08:34 auto -rw-r----- 1 lorenzon users 201 Apr 22 11:32 connexes.tex -rw-r----- 1 lorenzon users 943 Apr 22 16:40 doc.tex lrwxrwxrwx 1 lorenzon users 40 May 7 06:33 efm.mac -> /home/lorenzon/web/gnu/emacspeak/efm.sty -rw-r----- 1 lorenzon users 8749 Jul 10 08:34 efm.sty -rw-r----- 1 lorenzon users 8025 Jun 24 13:16 efm.sty~ -rw-r--r-- 1 lorenzon users 11191 Jul 10 08:20 emacspeak.aux -rw-r--r-- 1 lorenzon users 90588 Jul 10 08:20 emacspeak.dvi -rw-r--r-- 1 lorenzon users 13654 Jul 10 08:20 emacspeak.idx drwxr-x--- 2 lorenzon users 4096 Apr 22 14:21 emacspeak-info -rw-r--r-- 1 lorenzon users 102400 Jul 2 06:22 emacspeak-info.tar -rw-r--r-- 1 lorenzon users 16901 Jul 10 08:20 emacspeak.log -rw-r----- 1 lorenzon users 1226 Jun 23 05:32 emacspeak.tex -rw-r--r-- 1 lorenzon users 67111 Jul 2 06:22 emacspeak.txt -rw-r----- 1 lorenzon users 21570 Jun 24 13:26 emacs.tex -rw-r----- 1 lorenzon users 155 Apr 21 09:58 espeak-features.tex -rw-r----- 1 lorenzon users 10515 Apr 21 09:47 install.tex -rw-r----- 1 lorenzon users 4896 Apr 22 15:57 interactive.tex -rw-r----- 1 lorenzon users 9482 Apr 22 13:15 introduction.tex -rwxr----- 1 lorenzon users 1929 Jun 24 13:30 Makefile -rw-r----- 1 lorenzon users 6779 Jul 10 08:27 modes.tex -rw-r----- 1 lorenzon users 5198 Apr 22 15:46 modes.tex~ -rw-r----- 1 lorenzon users 717 May 7 21:55 readme-festival.index.tex -rw-r----- 1 lorenzon users 12846 Jun 23 05:31 survol.tex -rw-r----- 1 lorenzon users 410 May 7 21:59 syntheses.tex [lorenzon@jabberwocky emacspeak]$
Je tiens à signaler que cette utilisation du mode shell sous Emacs est tout à fait ARTIFICIELLE ! et encore plus sous Emacspeak. En effet, l’information renvoyée par la commande ls, est sous un format qu’on pourrait qualifier de brut. C’est encore plus vrai sous Emacspeak où le texte contenu dans le buffer est prononcé à la file. Les commandes de manipulation de fichier comme mv, cp, rm, cd, etc .. peuvent évidemment être lancées dans un buffer en mode shell mais la philosophie de Emacs et surtout d’Emacspeak est plutôt d’utiliser, pour ces opérations, le mode dired (cf. III.1.8.7.)
Le mode dired comme directory edit implémente sous Emacs un gestionnaire de fichiers assez sophistiqué. Un buffer en mode dired est ouvert par la commande Ctrl-x d (cf. III.1.2.2) où Esc x puis dired puis touche <ENTRÉE> (cf. III.1.2.3,) qui ouvre un dialogue dans lequel l’utilisateur est amené à entrer le nom du répertoire qu’il veut lister. Ces opérations sont bien évidemment sonorisées par Emacspeak et s’effectuent avec toutes les facilités d’édition habituelles (cf. III.1.5.)
Cela donne par exemple :
Dired (directory): ~/web/gnu/emacspeak/
Si on presse simplement touche <ENTRÉE> à ce moment là on ouvrira un buffer qui aura cette allure :
/home/lorenzon/web/gnu/emacspeak: used 488 available 17025988 drwxr-x--- 4 lorenzon users 4096 Jul 10 08:46 . drwxr-x--- 6 lorenzon users 4096 Jun 23 08:21 .. drwxr-x--- 2 lorenzon users 4096 Jul 10 08:44 auto -rw-r----- 1 lorenzon users 201 Apr 22 11:32 connexes.tex -rw-r----- 1 lorenzon users 943 Apr 22 16:40 doc.tex lrwxrwxrwx 1 lorenzon users 40 May 7 06:33 efm.mac -> /home/lorenzon/web/gnu/emacspeak/efm.sty -rw-r----- 1 lorenzon users 8749 Jul 10 08:34 efm.sty -rw-r----- 1 lorenzon users 8025 Jun 24 13:16 efm.sty~ -rw-r--r-- 1 lorenzon users 11191 Jul 10 08:20 emacspeak.aux -rw-r--r-- 1 lorenzon users 90588 Jul 10 08:20 emacspeak.dvi -rw-r--r-- 1 lorenzon users 13654 Jul 10 08:20 emacspeak.idx drwxr-x--- 2 lorenzon users 4096 Apr 22 14:21 emacspeak-info -rw-r--r-- 1 lorenzon users 102400 Jul 2 06:22 emacspeak-info.tar -rw-r--r-- 1 lorenzon users 16901 Jul 10 08:20 emacspeak.log -rw-r----- 1 lorenzon users 1226 Jun 23 05:32 emacspeak.tex -rw-r--r-- 1 lorenzon users 67111 Jul 2 06:22 emacspeak.txt -rw-r----- 1 lorenzon users 21570 Jun 24 13:26 emacs.tex -rw-r----- 1 lorenzon users 155 Apr 21 09:58 espeak-features.tex -rw-r----- 1 lorenzon users 10515 Apr 21 09:47 install.tex -rw-r----- 1 lorenzon users 4896 Apr 22 15:57 interactive.tex -rw-r----- 1 lorenzon users 9482 Apr 22 13:15 introduction.tex -rwxr----- 1 lorenzon users 1929 Jun 24 13:30 Makefile lrwxrwxrwx 1 lorenzon users 37 Jul 10 08:44 .#modes.tex -> lorenzon@jabberwocky.19663:1056903678 -rw-r----- 1 lorenzon users 9834 Jul 10 08:46 #modes.tex# -rw-r----- 1 lorenzon users 9509 Jul 10 08:44 modes.tex -rw-r----- 1 lorenzon users 5198 Apr 22 15:46 modes.tex~ -rw-r----- 1 lorenzon users 717 May 7 21:55 readme-festival.index.tex -rw-r----- 1 lorenzon users 12846 Jun 23 05:31 survol.tex -rw-r----- 1 lorenzon users 410 May 7 21:59 syntheses.tex
Comparez-le avec le buffer obtenu dans la section III.1.8.6 après avoir exécuté la commande ll. Il est évidemment très semblable mais dès l’entrée le rendu sonore d’Emacspeak est radicalement différent puisque le buffer ne sera pas prononcé à la file, ce qui peut être un avantage certain si vous listez un répertoire de plusieurs centaines de fichiers. Ensuite lorsque vous commencerez à déplacer le curseur avec les touches de déplacement vous vous apercevrez de la différence. Seul le nom du fichier situé sur une ligne est prononcé et de manière différente selon qu’il s’agit d’un fichier, d’un répertoire ou d’un lien symbolique (si toutefois votre synthèse vocale permet ce genre de choses.)
Les autres renseignements concernant le fichier situé sur la lignes où se trouve le curseur sont accessibles par un certain nombre de commandes. Vous pouvez toujours lire cette ligne d’un bout à l’autre, comme dans n’importe quel buffer ou presque par la commande Emacspeak Ctrl-e Ctrl-l (cf. III.3.6.2) mais c’est encore la manière la moins fine de procéder.
Le buffer en mode dired ne permettant pas l’insertion de caractères (cf. III.1.1,) un certain nombre de touches ont été réaffectées à des tâches particulières. En voici un petit résumé (reportez-vous à la section correspondante du manuel de Emacs accessible par Ctrl-h i (cf. III.3.6.5.2,) pour une information complète.)
Certaines de ces commandes sont spécifiques à Emacspeak c’est-à-dire pour faire bref produisent un effet sonore sans déplacement du curseur (cf. III.3.6) :
D’autres commandes sont des commandes standard du mode dired de Emacs sonorisées par Emacspeak :
D’autres commandes sont disponibles qui permettent par exemple de traiter des fichiers par groupes mais il me paraît abusif de les détailler toutes dans le cadre de cette présentation sommaire.
Cette section n’est, pour l’instant, qu’une FAQ.
Pour configurer la langue sous Speechd-el, on peut utiliser Ctrl-E d l ou la commande speechd-set-language. Il faut ensuite dans l’un et l’autre cas entrer le code de la langue : fr pour le français, enpour l’anglais ...
À ces deux questions ce document tente de répondre de la manière la plus simple et la moins technique possible. Je me suis placé pour le rédiger, du moins ai-je fait le maximum efforts dans cette direction, dans le point de vue d’un lecteur qui serait d’abord et essentiellement un utilisateur de ce logiciel et qui ne voudrait a priori pas avoir à intervenir lui-même, ou alors au minimum, pour adapter ce système à ses besoins. Quelques sections seront cependant plus particulièrement réservées à ceux qui voudraient contribuer ici ou là au développement de ce logiciel. Néanmoins, ce n’est pas du tout le propos principal de ce document. Ces paragraphes seront donc bien balisés et en fait renverrons le plus souvent à d’autres documents de fond. Ils pourront être soigneusement évités par les lecteurs uniquement soucieux de disposer d’un outil puissant répondant à leur demande.
J’ai rédigé ce document à la demande des animateurs de la liste de diffusion carrefourblinux à destination d’utilisateurs non nécessairement expérimentés. La liste de diffusion carrefourblinux est un espace de discussion et d’échanges pour des utilisateurs mal ou non voyants de Linux. Le logiciel Emacspeak permet, en effet, à des personnes non ou mal voyantes d’utiliser le système d’exploitation Linux grâce à un environnement sonore intégré. Il est hors de question ici d’entrer dans les détails concernant Linux lui-même et nous conseillons au lecteur qui ne serait pas suffisamment familier avec ce système de se reporter aux adresses le concernant mentionnées ci-dessus. S’il veut s’assurer que ses connaissances sont suffisantes qu’il prenne connaissance du paragraphe III.3.1.2 de ce document.
Nous nous intéresserons principalement à Emacspeak dans ce texte même si, ici ou là, nous serons peut-être obligés de faire quelques incursions dans le fonctionnement du système d’exploitation lui-même.
J’ai voulu concevoir le présent document plutôt comme un tutoriel pour Emacspeak et non comme un manuel de référence. Ceux-ci existent (en anglais certes) et je suggère aux utilisateurs qui chercheraient une documentation approfondie de se reporter simplement à la page officiel d’Emacspeak. Le présent texte est d’abord conçu pour les commençants et non pour des utilisateurs confirmés qui voudraient affiner encore leur utilisation du logiciel. L’idéal pour le débutant qui voudrait s’initier à Emacspeak serait de lire ce document justement grâce à Emacspeak. Se reporter pour cela à la section III.3.2.
Je supposerai par la suite que mon lecteur est assez familier avec le système d’exploitation Linux pour au moins savoir s’identifier (se loguer), et lancer une commande dans le shell (interpréteur de commandes.) Le logiciel Emacspeak est en effet un programme qui s’exécute sous le système d’exploitation Linux. 1
Nous supposerons également que lecteur est suffisamment familier avec la manière dont Linux organise les données en répertoires et fichiers.
Le lecteur sera plus à l’aise s’il sait déjà utiliser des utilitaires tels que gnu tar ou gzip mais cela n’a aucun caractère indispensable.
Il est temps de décrire plus précisément, quoi qu’encore assez sommairement ce qu’est ce logiciel.
Nous l’avons déjà mentionné, Emacspeak est un environnement sonore intégré destiné principalement aux personnes non et mal voyantes. Il permet d’effectuer les tâches les plus courantes de la bureautique domestique mais possède des possibilités qui peuvent également le rendre très appréciable dans un cadre professionnel. On peut grâce à Emacspeak éditer des textes de manière extrêmement sophistiquée, manipuler les fichiers du système (fonction “file manager”), recevoir et envoyer des courriers éléectroniques, naviguer sur internet mais aussi éditer des codes sources pour le développement de logiciel de manière très agréable et efficace. À l’origine Emacspeak est d’abord un éditeur de texte puisqu’il est basé sur Emacs 21.4a qui est lui-même un éditeur de texte. Cependant les possibilités très étendues de Emacs et notamment son langage de programmation interne ont permis de développer de nombreuses autres applications. Le logiciel Emacspeak lui-même est un programme Emacs qui sonorise complètement ce dernier.
Il faut cependant bien garder à l’esprit qu’Emacspeak n’est pas un logiciel de synthèse vocale. Il peut piloter un certain nombre de synthèses vocales matériel et logiciel mais n’effectue lui-même aucune des tâches spécifiques à ces engins. Se reporter à la section III.3.5.
Le système vocale intégré qui vous permettra d’utiliser Linux est, au moins à première vue, composé de trois couches superposées : Emacs > Emacspeak > une synthèse vocale. Quel est donc le rôle de cette couche intermédiaire placée entre l’éditeur de texte Emacs et la synthèse vocale ? C’est d’organiser de la manière la plus efficace possible l’information recueillie dans Emacs pour la transmettre à la synthèse vocale afin que l’utilisateur puisse en tirer le plus de profit.
Si nous prenons un exemple extrême, il est inutile dès qu’une page d’écran a été localement modifiée de la relire dans son intégralité. Il appartient donc à Emacspeak de repérer les modifications significative de l’environnement de Emacs et de transmettre à la synthèse vocale un message le plus intelligible et le plus signifiant possible.
Pour cela, Emacspeak qui a été conçu par et pour des personnes handicapées visuel a développé un certain nombre d’astuces comme des changements de voix (si la synthèse vocale le permet bien évidemment,) pour rendre compte de changements de police de caractères par exemple.
Emacspeak n’est pas non plus une revue d’écran au sens où l’entend d’habitude et l’utilisateur pourrait se sentir un peu frustré d’être ainsi séparé du système d’exploitation par une couche logiciel supplémentaire. Il pourrait avoir l’impression que certaines manipulations propres au système lui sont interdites par cette situation. On verra par la suite qu’en fait il n’en est rien et qu’Emacspeak peut se comporter presque comme une revue d’écran (cf. III.1.8.6) même si nous n’insisterons pas beaucoup sur cette possibilité puisque Emacs dispense le plus souvent, par le grand nombre de ses possibilités internes, de recourir à ce genre de manipulation.
Disons d’emblée que je n’écris pas non plus ce document pour les experts du système qui ont développé à grands coups de “shell-scripts” sophistiqués des solutions qu’ils jugent efficace et considéreraient que le jeu ne vaut pas la chandelle d’apprendre à manipuler Emacspeak. Néanmoins il faut bien qu’ils gardent en tête les avantages d’un système intégré qui permet d’effectuer les tâches décrites plus haut, édition, mail, navigation internet etc ... en connexion les unes avec les autres. Par exemple on peut prendre un morceau du mail ou de la page WEB qu’on est entrain de lire pour l’insérer dans le fichier qu’on est en train d’éditer sans perdre à aucun de ses endroits le pointeur ...
Disons d’emblée qu’il ne faut pas attendre de miracles d’Emacspeak. Dans la mesure où il n’effectue pas les tâches de synthèse vocale lui-même la qualité du rendu sonore est fortement subordonnée aux possibilités de la synthèse vocale. Emacspeak n’a aucune aptitude à influer sur la prosodie ou l’intonation du texte en fonction de sa nature. Il se contente de demander de telles performances à la synthèse vocale en fonction de ses exigences ou des vôtres (cf. III.3.6.3.)
Par exemple il pourra solliciter une prosodie différente de la part de la synthèse vocale pour mettre en évidence une partie de texte en italique ou en gras. Il pourra même, si la synthèse vocale le permet lui demander de changer de voix pour rendre compte de certaines différences de mise en forme des données. Si la synthèse vocale est limitées dans ses possibilités Emacspeak ne pourra rien faire pour améliorer la situation. Tout au plus peut-il corriger quelques petits manques d’une synthèse vocale. Par exemple, si votre synthèse vocale est incapable de reconnaître des caractères particuliers comme “]” Emacspeak peut s’arranger, dès qu’il rencontrera ce caractère pour que la synthèse vocale prononce “crochet fermant”.
Vous voyez bien que ceci ne procède que de la substitution de caractères dans des chaînes et pas du tout de modifications fines de la prosodie ou de l’intonation. Il va donc de soit que pour profiter au maximum des possibilités d’Emacspeak il vaut mieux disposer d’une synthèse vocale performante (voir la section III.3.5.)
La dernière version de ce document se trouve à l’adresse http://www.pollock-nageoire.net/emacspeak/.
Il existe sous les formes suivantes :
Si vous téléchargez sous cette forme il vous faudra décompacter l’archive emacspeak-html.tar.gz en effectuant la commande
# tar -xzvf emacspeak-html.tar.gz
qui créera un répertoire emacspeak-html dans lequel vous trouverez un fichier index.html contenant la racine de l’arborescence de ce texte et vous donnant accès à toutes ses composantes.
Il vous faudra dans ce cas aussi décompacter l’archive emacspeak-info.tar.gz par la commande
# tar -xzvf emacspeak-info.tar.gz
qui créera un répertoire emacspeak-info.
Je le répète, l’idéal, serait de pouvoir lire ce tutoriel avec Emacspeak lui-même, afin de pouvoir, au fur et à mesure de la lecture, effectuer les opérations décrites ici et se familiariser ainsi avec le maniement d’Emacspeak. Moyennant que vous disposiez d’un Emacspeak installé et fonctionnel (sinon reportez-vous à la section III.3.4,) plusieurs options sont possibles avec chacune ses avantages et ses inconvénients :
Vous avez téléchargé la version texte de ce document (cf. III.3.2.1.1.) Vous pouvez alors, simplement vous placer dans le répertoire où se trouve le fichier emacspeak.txt que vous aurez obtenu en dézippant emacspeak.txt.gz. Pour cela il vous suffit d’effectuer la commande
# gunzip emacspeak.txt.gz
Ensuite démarrez Emacspeak sur ce fichier en tapant
# emacspeak emacspeak.txt
à l’invite du shell puis la touche <ENTRÉE>. Voir la section III.3.4.3 pour plus de détails. Cette solution offre le mérite de la plus grande simplicité, mais, contrairement aux deux suivantes, ne vous permettra pas une lecture hypertexte de cette documentation.
Vous avez téléchargé la version info de cette documentation sous la forme du fichier emacspeak-info.tar.gz (cf. III.3.2.1.4.) Procédez tout d’abord au dépaquetage du fichier mentionné ci-dessus par la commande
# tar -xzvf emacspeak-info.tar.gz
qui va créer un répertoire emacspeak-info. Sélectionnez ce répertoire comme répertoire courant par
# cd emacspeak-info
puis lancez le script info-start par la commande
# ./info-start
Vous avez alors lancé Emacspeak dans un mode (cf. III.1.8,) particulier qui va vous permettre de naviguer de manière satisfaisante dans le tutoriel. Cette navigation hypertexte est certes moins performantes qu’une navigation dans un fichier html comme décrit ci-après, mais néanmoins très raisonnable et ne suppose pas d’adjoindre le moindre outil supplémentaire à Emacspeak puisque le seul présupposé est que le programme info existe sur le site où vous travaillez ce qui est généralement le cas dans une installation standard.
Vous pouvez toujours me contacter si vous avez des questions à propos de ce document ou si vous n’y trouvez pas la réponse à une question que vous vous posez à propos d’Emacspeak.
Il existe un certain nombre de documents relatifs à Emacspeak.
Vous pouvez consulter un tutoriel en anglais qui se trouve également, si votre installation d’Emacspeak a été convenablement réalisée dans le répertoire emacspeak/user-guide/ qui est normalement placé dans /usr/share/emacs/site-lisp/ ou /usr/local/share/emacs/site-lisp/ selon votre installtion. En pointant sur le fichier index.html du répertoire emacspeak/user-guide/ vous accédez à ce tutoriel.
Nous l’avons dit plus haut, Emacspeak est un environnement intégré mais il ne réalise pas lui-même toutes les couches de l’intégration et a besoin pour fonctionner d’un minimum d’autres logiciels. Nous ne mentionnerons ici que ceux qui luis sont absolument indispensables et permettent un fonctionnement standard comme décrit dans les sections III.3.6 et III.1.
Comme l’on peut élargir ses possibilités à l’infini, il est hors de question que nous en présentions d’autres que celles dont nous avons déjà fait l’expérience. Voir pour cela la section outils connexes qui permet d’augmenter les capacités d’Emacspeak III.3.8.
Voici donc ce dont vous devez disposer sur votre ordinateur pour installer et utiliser Emacspeak :
Vous devez disposer du système d’exploitation Linux ou équivalent en état de fonctionnement. 2
L’éditeur de texte Emacs doit être également installé. Il ne fait pas partie de la distribution standard d’Emacspeak et doit être installé préalablement. En revanche il fait partie de toute presque les distributions de Linux et est généralement proposé lors de la plupart des installations interactives.
Un système de synthèse vocale matériel ou logiciel avec lequel Emacspeak puisse communiquer. Un grand nombre de synthèse vocale matériel est supporté et quelques synthèse vocal logiciel (hélas trop peu nombreuses.) (Voir la section III.3.5 pour plus de détails.)
Les synthèses vocales (qu’elles soient matériel ou logiciel) ne disposant pas d’un système de commandes standardisées, Emacspeak ne peut les piloter sans l’aide d’une interface appropriée et vous devez donc vous procurer (ou écrire vous-même mais là bon courage) l’interface “speech server” dans le jargon Emacspeak correspondant à votre synthèse vocale. Voir la page de Jim van Zandt pour le package deb ou la version tar.gz des packages contenant les speech servers ainsi que la liste des synthèses vocales supportées. Pour d’éventuels utilisateurs de Festival, se reporter à la section III.3.5.2 tout en sachant que cette solution est encore tout à fait expérimentale et d’une installation encore délicate.
Une fois que vous aurez rassemblés les éléments indispensables au fonctionnement d’Emacspeak comme décrit dans le paragraphe III.3.4.1, vous êtes prêt à installer Emacspeak lui-même. Un package correspondant à Emacspeak est disponible dans un grand nombre de distributions récentes de Linux (Debian RedHat ou SUSE.) Vous pouvez évidemment également télécharger les sources en tar.gz sur la page d’Emacspeak compiler et installer vous-même 3. Il est probable que, si vous disposez d’une distribution convenablement installée, il sera plus aisé d’utiliser le processus d’installation propre à votre distribution (rpm pou RedHat ou SUSE par exemple.)
Vous devez évidemment disposer d’une installation de Emacs. Il se pourrait bien qu’une version antique de Emacs pose des problèmes de compatibilité avec des versions récentes d’Emacspeak. Si vous êtes l’administrateur du système je vous conseillerais d’upgrader votre version de Emacs vers une version 20.x (voire 21.x, mais je ne suis pas sûr que le support de la nouvelle norme iso-8859-15 soit vraiment parfait dans ces versions !) Si vous n’êtes pas l’administrateur du système, je serais vraiment tenté de vous dire de passer cette section et de demander à votre administrateur système de procéder à l’installation.
Il vous faudra ensuite installer le speech server correspondant à la synthèse vocale que vous avez choisie et configurer Emacspeak pour qu’il utilise ce speech server. Ici, mieux vaut consulter la documentation relative à l’installation. Pour donner un ordre d’idée de la complexité de l’opération à réaliser, je mentionnerai simplement qu’avec un boîtier apollo de Dolphin System, et un shell bash, il suffit d’ajouter les lignes suivantes au .bashrc de l’utilisateur d’Emacspeak :
export DTK_PROGRAM=apollo
Encore une fois pour Festival, la procédure sera un peu différente et voir la section III.3.5.2
Une fois que vous avez correctement installé les diverses composantes du système Emacspeak mentionnées dans la section III.3.4.1, et que vous disposez d’un prompt shell, vous pouvez démarrer Emacspeak par la commande :
# emacspeak
avec éventuellement des options sur la ligne de commande. Si tout fonctionne normalement, vous devez entendre un message de bienvenue sur le périphérique que vous utilisez pour la synthèse vocale.
Si ce n’est pas le cas, c’est que l’une ou plusieurs des composantes du système est (sont) défectueuse(s). Pour déterminer laquelle, l’aide d’un voyant vous sera vraisemblablement nécessaire, à moins que vous n’utilisiez conjointement un autre moyen de contrôle des sorties de votre ordinateur comme un terminal Braille par exemple. En admettant que vous ayez accès à l’output consécutif à la commande Emacspeak, un grand nombre de cas de figure peuvent se présenter dont je ne peux rendre compte exhaustivement ici. Voir la section III.3.4.4.
Vous avez entendu le message d’entrée, tout va bien et vous êtes prêt à travailler avec Emacspeak. Je serai moins superficiel dans cette section tant pour ne pas frustrer ceux qui, lorsqu’ils se trouvent devant une application aiment savoir un minimum comment elle fonctionne que pour rendre les explications ultérieures plus claires et compréhensibles. Devant quoi se trouve-t-on lorsqu’on a lancé la commande
# emacspeak
à l’invite du shell. En fait, on est entré dans l’éditeur de texte Emacs. Comme je l’ai déjà mentionné, Emacs est en fait, (au moins en première approximation) un éditeur de texte programmable. Il possède sont propre langage de programmation (emacs-lisp) au sujet duquel il est hors de propos dans ce document introductif de donner le moindre détail. Toujours est-il qu’Emacspeak est un programme en emacs-lisp donc exécutable par Emacs. Lorsque vous avez lancé Emacspeak vous avez en fait exécuté un script shell qui indique à Emacs de se lancer en exécutant les programmes d’Emacspeak. La conséquence la plus immédiate est que vous disposez de tout le corpus de commandes standard de Emacs plus les commandes d’Emacspeak. Voir la section III.3.6 pour une présentation rapide de ces dernières. Ça fait beaucoup à apprendre ! Je vous l’accorde, mais si je me suis donné la peine de rédiger ce texte c’est que probablement ça vaut la peine ou que je suis affecté de dangereuses manies et souffre d’une attirance perverse pour la complexité inutile ! Il est temps pour vous de faire un choix ! et d’interrompre immédiatement la lecture de ce texte ou de me faire un peu confiance !
Je dirais pour ma défense, que l’apprentissage des commandes de Emacs et d’Emacspeak peut se faire de manière très très progressive. Ces outils peuvent être utilisés à plusieurs niveaux depuis un usage très élémentaire jusqu’à des astuces extrêmement élaborées. Disons qu’en dix minutes vous saurez comment écrire un texte, le sauvegarder et le recharger la prochaine fois que vous en aurez besoin, tout en ayant un feed-back sonore sur toutes ces opérations. En une demi heure vous aurez achevé la lecture des paragraphes essentiels de ce document et vous connaîtrez les commandes élémentaires d’Emacspeak et de Emacs et vous saurez où trouver l’aide en ligne et comment la consulter. Vous aurez appris à repérer où se trouve l’information correspondant à la tâche précise que vous voulez effectuer. N’hésitez cependant toujours pas à me contacter si vous vous trouvez démuni devant une situation.
Cette partie n’existe pour l’instant qu’en anglais.
Si vous avez installé correctement Emacspeak et que vous l’avez bien connecté à une synthèse vocale, (cf. III.3.4,) vous pouvez lancer la commande
# emacspeak
À l’entrée dans Emacspeak, un message de bienvenue doit normalement se faire entendre. Il peut dépendre de la synthèse vocale que vous utilisez et par conséquent de la couche intermédiaire (speech server (cf. III.3.4.1.4.))
Si vous n’entendez aucun message ou si un beep est émis, il y a tout lieu de croire que quelque chose fonctionne de travers. Reportez vous donc à la section III.3.4.4.
Sinon, vous êtes dans Emacspeak. Nous l’avons déjà mentionné ici ou là, Emacspeak qui est construit sur Emacs, est d’abord un éditeur de texte. Vous pouvez donc dès l’entrée, saisir du texte à partir du clavier. Emacspeak sonorise vos commandes voici comment.
Dans son fonctionnement par défaut, Emacspeak produit un écho caractère et un écho mot c’est-à-dire qu’après la frappe de chaque caractère au clavier, celui-ci est prononcé par la synthèse vocale. De même lorsqu’on presse la touche <ESPACE> le groupe de lettres précédant l’espace blanc qu’on vient d’insérer et limité par le blanc précédent est prononcé comme un mot.
On peut également utiliser les flèches pour se déplacer dans le texte qu’on est en train d’écrire. Chacun de ces mouvements est sonorisé par Emacspeak. Par exemple si l’on presse la touche touche <FLÈCHE HAUT>, le curseur se déplace sur la ligne précédente et celle-ci est prononcée. Si la touche touche <FLÈCHE DROITE> est pressée le curseur se déplace sur le caractère suivant et le ce dernier est prononcé.
Citons encore pour mémoire les commandes
Voir le paragraphe Commands for Human Languages et le sous-paragraphe Words (resp. Sentences) dans la documentation de Emacs accessible grâce à la commande Ctrl-h i (cf. III.3.6.5.2.)
Le logiciel Emacs possède un ensemble très étendu de commandes et celles-ci sont sonorisées comme nous venons de le voir sommairement pour les plus élémentaires d’entre elles. Nous n’irons pas plus loin dans ce paragraphe et nous donnerons plus détails dans les sections consacrées aux diverses possibilités de Emacs. Nous indiquerons à chaque fois comment les commandes de Emacs ont été sonorisées par Emacspeak.
Un certain nombre de commandes sont cependant spécifiques à Emacspeak.
La manière de fonctionner d’Emacspeak décrite dans le paragraphe III.3.6.1 est, pourrait-on dire, spontanée. L’utilisateur effectue des tâches d’édition qui son sonorisée par Emacspeak. Cependant ce retour sonore sur ses actions peut s’avérer insuffisant pour l’utilisateur et il peut vouloir obtenir des informations sur le texte qu’il a devant lui sans pour autant modifier celui-ci et même sans y déplacer le curseur. Pour cela Emacspeak dispose dune panoplie extrêmement étendue de commandes. Nous ne détaillerons ici que les plus importantes d’entre elles. Ces commandes peuvent toutes être effectuées grâce à une succession (combinaison) de touches du clavier. Il existe de multiples moyens d’exécuter des commandes sous Emacs mais nous ne les détaillerons pas dans cette section. Se reporter à la section III.1.2. Toutes les commandes spécifiques à Emacspeak sont déclenchées par une succession de combinaisons de touches commençant par Ctrl-e la touche contrôle et la touche “e” pressées simultanément.
Une fois ces deux touches relâchées, en pressant sur une autre touche, on peut obtenir les effets suivantes :
Il est bien évident que l’utilisateur peut souhaiter modifier certains paramètres de la synthèse vocale (la vitesse d’élocution, le timbre de la voix etc ...) sans être obligé d’intervenir par le biais d’un autre outil qu’Emacspeak qu’il est en train d’utiliser. Le programme offre bien entendu de nombreuses possibilités pour cela. Bien évidemment, comme nous le disions déjà dans le paragraphe III.3.1.4 “la plus jolie fille ne peut donner que ce qu’elle a” ! et Emacspeak ne pourra pas accroître les possibilités de la synthèse vocale que vous utilisez. Les fonctions prévues par Emacspeak pour les réglages de la synthèse vocale ne seront opérantes que si la synthèse vocale implémente des possibilités adéquates. Nous nous bornerons à donner ici les fonctions les plus courantes qu devraient avoir un support avec n’importe quelle synthèse vocale.
Toutes les déquences permettant ces réglages commencent par Ctrl-e d (touches contrôle et “e” pressées simultanénemnt puis relâchées, puis la touche “d” elle-même relachée avant qu’une nouvelle touche déclenchant une commande spécifique ne soit pressée.)
Pour des synthèse vocale comme ViaVoice (cf. III.3.5.1o)u Festival (cf. III.3.5.2l)es réglages sont un peu particuliers, et je vous conseille de vous reporter aux paragraphes spécifiquement consacrés à ces outils.
Une commande particulièrement intéressante, qui n’est pas spécifique à Emacspeak mais est une commande de Emacs sonorisée par Emacspeak est Ctrl-h k. En pressant cette séquence de touches, suivie d’une séquence quelconque, Emacs affiche (dans une autre fenêtre) l’aide concernant la séquence suivant Ctrl-h k. Ce court texte est alors prononcé par Emacspeak. Si vous ne parvenez pas à saisir immédiatement tous les renseignements contenus dans ce texte, vous pouvez placer le curseur dans la fenêtre contenant cette aide en effectuant la séquence Ctrl-x o. Dès lors, en déplaçant le curseur grâce aux flèches vous pourrez lire ce texte plus lentement, ligne à ligne et même mot à mot. En pressant de nouveau Ctrl-x o vous replacerez le curseur dans la fenêtre où vous vous trouviez auparavant (voir la section III.1.3 pour plus de détails concernant les fenêtres 4.)
La combinaison de touches Ctrl-h Ctrl-e ouvre un buffer (cf. III.1.4c)ontenant une aide sommaire pour Emacspeak. Le curseur est automatiquement placé dans ce buffer et vous pouvez le lire à loisir ligne à ligne.
Des renseignements sommaires vous serons donnés pour un certain nombre de séquences de touches spécifiques à Emacspeak. Vous pourrez compléter les informations concernant chacune d’entre elles en utilisant la séquence Ctrl-h k comme décrit au paragraphe III.3.6.4. Vous pouvez aussi placer le curseur le nom de la commandes affectée à une séquence de touches particulière puis presser la séquence Ctrl-h f. Emacspeak vous demandera alors si vous voulez effectivement obtenir l’aide correspondant à cette commande. En pressant la touche <ENTRÉE>, vous confirmerez que vous voulez bien de l’aide concernant cette commande et un court paragraphe sera alors affiché et prononcé.
La combinaison de touches Ctrl-h i ouvre un buffer (cf. III.1.4) en mode info (cf. III.1.8.5) contenant la racine de la documentation disponible sous Emacs. Cette documentation est organisée de manière arborescente avec quelques possibilités hypertexte. Après avoir entré la séquence Ctrl-h i, vous pouvez vous déplacer à travers une sorte de table des matières de cette documentation. Il y a, normalement, si l’installation des programmes est correcte, un item correspondant à Emacs et un autre correspondant à Emacspeak. En plaçant le curseur dessus, puis en pressant la touche <ENTRÉE>, vous accédez au niveau de l’arborescence de la documentation spécifiquement consacré à Emacs ou Emacspeak. Vous constatrez qu’un grand nombre d’autres items sont disponibles, vous donnant accès à des informations sur nombre d’autres utilitaires Linux.
ATTENTION Dans le buffer que vous venez d’ouvrir, les touches du clavier n’ont plus tout à fait les mêmes fonctions que dans un buffer standard (en mode fondamental (cf. III.1.8.4.)
En pressant la combinaison de touches Ctrl-h t, vous entrez dans un ttutoriel de Emacs (en anglais) que vous pouvez lire comme n’importe quel buffer en vous y déplaçant avec les flèches et en utilisant les commandes spécifiques à Emacspeak (cf. III.3.6.2.)