
Raspberry Pi – Notification de nouveaux e-mails et rendez-vous de calendrier
J’ai voulu vous passer quelques scripts que j’utilise habituellement pour faire en sorte qu’un Raspberry Pi que j’ai connecté à un haut-parleur me parle depuis longtemps; dans ce document, nous verrons uniquement comment configurer le Pi pour nous parler via le haut-parleur et nous dire si nous avons reçu un e-mail, Et si c’est le cas, il indiquera l’expéditeur et l’objet de l’email; ainsi que si nous avons des rendez-vous sur le calendrier dans les prochaines années. 5 compte-rendu, nous le rappellera par le haut-parleur!
Conversion du texte en parole,
Nous commençons par mettre en place le système qui va nous parler, Utilisation d’un convertisseur de synthèse vocale, une synthèse vocale (TTS) Nous utiliserons le synthétiseur vocal 'festival', nous allons l’installer sur notre Raspberry Pi, qui prend en charge n’importe quelle langue, Plus tard, nous téléchargerons les diphones en espagnol de la forge Guadalinex, Nous aurons deux voix, une femme (Silvia) et un mâle (Pedro), Tout le monde peut utiliser celui qu’il aime 😉 le plus
Nous installons festival sur notre Raspberry Pi:
[Langue du code source=”Plaine”]sudo apt-get -y install festival[/Code source]
Si nous voulons utiliser&ÈRE;nbsp;La sortie 3,5 prise audio pour le son au lieu de HDMI, nous allons exécuter:
[Langue du code source=”Plaine”]amixer cset numid=3 1[/Code source]
Il sera intéressant de bien mettre le volume que l’on veut entendre, et nous enregistrons les modifications:
[Langue du code source=”Plaine”]alsamixer
Magasin Sudo Alsactl[/Code source]
Pas mal, Nous allons maintenant télécharger les langues qui nous intéressent, Mettez celui que vous voulez, Je vous laisse dans l’ordre première voix féminine et l’autre voix masculine. Nous les installons également et indiquons dans le fichier de configuration lequel utiliser:
[Langue du code source=”Plaine”]
wget https://github.com/guadalinex-archive/hispavoces/raw/master/packages/festvox-sflpc16k_1.0-1_all.deb
wget https://github.com/guadalinex-archive/hispavoces/raw/master/packages/festvox-palpc16k_1.0-1_all.deb
sudo dpkg -i festvox-sflpc16k_1.0-1_all.deb
sudo dpkg -i festvox-palpc16k_1.0-1_all.deb
sudo vim /etc/festival.scm [/Code source]
À la fin, nous ajoutons celui qui nous intéresse, et nous commentons les autres:
[Langue du code source=”Plaine”];(poser! voice_default 'voice_JuntaDeAndalucia_es_pa_diphone)
(poser! voice_default 'voice_JuntaDeAndalucia_es_sf_diphone)[/Code source]
Et nous pouvons essayer de convertir un texte en audio avec:
[Langue du code source=”Plaine”]echo Bonjour Manolo, comment vas-tu | fête –Tts[/Code source]
Si nous sommes intéressés, Nous pouvons générer un script qui, lorsqu’il est exécuté avec un paramètre, lit ce paramètre, plus utile pour ensuite l’appeler à partir d’autres scripts, Dans mon cas, je l’appelle ‘textoAvoz.sh »:
[Langue du code source=”Plaine”]ÉCHO $1 | fête –Tts[/Code source]
Lire le calendrier depuis le Raspberry Pi,
Si nous voulons lire notre calendrier, La meilleure expérience que j’ai eue a été avec 'Gcalcli', puisque n’importe quel calendrier peut être géré, nous pouvons ajouter à notre compte Gmail autant de calendriers que nous l’intéressons, que ce soit à partir de notre plateforme d’échange ou d’autres systèmes, ainsi que de s’abonner à des calendriers qui nous intéressent…
Nous installons gcalcli ou
[Langue du code source=”Plaine”]sudo apt-get install git python-pip python-gdata python-dateutil python-gflags python-vobject python-parsedatetime
sudo pip install gcalcli[/Code source]
Une fois installé, nous allons exécuter la commande suivante pour obtenir l’URL qui nous permet d’obtenir le code d’activation et de lui donner des autorisations dans notre compte Gmail. Nous exécutons la commande suivante et ouvrons l’URL dans un navigateur, Nous allons coller le code et c’est tout!
[Langue du code source=”Plaine”]gcalcli list –noauth_local_webserver[/Code source]
Nous essayons de voir si nous voyons les calendriers dans notre compte:
[Langue du code source=”Plaine”]gcalcli list[/Code source]
Et nous essayons de nous montrer si nous avons des événements dans les prochaines années. 15 compte-rendu:
[Langue du code source=”Plaine”]gcalcli rappeler 15 ‘echo %s'[/Code source]
Nous créons le script suivant ‘lee_calendario.sh’ et le rendre exécutable:
[Langue du code source=”Plaine”]
#!/bin/bash
CITA='/usr/local/bin/gcalcli remind 4 'echo %s’ –cal=Personnel'
Écho $CITA
si [ « $CITA" == "" ]; alors
echo "Pas de rendez-vous"
autre
echo "Il y a des dates"
TEMPS=$(coupe -c-7 &ÈRE;Lt;&ÈRE;Lt;&ÈRE;Lt; « $CITA »)
Écho $HORA
SUJET=${RENDEZ-VOUS:7:1000}
PHRASE1="Hector, en cinq minutes, à "
SENTENCE2=" Se souvenir "
PHRASE="$FRASE 1 $HORA $FRASE 2 $ASUNTO"
Écho $FRASE
Écho $FRASE | /usr/bin/festival –Tts
Fi
[/Code source]
Et nous avons essayé de l’exécuter!
[Langue du code source=”Plaine”]./lee_calendario.sh[/Code source]
Nous le mettons dans crontab pour qu’il s’exécute tous les 5 minutes et vous avez terminé!
[Langue du code source=”Plaine”]*/5 * * * * /Accueil/PI/lee_calendario.sh[/Code source]
Lire les e-mails du Raspberry Pi,
Avec ce simple script python, nous serons en mesure d’obtenir des e-mails non lus via une connexion IMAP à notre serveur de messagerie, Il nous lira l’expéditeur et l’objet de chaque e-mail. Nous créons le fichier 'lee_mail.py':
[Langue du code source=”Plaine”]
Importer imaplib
à partir de email.header importer decode_header
mail = imaplib. IMAP4_SSL('FQDN_SERVIDOR_CORREO')
mail.login('USUARIO@DOMINIO', 'MOT DE PASSE')
mail.select('BOÎTE DE RÉCEPTION', readonly=Vrai)
Typ, nouveau = mail.search(Aucun, « INVU »)
nouveau = nouveau[0].fendre()
Si Len(Nouveau) > 1:
Mails = 'Vous avez ‘ + Str(Len(Nouveau)) + ‘ Nouveaux e-mails’
Sous-processus d’importation
sous-processus.appel([« /accueil/pi/textoAvoz.sh », Mails])
Elif Len(Nouveau) == 1:
Mails = 'Vous avez un nouvel e-mail’
Sous-processus d’importation
sous-processus.appel([« /accueil/pi/textoAvoz.sh », Mails])
si (Len(Nouveau) > 0):
res = liste()
res1 = liste()
pour msg dans le nouveau:
Typ, données = mail.fetch(Msg, ‘(BODY[EN-TÊTE. CHAMPS (OBJET)])’) # DE, DATE, etc
données = données[0][1].bande()
décodé = decode_header(date[9:])[0] # « Objet: " Est 9 Caractères longs
texte = décodé[0].Remplacer(« rn », "")
si (Décodé[1] != Aucun):
texte = unicode(SMS, Décodé[1])
res.append(texte.encode(« UTF-8 »))
Typ, data1 = mail.fetch(Msg, ‘(BODY[EN-TÊTE. CHAMPS (DE)])’) # DE, DATE, etc
data1 = data1[0][1].bande()
À = data1.index(‘<‘)
décod1 = decode_header(données1[6:AT-1])[0] # « Objet: " Est 9 Caractères longs
texte1 = décodé1[0].Remplacer(‘"’, "")
si (décodé1[1] != Aucun):
text1 = Unicode(texte1, décodé1[1])
res1.append(texte1.encode(« UTF-8 »))
text1 = Unicode(texte1)
texte = unicode(SMS)
importer UnicodeData
text1output = unicodedata.normalize('NFKD', texte1).Encoder('ASCII',« Ignorer »)
textoutput = unicodedata.normalize('NFKD', SMS).Encoder('ASCII',« Ignorer »)
Texte = '"Courrier de ‘ + text1sortie + ‘, avec sujet: ‘ + textsortie + ‘"’
imprimer (SMS)
Sous-processus d’importation
sous-processus.appel([« /accueil/pi/textoAvoz.sh », SMS])
[/Code source]
Nous n’oublions pas de le rendre exécutable, le mettre dans le cron quand même si nous sommes intéressés par la programmation qui nous intéresse.
Facile et simple comment savoir si nous avons des rendez-vous sur le calendrier ou des e-mails et que nous voulons une voix douce pour nous le dire! J’espère que vous l’apprécierez!