Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/10/2012, à 22:12

Compte supprimé

Emacs pour les malvoyants (Mon premier Tuto)

Bonjour à tous


Je me suis décidé, je prends le temps de publier mon premier tuto. Celui-ci va consister à utiliser emacs pour rendre un système Ubuntu accessible aux malvoyants,  J'ai quand même bien galéré à trouver des trucs clairs et en français pas top quand on voit pas grand chose.

Ce tuto vous permettra à termes d'utiliser Emacs pour :

1. Coder comme dans n'importe quel éditeur
2. aller sur internet avec w3m
3. lire vos messages avec gnus
4. chatter sur jabber

il sera constitué de  3 parties:

1. Installation du nécéssaire
2. Configuration de l'ensemble
3. Configuration de la synthèse vocale

Passons directement à la première partie.


1. Installation du nécéssaire

Pour la suite nous aurons besoins de différents paquets présent dans les dépôts Ubuntu.
Pour installer l'ensemble, tapez la commande suivante:

sudo apt-get install emacs gnutls-bin emacs-jabber w3m-el mbrola mbrola-fr4 speechd-el

Pour l'instant, ça va c'est pas difficile, allez s'en est fini des paquets.

2. Configuration de l'ensemble

Passons à la configuration et commençons de ce pas par la configuration d'Emacs. Je vous fournis un fichier .emacs minimal a mettre dans votre dossier $HOME

