Christophe Nowicki

August 27, 2009

Text-to-Speech avec eSpeak, MBROLA et Speech Dispatcher

Je continue à travailler sur l’ajout de la parole dans mon système domotique.
En ajoutant le support des voix MBROLA, je trouvais le code de mon module xPL, de plus en plus difficile à comprendre.
Et je n’étais pas très satisfait du résultat :

  • le module est spécifique à eSpeak ;
  • le nombre d’arguments à passer en ligne de commande au module devenait trop important.

J’ai donc continué mes recherches dans le domaine est découvert Speech Dispatcher.
Il s’agit d’un daemon réseau qui s’occupe de l’abstraction par rapport aux différents systèmes de Text-to-Speech et met à disposition ces ressources à l’aide d’un protocole unique : SSIP.

Dans cette article, je vais décrie l’installation que j’ai mis en place chez moi.
Pour obtenir un voix en Français de qualité correct et compréhensible sur une distribution Debian GNU/Linux version “Lenny”.

Installation de MBROLA

Vous avez besoin de l’exécutable et des voix du projet MBROLA.
Téléchargeables sur le site du projet au format binaire :

$ wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
$ unzip mbr301h.zip
$ chmod +x mbrola-linux-i386
# mv mbrola-linux-i386 /usr/local/bin/mbrola
$ mbrola
MBROLA 3.01h - speech synthesizer
Author : Thierry Dutoit with help of AC/DC adaptator Vincent Pagel
Copyright (c) 95 Faculte Polytechnique de Mons (TCTS lab) - T.Dutoit
Email mbrola@tcts.fpms.ac.be to freely subscribe as a user
...

Vous avez ensuite besoin d’une voix :

$ wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr1/fr1-990204.zip
$ unzip fr1-990204.zip
# mkdir /usr/share/mbrola/
# mv fr1 /usr/share/mbrola/

Vous pouvez ensuite tester la sortie à l’aide de la commande suivante :

$ espeak -v mb/mb-fr1 "bonjour, c'est la voix de secret story" | mbrola /usr/share/mbrola/fr1/fr1 - - | aplay -r16000 -fS16

Installation et configuration de Speech Dispatcher

Le programme est directement disponible dans Debian.

# apt-get install speech-dispatcher

Il faut ensuite modifier le fichier de configuration /etc/speech-dispatcher/speechd.conf de la manière suivante :

DefaultLanguage "fr"
DefaultVoiceType "MALE1"
AddModule "espeak-generic" "sd_generic" "espeak-generic.conf"
DefaultModule espeak-generic

Et le fichier /etc/speech-dispatcher/modules/espeak-generic.conf :


GenericExecuteSynth \
"echo \"$DATA\" | espeak -v $VOICE -s $RATE -a $VOLUME -p $PITCH $PUNCT --stdin | /usr/local/bin/mbrola /usr/share/mbrola/fr1/fr1 - - | aplay -r16000 -fS16"

Vous pouvez relancer le deamon et vous connecter dessus :

# /etc/init.d/speech-dispatcher restart


$ telnet localhost 6560
SET self CLIENT_name me:and:myself
208 OK CLIENT NAME SET
SPEAK
230 OK RECEIVING DATA
Attention, le frigo est vide
.
225-20
225 OK MESSAGE QUEUED

Références

Voici quelques liens vers des documents intéressants sur le sujet :

Filed under: Debian,Home automation — Tags:, , , — cscm @ 16:41

August 25, 2009

Blacklister chez SpamHause à cause de la signature de mon serveur mail …

Les services comme SpamHaus sont vraiment mauvais.

Mon serveur de mail a été blacklister à cause de sa signature :

$ telnet mail.csquad.org 25
Trying 82.247.220.114...
Connected to mail.csquad.org.
Escape character is '^]'.
220 Microsoft ESMTP MAIL Service, Version: 5.0.2195.6713

Et à votre avis, j’utilise un serveur Microsoft Exchange pour la gestion des mails?

