Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 26/07/2011, à 17:56

Compte supprimé

Script de lecture de long texte

Bonjour à tous

J'essaye depuis peu de permettre à l'utilisateur malvoyant de pouvoir lire des textes longs.
Pour ce faire j'ai créé un script shell grâce auquel il suffit de sélectionner le texte pour le faire lire (ceci existait déjà dans la doc) mais pour les textes longs ceci peut s'avérer dissuasif de devoir tout lire d'un seul coup ou de devoir sélectionner une certaine zone sur l'écran.
voici le script:

#!/bin/bash
# on acquière le texte à lire
xclip -o >> $HOME/.script_texte

# on entre les différents paramètres
VOIX=/usr/share/mbrola/voices/fr1
fichier="/home/benoit/.script_texte"
TYPE=mb-fr1
NBR_LIGNE=`wc -l $HOME/.script_texte | awk {'print $1'}`
NBR_CARACTERE=`wc -c $HOME/.script_texte | awk {'print $1'}`

# On demande à l'utilisateur son choix de lecture
espeak -v $TYPE -s 160 -p 40 "Le texte selectionné comporte $NBR_LIGNE ligne de texte et $NBR_CARACTERE caractères. Voulez-vous hacher la lecture?" | /usr/bin/mbrola -e $VOIX - -.au | aplay &
zenity --title="Lecture" --question --text="couper la lecture?"
CHOIX=$?

if [ "$CHOIX" = "0" ]; then
{
espeak -v $TYPE -s 160 -p 40 "Lecture mot par mot ou ligne par ligne" | /usr/bin/mbrola -e $VOIX - -.au | aplay &
zenity --title="comment couper la lecture?" --question --text="couper en mot ou en ligne" --ok-label="mots" --cancel-label="lignes"
CHOIX_LECTURE=$?
if [ "$CHOIX_LECTURE" = "1" ]; then
{
IFS=$'\n'       # nouveau séparateur de champ, le caractère fin de ligne
#zenity --title="poursuivre la lecture" --question --text="Appuyer sur Stop pour intérrompre" --ok-label="Stop" --cancel-label="Lire"
#LP=$? 
for ligne in $(<$fichier)
do
   espeak -v $TYPE -s 160 -p 40 "$ligne" | /usr/bin/mbrola -e $VOIX - -.au | aplay
done
rm /home/benoit/.script_texte
}
else
{
for mot in $(<$fichier)
do
   espeak -v $TYPE -s 160 -p 40 "$mot" | /usr/bin/mbrola -e $VOIX - -.au | aplay
done
rm /home/benoit/.script_texte
}
fi
}
else
{
espeak -v $TYPE -s 160 -p 40 -f $HOME/.script_texte | /usr/bin/mbrola -e $VOIX - -.au | aplay;
rm /home/benoit/.script_texte
}
fi
exit

Pour l'instant, il permet de choisir entre trois modes de lecture:
mot par mot
ligne par ligne
tout d'un coup

Ce qu'il reste à faire et que je ne vois pas comment les mettre en oeuvre est:
pouvoir stopper/ redémarrer la lecture (peut être via un fichier mémoire dans lequel on enregistrerai ce qui n'a pas encore été lu)

#2 Le 26/07/2011, à 19:57

kinouchou

Re : Script de lecture de long texte

Bonjour,

Pourquoi n'utilises-tu pas la mise en pause d'orca au lieu de faire un script?


Développeur, simple utilisateur, professionnel ou juste intéressé venez découvrir le groupe April Accessibilité et Logiciels Libres http://libre-et-accessible.org

Hors ligne

Haut de page ↑