Copyright © 2005 Maxin B. John
Copyright © 2005 Deny
Copyright © 2005 Joëlle Cornavin
Article paru dans le n°114 de la Gazette Linux de mai 2005.
Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
Table des matières
Souhaitez-vous une version un peu plus « humanisée » de votre ordinateur ? Si vous êtes prêt pour cette aventure, tout ce dont vous avez besoin est un ordinateur équipé du système d'exploitation Linux
, ainsi qu'un peu de temps pour télécharger et installer les programmes requis. Amusons-nous un peu avec les logiciels bash et Festival TTS (Text To Speech).
J'utilise une machine Pentium 4® de 1,6 GHz dotée de 128 Mo de mémoire vive et d'une installation Redhat Linux 9®. Le système dispose d'une carte son intégrée, ce qui est tout à fait suffisant pour cette entreprise. Si vous voulez garder votre intimité, je ne saurais trop vous recommander aussi une paire d'écouteurs.
Le logiciel que nous allons utiliser est le système de synthèse vocale Festival — un programme de TTS ou synthèse de la parole à partir du texte, développé par l'université d'Édimbourg. La puissance du scriptage shell peut exploiter tout le potentiel du programme Festival. Le paquetage Festival
fait partie des distributions Redhat 9® et Fedora. Si vous ne l'avez pas déjà installé, vous pouvez le télécharger sur http://www.cstr.ed.ac.uk/downloads/festival/1.95/ ou installer son paquetage RPM à l'aide de la commande rpm habituelle.
Comme avec tout manuel de langage C, commençons par le programme « Bonjour monde
». Pour cela, saisissez :
echo "Bonjour monde"| festival --tts
à l'invite de commande. Si tout fonctionne, nous devrions entendre « Bonjour monde » à travers les haut-parleurs.
Écrivons maintenant un programme qui joue quelque chose comme « Bonjour monsieur
» à chaque fois que nous nous connectons au système. La sortie son changera dynamiquement en fonction de l'heure de connexion. Voici comment procède le script shell :
#!/bin/bash dat=`date +%H` matin=12 après-midi=15 soirée=24 if [ $dat -le $matin ] then echo "Bonjour monsieur" |festival --tts elif [ $dat -gt $matin ] && [ $dat -le $après-midi ] then echo "Bon après-midi monsieur"|festival --tts elif [ $dat -gt $après-midi ] && [ $dat -le $soirée ] then echo "Bonne soirée monsieur"|festival --tts fi
Enregistrez ce fichier sous le nom salut.sh
dans votre répertoire personnel, puis éditez .bash_profile
dans ce même répertoire et ajoutez-y ~/salut.sh. Dorénavant, vous entendrez « ce doux salut » chaque fois que vous vous connecterez à votre système.
Il est possible d'utiliser Festival avec cron pour créer un assistant personnel chargé de vous rappeler vos rendez-vous. cron sert à ordonnancer des programmes sous Linux
. S'il ne fonctionne pas déjà, démarrez le démon cron en exécutant service crond start en tant que root. Créez maintenant vos alertes sonores — placez les lignes suivantes dans le fichier thé.sh
dans votre répertoire personnel :
#!/bin/bash echo "N'oubliez pas de prendre votre thé à 18.30 "| festival --tts
Programmez à présent cette tâche dans cron avec la date et l'heure spécifiées. Pour vous en souvenir chaque jour à 18h30, créez un fichier et nommez-le test
. Insérez dans ce fichier les lignes suivantes :
30 18 * * * sh ~/thé.sh
et exécutez la commande :
crontab test
pour programmer l'événement. Pour vérifier que la tâche est correctement programmée, exécutez :
crontab -l
Le système énoncera le message à l'heure fixée. Vous pouvez même programmer le PC de vos parents pour les surprendre en leur souhaitant un joyeux anniversaire.
Ce qui se passe dans le monde vous intéresse ? Vous pouvez créer un lecteur de nouvelles RSS qui va obtenir les toutes dernières nouvelles du site web du journal Le Monde® et les lire pour vous. À cette fin, nous allons utiliser le flux RSS de ce site web.
RSS (Really Simple Syndication) est une technologie visant à partager des informations sur le Web. Son format XMLsimple et bien établi favorise la syndication des manchettes. Dès lors qu'un site web crée un fichier RSS, il crée un moyen de permettre à d'autres d'avoir accès à ses manchettes. Les sites de nouvelles connus comme Yahoo!®, BBC News®, The New York Times®, ainsi que des dizaines de milliers de blogs (journaux personnels) et de sites de médias indépendants publient tous des flux RSS que nous pouvons utiliser.
Ce script shell va récupérer le flux RSS du site du journal Le Monde®, puis traiter ses manchettes et son contenu. La sortie sera ensuite transmise au programme Festival, de façon à ce que nous puissions entendre les dernières nouvelles du journal Le Monde.
#!/bin/sh # Script shell permettant d'obtenir et de lire les toutes dernières nouvelles du journal Le Monde à l'aide de Festival. # Ici, nous spécifions l'URL url="http://www.lemonde.fr/rss/sequence/0,2-3224,1-0,0.xml" # Spécifiez le serveur mandataire (proxy) ici, si vous en avez un proxy="151.8.18.40:6588" headarg="-10" # cinq manchettes par défaut, changez cette valeur pour augmenter le nombre de manchettes # Spécifiez le serveur mandataire avec l'option -x du programme curl, si vous n'en # utilisez pas, supprimez la partie '-x "$proxy"' curl --silent -x "$proxy" "$url" | grep -E '(title>|description>)' | \ sed -n '4,$p' | \ sed -e 's/<title>//' -e 's/<\/title>//' -e 's/<description>/ /' \ -e 's/<\/description>//' | \ # Ici, nous transmettons la sortie à Festival head $headarg | fmt|festival --tts exit 0
Enregistrez le code sous rss.sh et exécutez-le de la manière suivante :
sh rss.sh
Assurez-vous d'être connecté à l'Internet avant d'exécuter ce code, puisque le programme curl doit contacter le site web du journal Le Monde® et en récupérer le contenu.
Quelquefois, je souhaiterais embaucher quelqu'un pour me lire des livres ou des pages de man. Actuellement, je ne lis pas les pages de man — je les écoute juste ! Par exemple, pour écouter la page de man de cron, saisissez :
man cron | festival --tts
Vous voulez connaître le nom des utilisateurs connectés sur votre système ? Saisissez :
who | awk 'print {$1};'| festival --tts
Vous pouvez vous faire lire un grand nombre de sujets — faites donc un essai !
Je n'ai pas abordé la théorie qui est derrière la synthèse de la parole à partir du texte (text to speech) car elle n'est pas l'objectif de cet article. Si cela vous intéresse, consultez The Festival Speech Synthesis System pour plus de détails.
Pour en savoir sur le shell scripting, consultez les ouvrages suivants :
Linux Shell Scripting with Bash, par Ken O. Burtch
Wicked Cools Shell Scripts, par Dave Taylor
Maxin B. John travaille pour HCL Infosystems Ltd®, à Pondicherry (Inde) et il est MCA Graduate du Collège gouvernemental de Thrissur. Il aime pratiquer Python et Bash. Il remercie son gourou, Mr. Pramode C.E de l'avoir initié au monde merveilleux de
Linux
.
L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.
Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://wiki.traduc.org/Gazette_Linux.
Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.