Ne faites pas confiance aux services qui vous proposent des listes d’adresse ip à blacklister …

Ces entreprises portent atteinte directement à la Network neutrality.

A chaque fois que vous installez ce genre de service sur une machine vous :

  • augmentez le pouvoir de nuisance de ses services ;
  • transformez l’Internet en Minitel.

Pour combattre le spam, les techniques suivantes sont largement suffisantes :

Filed under: Coup de gueule,Network — Tags:, , — cscm @ 17:51

August 11, 2009

xPL Text-to-Speech module

I’ve wote an Text-to-Speech module for xPL Perl based on eSpeak and the Speech::eSpeak Perl module.

The xPL TTS.BAISC schema is very basic, but suffisent for my text-to-speech needs.

Setup on Debian GNU/Linux

You should install the fallowing packages with apt :
# apt-get install libespeak-dev dh-make-perl espeak-data devscripts

And build the Perl module :
# cd /usr/src
# wget http://search.cpan.org/CPAN/authors/id/H/HG/HGNENG/Speech-eSpeak-0.3.tar.gz
# tar xzf Speech-eSpeak-0.3.tar.gz
# dh-make-perl Speech-eSpeak-0.3
# cd Speech-eSpeak-0.3
# debuild
# dpkg -i dpkg -i ../libspeech-espeak-perl*

Get my source code :
# wget http://www.csquad.org/wp-content/contrib/eSpeak.pm -O /usr/share/perl5/xPL/Dock/eSpeak.pm
# wget http://www.csquad.org/wp-content/contrib/xpl-tts -O /usr/bin/xpl-tts
# chmod +x /usr/bin/xpl-tts

Usage exemples

Launch the xpl-tts program :
$ xpl-tts -espeak-verbose -espeak-voice-language en -espeak-voice-gender 2 -espeak-voice-age 42
Then, send an xpl command on the network :
$ xpl-sender -m xpl-cmnd -c tts.basic speech="xPL rocks everything"

You should hear the synthesized voice.

And Voila ;-)

Bugs and evolutions

I will submit this module to the xpl-perl project and try to implement MBROLA project support. Because I’ve got a more humain voices.

Filed under: Home automation — Tags:, , , — cscm @ 17:17

August 7, 2009

L’arnaque des ampoules basse consommation et les solutions à LEDs

ampoules

Je suis sur que la plupart d’entre vous ont remplacé leur Lampes à incandescence classique par des Lampe fluorescente, et se disent avoir fait un geste pour la planète.

Mais êtes-vous vraiment sûr d’avoir réellement fait un bon geste pour la planète ?

Dans cette article, je vais essayé de vous démontrer la nocivité des ampoules fluorescentes et vous présenter une manière de voir l’éclairage autrement.

On va faire des économies d’énergie … ridicules

Il est vrai que les ampoules fluocompactes permettent de faire des économies d’énergie.
Mais celles-ci sont risibles par rapport à votre consommation globale.
En fait l’éclairage représente 3% de la consommation d’électricité, c’est-à-dire, de 0,6% à 1,2% de la consommation totale d’énergie du pays.
Voici un graphique d’exemple de consommation d’énergie (toutes énergies confondues) en kWh d’un ménage :

economies_graph2

Vous avez réduit de 50%, les 450kWh de l’éclairage. Bravo!

De plus, il faut savoir que :

  • La consommation électrique globale de la France augmente de 3% par an ;
  • Le prix du kWh augmente par rapport à l’inflation, c’est-à-dire en euros constant ;
  • l’électricité produite dans le monde, vient principalement du gaz et du charbon, des ressources naturelles non renouvelables.

Donc au mieux, dans le meilleur des cas possibles, vous n’avez rien gagné durant une année avec le remplacement des ces ampoules.

Les ampoules fluocompactes sont dangereuses

Un lobby très puissant s’est chargé de faire voter l’interdiction de la commercialisation des ampoules à incandescence et de la mise en place de barrières douanières européenne sur l’importation des ampoules basse consommation Chinoises.

