Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- ######################
- ## Horloge parlante ##
- ######################
- ## Donner les droits d'exécution :
- # chmod +x horloge.sh
- ## Installer espeak :
- # sudo apt install espeak
- ## Ajouter le paquet de langue améliorée pour la commande " mb/mb-fr1 " :
- ## Télécharger la voix Mbrola FR1 :
- # cd /usr/share
- # sudo mkdir mbrola
- # cd mbrola
- # sudo mkdir fr1
- # cd fr1
- # sudo wget https://raw.githubusercontent.com/numediart/MBROLA-voices/master/data/fr1/fr1
- ## Lancer l'horloge parlante pour tester le script :
- # sh horloge.sh
- ## Changer d'heure en changeant de fuseau horaire :
- # cp /usr/share/zoneinfo/Europe/Athens /etc/localtime
- # cp /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
- # cp /usr/share/zoneinfo/Europe/Paris /etc/localtime
- ## Démarrer le script avec une tâche cron 1 minute avant le changement d'heure.
- # crontab -e
- # 59 * * * * sh /home/utilisateur/chemin/chemin/horloge.sh
- ## Aucune action n'est requise ci-dessous !
- ## L'horloge parlante est configurée !
- hmem=$(date +%-H)
- hnow=$(date +%-H)
- while :
- do
- # Vérifier l'heure actuelle à l'intérieur de la boucle.
- hnow=$(date +%-H)
- # Afficher l'heure actuelle et l'heure mémorisée :
- # echo "Heure actuelle : $hnow - Heure mémorisée : $hmem "
- if [ $hnow != $hmem ]
- then
- # echo "Heure changée"
- # Afficher un son différent, 11.mp3 12.mp3 ... pour chaque possibilité :
- # DISPLAY=:0 /usr/bin/mplayer /home/utilisateur/chemin/chemin/$hnow.mp3
- # Synthèse vocale avec espeak :
- # date "+Il est %H heure %M" | espeak -v fr
- # Affecter l'heure actuelle à une variable heure qui sera lue par espeak :
- heure=$hnow
- # Mettre en place une exception pour 00h qui se dit "minuit" :
- if [ $heure = 00 ]
- then
- heure="minuit"
- fi
- # Mettre en place une exception pour 1h qui se dit "une" et pas "un" :
- if [ $heure = 1 ]
- then
- heure="une heure"
- else
- heure="$heure heures"
- fi
- # Après avoir installé le fichier mbrola fr1 cette alerte de voix devient très sympa :
- espeak "L'heure change ! ... Il est $heure" -s 100 -v mb/mb-fr1
- # On affecte la nouvelle valeur à l'heure mémorisée pour que la condition ne soit plus réalisée :
- hmem=$hnow
- # Tuer le script qui tournerait sinon pendant une heure. Le script sera relancé avec une tâche cron.
- exit 0
- else
- #echo "L'heure n'a pas changée"
- # espeak "L'heure n'a pas changée !" -s 100 -v mb/mb-fr1
- sleep 5
- fi
- done
- # Note concernant les processus fantômes durant les tests :
- # Identifier les processus qui tournent :
- # ps aux
- # Tuer un processus avec son pid :
- # sudo kill -9 26550
- # Lister tous les processus lancés pour le script horloge.sh
- # ps -ef | grep horloge.sh
- # Pour n'avoir que le pid :
- # pgrep horloge.sh
- # Partagé sur : https://wiki.visionduweb.fr/index.php?title=Programmation_en_Shell_Bash_Linux#Cr.C3.A9er_son_horloge_parlante_en_Bash_sous_Linux
- # D'après la vidéo suivante : https://youtu.be/UbqU7rxu-eU
Add Comment
Please, Sign In to add comment