;; Section Modes 
(setq auto-mode-alist       
      (cons '("\\profile\\'" . sh-mode) auto-mode-alist))
(setq auto-mode-alist       
      (cons '("\\.sh'" . sh-mode) auto-mode-alist))
(setq auto-mode-alist
      (cons '("\\.html" . html-mode) auto-mode-alist))
(setq auto-mode-alist
      (cons '("\\.tpl" . html-mode) auto-mode-alist))
(setq auto-mode-alist
      (cons '("\\.php" . php-mode) auto-mode-alist))

;;Mode php
;;(load-file "~/.emacs.d/plugins/php-mode.el")

;;;Mode par défaut
;;
;; couper le bip
;;(setq ring-bell-function 'ignore)
(modify-frame-parameters nil '((wait-for-wm . nil)) )
(setq inhibit-startup-message t)

;; le curseur ne clignote plus
(blink-cursor-mode -1)

;; quelle heure est-il ??
(setq display-time-day-and-date t)
(setq display-time-24hr-format t)
(display-time)

;; montre les parenthèses
(show-paren-mode 1)

;; le numero de la ligne et de la colone
(setq line-number-mode t)
;;(setq column-number-mode t)

;; la langue du dictionnaire
;;(setq ispell-dictionary "francais")

;;supr                                                                              
;;(normal-erase-is-backspace-mode)

;; pour que l'on n'ait pas a taper sur TAB pour indenter
;;(setq c-auto-newline t)

;; pour voir les images
(auto-image-file-mode 1)

;; permet d'ouvrir les gz a la volee
(auto-compression-mode 1)

;; Inhiber l'affichage du message d'accueil
;;(setq inhibit-startup-message t)

;; Remplacer les question "yes or no" par "y or n"
(fset 'yes-or-no-p 'y-or-n-p)

;; style de dates européen
(setq european-calendar-style t)

;; Manuel php en français
(setq php-manual-url "http://www.nexen.net/docs/php/annotee/manual.php")

;; Utiliser le html-helper-mode, http://www.gest.unipd.it/~saint/hth.html
(autoload 'php-html-helper-mode "html-helper-mode" "html-helper-mode" t)

;; Utiliser PSGML pour les fichiers SGML, HTML, XML
(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t)
(autoload 'xml-mode "psgml" "Major mode to edit XML files." t)

;;*** Fin mode par défault

;; C style
(setq c-default-style "linux")
(global-font-lock-mode 1)

Bon une fois ce fichier enregistrer, complétons le pour paramétrer les autres outils.

Et entamons le travail avec w3m et l'accès internet.

Afin de pouvoir utiliser w3m dans emacs, voici ce que vous devez ajouter au fichier .emacs fraîchement créer.

(defadvice w3m-print-this-url (around my-w3m-print-this-url activate)
(when (eq this-command 'w3m-print-this-url)
ad-do-it))

(require 'w3m-load)
(require 'mime-w3m)
(setq w3m-home-page "https://www.google.com")
(setq w3m-use-cookies t )

Pour régler la page d'acceuil de w3m, il faut regarder la ligne

(setq w3m-home-page "https://www.google.com")

Bon, ça c'est fait passons à la messagerie GNUS, Pour pouvor l'utiliser, il faut ajouter ce qui suit à votre .emacs

;; GNUS ;;

(setq gnus-select-method '(nnimap "gmail"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-stream ssl)))

(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

;; Threads are nice!
(setq gnus-summary-thread-gathering-function
'gnus-gather-threads-by-subject)
;; SMTP ;;

(setq message-send-mail-function 'smtpmail-send-it
smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials '(("smtp.gmail.com" 587 "votremailt@gmail.com" nil))
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
smtpmail-local-domain "ubuntu")

(setq user-full-name "vous")
(setq user-mail-address "votremailt@gmail.com")

Notez que vous devez remplacer danc ce code votremail@gmail.com par votre adresse email et "vous" par votre nom.

Une fois que vous avez copié ceci, ça se complique un peu, il faut ajouter votre boite de réception à emacs. Pour ce faire, ouvrez emacs et taper alt+x puis gnus. (Au passage retenez cette commande alt+x, elle vous sera tout le temps utile) Une fois le buffer gnus ouvert, rendez vous dans la barre de menu emacs et cherchez Groups, puis tapez sur "Subscribe". Ensuite, on vous demande de souscrire à un groupe, tapez alors "INBOX"  (les majuscules sont importantes).
Entrez votre mot de passe quand on vous le demande et attendez.


Ce gros morceau étant fait, attelons nous à la partie jabber. il vous faut pour cela créer un fichier .authinfo dans votre $HOME. Ce fichier contiendra ceci:

machine imap.gmail.com login votreemail@gmail.com port 993

En remplaçant votreemail@gmail.com par votre adresse mail.

Dans le .emacs, rajoutez ceci:

;; JABBER
;; (setq jabber-debug-log-xml t)
;; (setq jabber-debug-keep-process-buffers t)

(add-to-list 'load-path "/home/user/usr/share/emacs/site-lisp/emacs-jabber-0.7.92")
(require 'jabber)

(setq jabber-account-list '(
                            ("votreemail@mail.com"
                            ;;
                              (:network-server . "talk.google.com")
                              (:port . 443)
                              (:connection-type . ssl))
                            ))

Modifier dans ces lignes votreemail@gmail.com par votre adresse email.
Pour vous connecter, tapez alt+x puis jabber-connect, puis tapez online. Pour chatter, tapez: jabber-chat-with puis l'adresse email.

Bon ça commence à faire pas mal de truc à faire là, il est 21H45, vous en aurez pour quelques heures. Non ? Vous êtes toujours là. Ok on va en remettre une couche alors.

3. Configuration de la synthèse vocale

Passons maintenant à une autre étape qui peut s'avérer difficile la configuration de la synthèse vocale. Et oui, il  faut aussi le faire.

Pour configurer Speech Dispatcher afin de lui faire utiliser Mbrola-fr4 fraîchement télécharger,  il faut modifier deux fichiers.

pour le ficheir "SPEECHD.CONF" tapez:

sudo gedit /etc/speech-dispatcher/speechd.conf &

Repérez la section : # -----OUTPUT MODULES CONFIGURATION-----
puis ajouter une ligne pour ajouter un module (vous verrez il y en a déjà de configurer)
Voici la ligne à tapez

AddModule "mbrola" "sd_generic" "mbrola-generic.conf"

Descendez un peu et modifier les lignes DefaultModule et LanguageDefaultModulle comme ceci:

DefaultModule mbrola
LanguageDefaultModule "fr"  "mbrola"

C'est bien beau ça, mais c'est quoi pour l'instant mbrola-generic.conf  et bas rien du tout on a pas fini le travail. Allez c'est presque fini.

Fermez ce fichier et ouvrez le dossier module pour ce faire tapez:

sudo nautilus /etc/speech-dispatcher/modules

Ensuite, créez un nouveau document vide et nommez le mbrola-generic.conf.
Copiez le contenu de espeak-generic.conf dans ce nouveau fichier.

Maintenant, on va modifier un peu ce nouveau fichier pour le faire fonctionner.

Chercher cette ligne:

GenericExecuteSynth \...

en

GenericExecuteSynth \
"espeak \"$DATA\" -v mb-fr4 -s 260 | /usr/bin/mbrola -e /usr/share/mbrola/fr4/fr4 - - | aplay -r 16000 -fs16 -q"

Il y a quelques paramètres que vous pouvez modifier ici pour ajuster la vois à votre convenance.

Maintenant, il reste à dire à Emacs d'utiliser notre travaill, les plus courageux en sont presque au bout.

Pour ceci, ajoutez à votre .emacs que vous avez créé tout à l'heure ceci:

(put 'set-goal-column 'disabled nil)
(require 'speechd)
 (setq speechd-out-active-drivers '(ssip))
(speechd-speak)

(setq speechd-speak-by-properties-on-movement t )

Ah, bravo à vous vous êtes arrivé au bout. Redémarrez pour relancer speech-dispatcher et lancez emacs.

De mon coté j'espère ne rien avoir oublié et de votre coté il reste à apprendre à naviguer dans emacs.

Bon courage.

Dernière modification par benoitfra (Le 26/10/2012, à 22:15)