Les médias, n’ont pas couvert les très nombreux inconvénients des ampoules fluocompactes :

  • Il leur faut un certain temps (de l’ordre de quelques dizaines de secondes) pour atteindre leur intensité lumineuse optimale ;
  • La présence de poudres fluorescentes et d’un gaz à base de vapeur de mercure dans le tube ;
  • Il s’agit d’un déchet dangereux nécessitant une élimination particulière ;
  • En cas d’incident, il vous en coûtera un dépollution du mercure ;
  • L’émission d’ondes UV ;
  • L’émission d’ondes radio basses fréquences (50 à 500 Hz) et haute fréquences (20 à 60 kHz).

Alors, vous pensez encore avoir fait un bon geste pour la planète avec ces ampoules?

Vous êtes des rats de laboratoire … qui rapportent un peu d’argent

rat cage lumière

Les effets de l’exposition du corps humain aux champs d’ondes électromagnétiques ne sont pas connus.

Néanmoins nous nageons toutes la journée dans une soupe d’ondes électromagnétiques formée par les téléphone portables, les connexions Wifi et les ampoules fluocompactes …

Pourquoi le gouvernement n’implique pas le principe de précaution dans ce domaine ?

En faite, il y a des milliards en jeu, car la filière des ampoules fluocompactes va créer des emplois pour la production et dans la gestion des déchets.

Par contre cette politique court-termiste n’as pas encore prise en compte le coup du risque sanitaire dans la population ni les répercutions sur l’environnement.

Des solutions… lumineuses?

ampoule v-lumtech

Pour trouver des alternatives aux ampoules fluorescentes, il faut chercher du coté des solutions d’illumination à LED

.

Les avantages des LEDs sont les suivants :

  • Consommation inférieure de 50% par rapport à des ampoules fluorescentes, soit 10x moins que celles à incandescence ;
  • Pas d’émission d’ondes électromagnétiques ;
  • Pas d’émission de chaleur ;
  • Durée de vie supérieure (en moyenne 100 000 heures, soit plus de onze ans de fonctionnement).;
  • Possibilité de changer la couleur de l’éclairage et de le contrôler à distance ;
  • Très bon WAF.

Les défauts et les inconvénients :

  • Encore difficiles à trouver en France ;
  • Très chères à l’achat ;
  • Certains modèles sont trop lumineux et représentent un danger pour les yeux.

Je pense que le principal problème pour l’adaptation des LEDs est l’acquisition des différentes notions liées à l’éclairage.
En effet, les gens ont pris l’habitude d’acheter des ampoules de X Watts, ou équivalant X Watts, mais ces mesures n’ont aucun sens pour l’éclairage, je vois mal Madame Michu aller chez Leroy Merlin pour demander :

“bonjour, je voudrais des 5mm, avec un angle de 140° en 4100 K, c’est pour la cuisine”.

Oui, mais c’est un peu cher

Voici le budget pour l’illumination de mon appartement de 55m^2. J’ai pris l’ensemble de mes composants chez ampoule-leds.fr.
Il existe aussi des bon plans pour acheter ces composants moins cher en Allemagne ou bien faire importer de Hong-Kong. Et je conseil vivement d’acheter ailleurs que chez ampoule-leds.fr, car la qualité de leur service SAV est vraiment mauvaise !

Par contre, je vous conseille de n’acheter ces articles qu’en soldes, car les prix font vraiment “yoyo”.

Modèle Nombre Prix unitaire en € TTC Total en € TTC
E27 VL 150 led blanc day-light 360° 220v V-Lumtech 4 23-37 92-148
E27 VL 90 led blanc day-light 360° 220v V-Lumtech 3 12-24 36-72
E14 VL 90 led blanc day-light 360° 220v V-Lumtech 2 8-24 16-48

Total en soldes ~ 150 €
Total hors soldes ~ 270 €

Une autres approche de l’illumination

