Horloge Parlante en bash

Vos petites astuces, répertoire des tutoriels et astuces
Répondre
Avatar du membre
Eukadi
Messages : 129
Enregistré le : jeu. 19 mars 2020 10:38
Localisation : Pays Basque

Horloge Parlante en bash

Message par Eukadi »

Bonjour à toutes et toutes,
Voici un truc qui ne sert à rien, mais de ce fait est totalement indispensable ;)

je l'ai pour ma pomme arrangé à ma sauce, mais si cela intéresse certains
voici une horloge parlante (heu qui ne "papote" qu'au changement d'heure, je ne veux pas non plus qu'elle me pollue les oreilles..)
cela ne sert pas a grand chose, mais pour moi cela me permet d'apprendre plein de choses au niveau du codage et de commencer à, petit à petit, m'aguerrir à celui-ci!

Code : Tout sélectionner

#! /bin/bash
######################
## Horloge parlante ##
######################

## Donner les droits d'exécution :
# chmod +x 3699.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 3699.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/3699.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 "Attention L'heure à changé ! ... Il est $heure" -s 100 -v mb/mb-fr6
        # 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 3699.sh
# ps -ef | grep 3699.sh
# Pour n'avoir que le pid :
# pgrep 3699.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
Bonne bidouille a chacun, moi j'ai pas forcé sur le nom (3699) j'espère qu'il n'y a pas de copyright sur le nom ;) ;)
Débutant sous Linux.

---> Portable HP Netbook: Système: LM 20 Ulyana Version : 9.3.0 - Kernel : 5.4.0-52 generic Process: Intel© Core™ i3-3110M CPU @ 2.40GHz × 2 Ram: 8 Go DD: 1 To
---> NAS Synology 2 baies: DS218J (RAID1 2 To)
---> PC fixe (custom) Système: LM 20 Ulyana Version : 9.3.0 - Kernel : 5.4.0-52 generic Process: AMD Ryzen 5 3600 Wraith Stealth (3.6 GHz / 4.2 GHz) Ram: 24 Go - SSD NVMe : 500 Go SDD S ATA: 240 Go DD: 2 To

Avatar du membre
cyrille
modérateur
Messages : 5617
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nord - Avesnois
Contact :

Re: Horloge Parlante en bash

Message par cyrille »

Juste pour info

Code : Tout sélectionner

# cd /usr/share
# sudo mkdir mbrola
# cd mbrola
# sudo mkdir fr1
# cd fr1
Plus simple en une seule ligne

Code : Tout sélectionner

mkdir -p /usr/share/mbrola/fr1

Code : Tout sélectionner

man mkdir
# HOME: FreeBSD 12.1, DEBIAN SID [XFCE, Fluxbox] # WORK : Mint 18.3 & 20 # VPS + SERVEUR ProLiant: DEBIAN STABLE
[ GIT : https://github.com/CyrilleBiot | Site : https://cbiot.fr ]

Avatar du membre
Eukadi
Messages : 129
Enregistré le : jeu. 19 mars 2020 10:38
Localisation : Pays Basque

Re: Horloge Parlante en bash

Message par Eukadi »

Bonjour,
Merci Cyrille, effectivement c'est beaucoup plus court, je m'en souviendrai lors d'une prochaine fois, :-)
Merci encore...
Débutant sous Linux.

---> Portable HP Netbook: Système: LM 20 Ulyana Version : 9.3.0 - Kernel : 5.4.0-52 generic Process: Intel© Core™ i3-3110M CPU @ 2.40GHz × 2 Ram: 8 Go DD: 1 To
---> NAS Synology 2 baies: DS218J (RAID1 2 To)
---> PC fixe (custom) Système: LM 20 Ulyana Version : 9.3.0 - Kernel : 5.4.0-52 generic Process: AMD Ryzen 5 3600 Wraith Stealth (3.6 GHz / 4.2 GHz) Ram: 24 Go - SSD NVMe : 500 Go SDD S ATA: 240 Go DD: 2 To

Avatar du membre
alain
modérateur
Messages : 8560
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Horloge Parlante en bash

Message par alain »

Bonjour.

Sujet déplacé dans "Trucs et astuces".
Si besoin de rouvrir faire un MP à l'équipe ;)
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: ATI RX 580-8 Go | OS : LM 19.3 Tricia Xfce 4.14.1 | K: 4.15.0-88
PC2 :Core2 Quad Q9650 @ 3 GHz | CG: Radeon HD 4850 | OS: LM 19.3 Xfce 4.14.1 | K: 5.3.0-42
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: emmade3 Xfce 4.12.4 | K: 4.19.0-6
PC4 :Core2 Quad Q9650 @ 3 GHz | CG: GT 630 | OS : LM17.3 KDE | K : 3.19

In a world without walls and fences, who needs windows and gates?

Répondre