Re: [CBLX] Quelques questions sur Emacs et Speechd-el ?

[ Thread Index | Date Index | More lists.tuxfamily.org/carrefourblinux Archives ]


Salut Sam,

J'ai peur que ces questions soient quand-même pas mal pour moi
! Je ne suis pas un geek (encore que ...) mais on va essayer.

From: coolbrother@xxxxxxxxxx
Subject: [CBLX] Quelques questions sur Emacs et Speechd-el ?
Date: Fri, 19 Mar 2010 05:12:56 +0100 (CET)

> Salut, je me suis lancé dans la lecture d'un gros bouquin de 650 pages en
> pdf,
> et pour y arriver au bout, j'ai besoin de réaliser des manip de lecture
> basiques
> sans me lancer dans de nombreuses lignes de scripts, si c'est possible.
> 
> Pour effectuer une telle tâche, j'ai essayé vim et speakup.
> mais speakup ne permet pas de lire automatiquement toutes les pages sans
> s'arrêter.
> Speakup s'arrête à chaque page de l'écran, et comme il y en a 650 pages,
> ça ne le fait pas.
> Idem pour orca, dont j'espérais que ce serait très basique.
> Finalement, malgré mes réticenses à l'égard d'emacs pour sa lenteur,

  Lenteur ?



> c'est speechd-el qui m'a permis de commencer à lire aisément un tel pavé
> avec la commande :
> Ctrl-e >
> Mais voilà, il me manque certaines chose comme :
> 
> -- Comment arrêter la lecture pour se retrouver sur la dernière ligne
> prononcée par la synthèse ?

  Pas évident du tout ça. Je crois qu'il n'y a pas de tracking
  dans speechd-el du moins pas au niveau de l'API. Dans le
  moteur, il y a évidemment du tracking puisque l'envoi à la
  synthèse est fait à coup de buffer-substring qui reçoit comme
  paramètre l'index du premier et du dernier caractère. Cela
  dit, c'est une question assez délicate. Parce que le client
  peut savoir quelle est la dernière portion de texte qu'il a
  envoyée au serveur speech-dispatcher mais vu le délai de
  prononciation ce n'est pas nécessairement celle qui est
  entrain d'être prononcée. Il s'agit donc de regarder quelles
  sont les features de tracking au niveau de ssip qui est le
  protocole de communication entre speechd-el et
  speech-dispatcher. Si speech-dispatcher peut répondre à
  speechd-el, "je suis en train de prononcer" le bloc d'index
  "n" speechd-el, s'il a traqué la correspondance bloc/position
  dans le buffer, la manip est réalisable. Si ssip n'implémente
  pas cette feature, ou si speechd-el ne traque pas, ça va être
  délicat ! Implémenter le tracking dans speechd-el s'il
  n'existe pas, c'est réalisable (en gros un mapping bloc --
  position dans le buffer.) En revanche, si ssip n'a pas la
  feature, difficile de modifier les specs de ce machin. Dans
  le cas où tout irait bien, on pourrait retrouver l'endroit où
  en est la synthèse disons à une centaine de caractères près
  (à peu près la taille des blocs envoyés à la synthèse si ma
  mémoire est bonne.) Sur un ouvrage de 650 pages ce serait
  déjà très très bien. Je pense que tu comprends le problème
  qui est directement lié à la nature même du processus de
  synthèse vocale, et n'a rien à voir avec une implémentation
  ou une autre. On ne pourra jamais espérer traquer au
  caractère près, dans la mesure où au niveau synthétisé, le
  caractère n'a plus réellement de pertinence.



> Car "ctrl-e >" lit tout mais ne change pas la position du curseur.
> 
> -- Comment lancer Emacs avec des réglages de vitesse, volume, ponctuation
> désirés ?

  (setq variable valeur) dans le .emacs. Lire la doc de
  speechd-el pour voir quelle variable contrôle quoi et son
  espace de valeurs.a


> Car c'est un peu long de retapper tout ceci à chaque fois.
> 
> -- Comment dire à Emacs de lancer un script au démarrage, et puis un autre
> à son arrêt ?

  Ce n'est pas emacs qui doit faire ça, puisque dans ta
  configuration c'est bash qui est maître. Donc c'est du
  bash. Ah quand-même on en a besoin ! script :

  #!/bin/bash
  mon_script_debut
  /usr/bin/emacs (paramètres éventuels)
  mon_script_fin

  Et tu mets ça dans un fichier mon_emacs que tu rends
  exécutable et que tu lances... 



> Utile pour arrêter speakup au lancement d'emacs et le remettre quand on le
> quitte,
> sinon conflit avec speech-dispatcher.
> 
> -- Comment enlever tous les messages d'aide de speechd-el du style :
> "empty texte, begining of buffer" ?

  (setq variable value) voir dans la doc de speechd-el quelle
  est la variable qui contrôle ça.



> Car ça ralentit considérablement les manip.
> 
> -- Enfin, comment dire à Emacs d'ouvrir les fichiers .pdf en les
> convertissant en texte.

  Emacs n'a pas à ma connaissance, de convertisseur interne pdf to text.. Tu dois donc utiliser un programme externe. Si tu veux faire ça à partir d'emacs :

  (defun open-pdf (fichier)
  (call-process ....)
  (find-file (concat (file-name-sans-extension fichier) ".txt")))

  À la louche. Si tu n'as pas envie de te perdre dans de la
  prog lisp, dis-moi ! Je t'écris ça proprement et je le
  teste. Dis-moi quand-même ce que tu utilises pour convertir
  du pdf en txt.



> 
> Voilà, c'est sûrement des questions de geek, mais alors bien utiles..

  Sans conteste ! Erwin avait écrit quelques lignes de code
  pour lire du word et le schéma est rigoureusement le même
  pour ce qui concerne tes dernières questions. Pour ce qui
  concerne le tracking dans la synthèse, si la doc ne te dis
  rien et si tu ne veux pas mettre le nez dans le code, je peux
  regarder de plus près.


> 
> Merci.



  Mais de rien !
> A bientôt:

  +1
> Sam

  Pierre
> 
> 
> 
> 
> ---
> -- 
>    CarrefourBLinuX MailingListe 
>    Pour obtenir de l'aide, envoyez le sujet  help  à: 
>    carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
>    Archives: 
>    http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux
> 



---
--
   CarrefourBLinuX MailingListe
   Pour obtenir de l'aide, envoyez le sujet  help  à:
   carrefourblinux-request@xxxxxxxxxxxxxxxxxxx
   Archives:
   http://listengine.tuxfamily.org/lists.tuxfamily.org/carrefourblinux


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/