Petite astuce de productivité sous linux
Owen Williams explique dans cet article comment il a amélioré sa productivité en paramétrant MacOS pour qu'une voix de synthèse lui annonce l'heure automatiquement. Ce rappel régulier l'incite à se recentrer sur son travail plutôt que de se laisser aller au jeu des errements sur twitter et wikipedia.
Voici comment implémenter la même fonctionnalité sous Debian/Ubuntu.
Nous avons besoin de Espeak pour la synthèse vocale proprement dite et de Mbrola afin d'améliorer le rendu final avec une voix plus agréable:
sudo apt-get install espeak mbrola mbrola-fr1
Nous pouvons d'ores et déjà synthétiser une phrase avec cette commande :
espeak -s 140 -v mb/mb-fr1 "Il est "`date +%R`
L'option -v mb/mb-fr1
indique à mbrola d'utiliser la voix française et -s 140
permet de ralentir la vitesse d'élocution tandis que la commande date +%R
retourne l'heure courante.
Il reste à executer automatiquement cette commande toutes les heures en configurant une tâche cron.
Cron a besoin de connaitre la variable d'environnement XDG_RUNTIME_DIR pour que le flux audio soit géré correctement.
Dans une installation debian/ubuntu de base, cette valeur est /run/user/1000, vous pouvez la vérifier en executant la commande env |grep XDG_RUNTIME_DIR
.
Avec ces infos, nous pouvons créer un script /usr/local/bin/saytime.sh avec le contenu suivant :
#!/bin/sh
export XDG_RUNTIME_DIR=/run/user/1000
/usr/bin/espeak -s 140 -v mb/mb-fr1 "il est "`date +%H`" heures"
et ajouter la ligne 0 * * * * sh /usr/local/bin/saytime.sh
dans cron via la commande crontab -e
afin que le script soit executé toutes les heures.