Pages : 1
#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?
Pages : 1