Comme la plupart des gens, j’ai d’abord cherché à remplacer mes ampoules par leur équivalant à LED.
Mais je me suis rendu compte que ce n’était pas forcement la bonne approche.
En effet, les LEDs permettent de placer les sources de lumière dans n’importe quel endroit.
Il est donc possible de créer plusieurs sources de lumière dans une même pièce.
Nous avons pris l’habitude, de nous éclairer à l’aide d’une seule source de lumière. (anciennement appeler feu, bougie ou lampe).
Mais la technologie des LEDs change notre vision de l’éclairage.

Avant de monter votre installation, je vous conseilles de visiter cette galerie de réalisations pour vous inspirer.

Conclusion

Je pense que le grand publique aura difficilement accès à cette technologie, en effet, le nuage de fumée créé par le lobby sur les ampoules fluorescentes à dégoûter beaucoup de personnes.

Celles avec lesquelles j’ai discuté du sujet (des peons) m’ont clairement répondu :

tu es gentil, mon coco, mais je viens de mettre 10 euro dans une ampoule, j’ai fait un grand geste pour la nature, alors qu’il y a quelques années une ampoule c’était seulement 1euro. Alors tes illuminations à LED encore plus chère, tu te les garde !

C’est clair ;-)

Je pense donc qu’il faut donc agir au niveau individuel tout en étant conscient que l’éclairage ne représente qu’une très faible partie de nos émissions de gaz à effet de serre.

Les ampoules à LED permettent de :

  • réduire de 75% l’énergie nécessaire à l’éclairage ;
  • limitent le nombre de sources de rayonnement électromagnétique.

Elle apportent une évolution concernant les différentes possibilités d’éclairage.

Références

Filed under: Coup de gueule,Home automation — Tags:, , — cscm @ 17:31

August 3, 2009

Refroidir un PC avec de l’huile, la suite

Voici les photos du montage final.

J’ai acheté mes aquariums sur mesure chez Aqua distribution.

Il s’agit des photos de ma nouvelle gateway et du switch dans les aquariums.

Et si vous pouvez voir les photos, c’est que tout fonctionne parfaitement ;-)

oil cooling oil cooling
oil cooling oil cooling
switch linksys SRW2024 switch linksys SRW2024
switch linksys SRW2024 oil cooling switch linksys SRW2024 oil cooling
Filed under: Do it yourself,Hardware — Tags:, — cscm @ 21:35

August 1, 2009

Laconica, un twitter libre!

Pour ceux qui me côtoient tous les jours, j’ai principalement deux gros défauts:

  • Je m’intéresse à trop de choses … ;-)
  • J’envoie de la “propagande” par Jabber à mes contacts.

Du coup, le principe du Micro-blogging et du service Twitter m’a beaucoup séduit.

Mais comme je suis un Ayatollah du logiciel libre et que je prône l’auto-hébergement.
Mon inscription sur un service web deux points zéro centralisé aurait fait un peu tâche dans ma pratique du logiciel libre radical (vu le nombre de mots clés dans cette phrase, je pense que je vais avoir droit à une décente des RG ;-) ).

Je viens de trouver la solution, Laconica (prononcé “luh-KAWN-ih-kuh”), un logiciel de micro-blogging libre écrit en PHP. L’objet de cet article est de décrire l’installation, la configuration et la mise en place de passerelles (mail, twitter, sms, et jabber) sur un serveur Debian GNU/Linux.

Les Fonctionnalités

Le logiciel dispose des fonctionnalités suivantes :

  • Micro-blogging ;
  • Export des données au format RSS / Atom ;
  • Authentification via OpenID ;
  • Gestion de plusieurs comptes ;
  • Interface Jabber : notification et post ;
  • Interface avec Twitter ;
  • Notification via SMS ;
  • Feuille de style pour les mobiles ;
  • Une traduction de qualité en Français ;
  • Gestion du format FOAF ;
  • Intégration avec de nombreuses application ;
  • Affichage des messages via un “badge” directement dans le code de votre site web : Identica Badge ;
  • Génération automatique de Sitemaps pour le référencement ;
  • Support du protocole OpenMicroBlogging pour le suivi décentralisé des messages.

Pré-requis

Pour l’installation de Laconica vous avez besoin :

  • d’un serveur sous Debian GNU/Linux ;
  • serveur HTTP comme Apache 2 ;
  • base de donné comme MySQL ou bien Postgresql ;
  • d’un serveur de Mail ;
  • d’un serveur Jabber (optionnel) ;

Installation des dépendances

Le programme nécessite les dépendances suivantes :

# apt-get install apache2-mpm-prefork libapache2-mod-php5 php5-mysql php5-gd php5-cli php-pear php-mail php-db php-http php-xml-parser php5-curl

Installation du logiciel

Laconica, est une application web, l’installation consiste simplement à extraire le fichier tgz dans le répertoire /var/www et configurer Apache.

# cd /var/www
# wget http://laconi.ca/laconica-0.8.0.tar.gz
# tar xvf laconica-0.8.0.tar.gz
# ln -s laconica-0.8.0 laconica
# chown www-data: laconica-0.8.0
# cd laconica
# mv htaccess.sample .htaccess

Il faut éditer le fichier .htaccess pour modifier la règle RewriteBase.

Vous devez ensuite configurer le site web pour Apache en mettant le contenu suivant dans le fichier /etc/apache2/sites-available/laconica :

<virtualhost *:80>
ServerName mblog.nom_de_domaine
ErrorLog /var/log/apache2/mblog.nom_de_domaine/error.log
CustomLog /var/log/apache2/mblog.nom_de_domaine/access.log common
DocumentRoot /var/www/laconica
</virtualhost>

Il faut créer le répertoire pour les logs du site, activer le site et le module rewrite dans Apache :


# mkdir /var/log/apache2/mblog.nom_de_domaine/
# a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
# a2ensite laconica
Enabling site laconica.
Run '/etc/init.d/apache2 reload' to activate new configuration!
# /etc/init.d/apache2 restart

Vous devez créer une base de données avec MySQL ou PostgreSQL et attribuer tous les droits sur la base à un utilisateur.

Vous pouvez ensuite pointer votre navigateur sur l’adresse de votre site : http://mblog.nom_de_domaine/install.php

La procédure d’installation vous demande simplement les informations de connexion à la base de données.

Une fois l’installation effectuée, vous pouvez vous enregistrer et utiliser l’application.

Configuration Mono-utilisateurs

Une fois que vous avez créer votre compte et que vous êtes le seul à utiliser l’application; il faut interdire les enregistrements de nouveau compte en modifiant le fichier config.php :
$config['site']['closed'] = true;

Configuration de la passerelle Twitter

Mouahah, et puis quoi encore? Non, je n’ai pas testé, je n’ai pas réussi à créer un compte …
Mais d’après la documentation de Laconica, il suffit de saisir son login et mot de passe.

Configuration de la passerelle de Messagerie

Pour cette partie, il faut créer un alias spécial sur votre serveur de messagerie.
Voici ma configuration pour Postfix.
Dans le fichier /etc/aliases, il faut ajouter la ligne suivante :
*:|/var/www/laconica/scripts/maildaemon.php
Refaire la base des alias de postfix :
# postalias /etc/aliases
Rendre le fichier maildaemon.php exécutable.
chmod +x /var/www/laconica/scripts/maildaemon.php
Ce script pour fonctionner nécessite l’extension PECL mailparse de PHP.
La procédure d’installation est la suivante :
# apt-get install dh-make-php php5-dev xsltproc
# cd /usr/src/
# dh-make-pecl --only 5 mailparse
downloading mailparse-2.1.5.tgz ... Starting to download mailparse-2.1.5.tgz (37,332 bytes) ..........done: 37,332 bytes File /var/www/laconica/scripts/mailparse-2.1.5.tgz downloaded
Creating debian source package: php-mailparse-2.1.5
Upstream is: Wez Furlong, Brian Shire
Guessing Maintainer: root
# cd php-mailparse-*/
# dpkg-buildpackage -b
...
# dpkg -i ../php5-mailparse_2.1.5-1_i386.deb

Une fois la passerelle en place, il faut créer une adresse “incoming” :
Pour cela, il faut aller dans la configuration e-mail de votre compte et cliquer sur nouveau pour obtenir une adresse de type : XMWY7QTL3MR42@votre_nom_de_domaine.

Vous pouvez ensuite envoyer un mail à cette adresse et vérifier que tout ce passe bien dans les logs de postfix :

Jul 31 11:02:50 mail postfix/local[30821]: E76C8F40FB: to=<XMWY7QTL3MR42@csquad.org>, relay=local, delay=0.56, delays=0.01/0/0/0.55, dsn=2.0.0, status=sent (delivered to command: /var/www/laconica/scripts/maildaemon.php)

Une petite astuce pour une installation perso, est de faire un seul alias et de modifier le contenu de la table user.incomingemail dans la base de données.

Configuration de la passerelle Jabber

Il faut modifier le fichier de configuration config.php et ajouter les lignes suivantes :

$config['xmpp']['enabled'] = true;
$config['xmpp']['server'] = "jabber.csquad.lan";
$config['xmpp']['port'] = 5222;
$config['xmpp']['user'] = "laconica";
$config['xmpp']['password'] = "***********";
$config['xmpp']['encryption'] = true;
$config['daemon']['user'] = "www-data";
$config['daemon']['group'] = "www-data";

Laconica, ne sait pas s’enregistrer auprès du serveur, ni s’ajouter dans votre roaster, il faut donc le faire manuellement,
soit à l’aide d’un client Jabber classique ou bien à l’aide de l’interface d’administration de votre serveur.
Ejabberd permet de le faire directement via l’interface Web.

Vous pouvez ensuite lancer le daemon à l’aide de php en ligne de commande :

# cd /var/www/laconica/
# php scripts/xmppdaemon.php -f
2009-07-31 06:59:42 LOG_INFO: XMPPDaemon(uniquenamedaemon): INITIALIZE XMPPDaemon laconica@jabber.csquad.lan/uniquenamedaemon
2009-07-31 06:59:42 LOG_INFO: XMPPDaemon(uniquenamedaemon): Connecting to jabber.csquad.lan on port 5222
2009-07-31 06:59:42 LOG_INFO: XMPPDaemon(uniquenamedaemon): Connected
2009-07-31 06:59:42 LOG_INFO: XMPPDaemon(uniquenamedaemon): Sending initial presence.
2009-07-31 06:59:42 LOG_INFO: XMPPDaemon(uniquenamedaemon): Done connecting.
2009-07-31 06:59:42 LOG_DEBUG: XMPPDaemon(uniquenamedaemon): Initializing stanza handlers.
2009-07-31 06:59:42 LOG_DEBUG: XMPPDaemon(uniquenamedaemon): Beginning processing loop.

Une fois lancé, le contact du micro blog doit apparaître dans votre client Jabber.
Mais lorsque vous lui parlez, il ne vous reconnait pas. Il faut donc associé le compte Jabber à votre compte Laconica.
Pour cela, rendez-vous sur l’interface de configuration à l’adresse suivante : http://mblog.votre_nom_de_domaine/settings/im,
et saisissez votre adresse Jabber que Laconica vous demandera de confirmer à l’aide d’une url de vérification.

Et voila, tous les messages que vous envoyez à ce contact Jabber se retrouvent directement sur votre micro blog ;-)
Et lorsqu’un utilisateur poste un message vous recevez celui-ci sur votre compte Jabber.

Suivre une personne de manière distribuée

Pour suivre une personne sur Laconica de manière distribuée, il suffit de cliquer sur le bouton subscribe du profil.
L’application vous demande, le pseudo de la personne et l’url de votre profil.
Celle-ci est de la forme : http://laconica.<votre_domaine>/<nickname>/.

Conclusion

Et voilà ! Laconica ça poutre les ours ! ;-)

Filed under: Debian,Network — Tags:, , , , , — cscm @ 14:00

Powered by WordPress