J’ai été très impressionné par la qualité de la vision du directeur scientifique de chez Mc Donald Bradley au sujet du web sémantique. Il présente non seulement de très justes illustrations de la vision de Tim Berner’s Lee mais il la remet également de manière très pertinente dans le contexte général de l’évolution de l’informatique sur les dernières décennies, à travers notamment la perspective d’applications concrètes pour l’entreprise. Sa déclaration d’indépendance des données laisse présager un avenir excellent pour la nouvelle discipline informatique qu’est l’architecture de l’information. McDonald Bradley est une entreprise que je trouve d’autant plus intéressante qu’elle se positionne sur des marchés verticaux clairement délimités, au sein du secteur public (et donc précurseurs en matière d’open source) : les services de renseignement, la défense, la sécurité, les finances publiques et les collectivités locales. A rapprocher des interrogations de Kendall Grant Clark au sujet de l’appropriation du web sémantique par les communautés du libre ? Malheureusement, je crains qu’il n’existe pas d’entreprise équivalente en France…
Web scraping with Python
Here is a set of resources for scraping the web with the help of Python. The best solution seems to be Mechanize plus Beautiful Soup.
See also :
- ClientTable (see also this comment)
- DOMForm
- Pull parser
- wwwsearch ‘s FAQ
- Simon Willison’s weblog on this topic
- Dive Into Python’s tutorial on HTML processing
Off-topic : proxomitron looks like a nice (python-friendly ?) filtering proxy.
Solution open source de gestion des identités
Linagora propose une solution complète de gestion des identités électroniques appuyée sur des logiciels open source : InterLDAP (s’appuyant notamment sur AACLS).
Avantages : une couverture fonctionnelle très large (WebSSO, gestion de listes de diffusion, administration déléguée, infrastructure d’annuaires avec réplication, flexibilité extrême dans la gestion des règles de contrôle d’accès, user provisioning…), un coût de licences nul, des choix technologiques prudents et « industriels » (J2EE, OpenLDAP, respect des standards ouverts…).
Inconvénients : encore peu « packagée » d’un point de vue marketing, pas de grosse référence dans le secteur privé, difficile à acheter par un acteur privé (cf. ci-dessous), difficilement comparable avec un produit propriétaire concurrent.
Pour reprendre des thèmes évoqués avec Nicolas Chauvat de Logilab lors d’une récente conversation, ce type d’offres souffre de défauts communs à la plupart des offres produits open source lorsqu’il s’agit de les vendre notamment au secteur privé. Comment les acheteurs de grandes sociétés du CAC 40 peuvent-ils évaluer leur performance (et donc leur prime de fin d’année ?), eux qui ont l’habitude de la mesurer à l’aune du différentiel entre le prix public des licences et le prix négocié ? Les modes d’achats logiciels des gros acteurs privés ne sont vraiment pas adaptés à l’achat de solutions open source. En effet, le coût de licence étant nul, c’est l’évaluation d’un coût total de possession qui peut seul permettre la comparaison entre une offre open source et une offre propriétaire. Or, outre le fait que les modèles de TCO sont généralement peu fiables ou alors très coûteux à mettre en place, il est difficile de prévoir le coût des développements spécifiques/personnalisation. L’achat d’un développement au forfait suppose normalement que l’acheteur soit capable de fournir un cahier des charges fonctionnel du besoin détaillé et stable pour que le fournisseur en concurrence puisse s’engager sur un coût prévisionnel et prenne à sa charge le coût du risque lié à cette prévision. Mais le problème, c’est que l’acheteur est généralement incapable de fournir un tel dossier car les services informatiques sont généralement trop contraints par les délais et l’imprévisibilité des maîtrises d’ouvrage pour pouvoir formaliser ce cahier des charges dans de bonnes conditions. Cela entraîne des pratiques d’achat dans lesquelles on compare d’une part un coût de licence et de support et d’autre part un coût du jour.homme pour le développement spécifique. Dès lors comment comparer un produit propriétaire pour lequel l’essentiel du coût présenté à l’achat est celui de la licence avec un produit open source pour lequel l’essentiel du coût présenté à l’achat est celui de l’intégration ?
Etant données la marge d’incertitude liée aux spécifications fonctionnelles (imprécises, peu stables), la marge d’incertitude liée au modèle de calcul du TCO et la marge d’incertitude liée à l’évaluation de l’adéquation d’un produit au besoin fonctionnel, il paraît relativement vain aux acteurs privés de vouloir considérer des solutions open source dans leurs appels d’offres. Ce n’est que lorsque la nature de la relation du client à son fournisseur est un élément stratégique de décision que le choix open source paraît devenir évident. Lorsque le client cherche une solution qui lui donne plus d’autonomie vis-à-vis de l’éditeur, c’est alors qu’il peut voir la valeur d’une offre open source. Mais, même dans ce cas, peut-on réellement quantifier cette valeur ? Est-elle défendable devant des acheteurs et des décideurs du secteur privé ? Sans doute. Pourtant, je n’ai encore jamais vu d’argumentaire marketing soutenu par un modèle financier solide et reconnu par la presse professionnelle qui arrive à démontrer cette valeur. Les entreprises françaises croient encore qu’open source signifie soit gratuit, soit bricolé par des non professionnels, soit « non industriel » ou, dans le meilleur des cas, croient que l’open source signifie « prétenduement vraiment moins cher ». Plus encore, je pense que la mentalité générale consiste à considérer l’open source comme « non gérable ». Lorsque cette mentalité aura changé, c’est que les entreprises du secteur de l’open source auront réussi.
PS : A ces difficultés, il faut ajouter le fait que la plupart des SS2L regroupent des passionnés des technologies qui n’ont pas forcément les compétences marketing et de vente que réunissent habituellement les éditeurs propriétaires. Mais ce dernier point n’est sans doute qu’un péché de jeunesse ?
Lobbying distribué par le Web
Pour les associations qui souhaitent coordonner l’action de lobbying d’un grand nombre d’adhérents (« écrivez à votre député », « envoyez un fax au maire », …), un produit Plone vient de voir le jour : Public Action Manager (PAM). Il est notamment utilisé sur le site activiste Public Knowledge. Voici comment ça marche :
Lorsque des militants s’inscrivent dans un site web équipé de P.A.M., le PAM identifie les coordonnées de leurs élus locaux et les garde en mémoire. Lorsqu’une actualité législative suscite l’intérêt de l’organisation, le gestionnaire du site créé une action à travers un jeu de formulaire Web. Une alerte est envoyée à chaque militant, avec une description du sujet qui est en jeu et une méthode simple pour contacter leurs élus.
Fonctionnalités - Gère des listes de diffusion
- Promeut la participation par fax, email, télégramme ou autre.
- Propose aux militants une grande diversité de lettres-type de manière à s’assurer que le message, tout en restant cohérent, ne devient répétitif.
- Mesure l’efficacité des actions grâce à des formulaires d’évaluation inclus dans les emails et grâce à des statistiques de mobilisation.
Il sera intéressant d’attendre le recul de quelques années pour évaluer si de tels logiciels rencontrent des usages importants en Europe. Est-ce que l’activisme à l’américaine est suffisament proche du militantisme à la française pour qu’un tel logiciel trouve ses usages en France ?
XML.com: Implementing REST Web Services: Best Practices and Guidelines
On me reproche parfois d’être un peu trop théorique. Alors, concernant le style architectural REST, voici quelques bonnes pratiques et guide de conduite pour construire des services Web conformes au style REST.
The Pyramid Principle
The Pyramid Principle est le titre d’un livre de Barbara Minto (ancienne de chez McKinsey) que je n’ai pas pris le temps de lire… Il m’a été recommandé par mon actuel chef, qui a une grande expérience de consultant. Il m’avait prêté ce bouquin mais je dois le lui rendre maintenant, alors j’en garde ici la trace en vue d’une éventuelle lecture future. C’est sensé être « the international bestseller on logic in writing and thinking ». Il s’agit d’une sorte de livre de recettes pour savoir comment organiser la rédaction d’un document ou d’une présentation PowerPoint. Points forts hypothétiques (j’en saurai plus quand je le lirai dans le détail) : peut permettre d’apprendre vite à faire les choses bien. Points faibles hypothétiques (idem) : peut-être un peu trop « cookie-cutter » dans le style. A rapprocher des sites critiquant la « pensée powerpoint » qui règne dans les grandes entreprises et fait la fortune des cabinets de conseil.
Carnets Web en entreprise
Petit à petit, l’idée que les carnets Web (« weblogs » ou « blogs« , si vous préférez) introduisent une forme de communication utile (nécessaire ?) à l’entreprise fait son chemin. On m’a récemment demandé de sélectionner des pointeurs sur le sujet. Voici donc ma sélection. Et si je l’envoyais au directeur de la communication interne de mon employeur ?
- Des carnets Web ? Pour quoi faire ?
- « Pourquoi donc irait-on « faire des carnets Web » dans une grande entreprise qui se porte très bien comme ça ??? » Voici en peu de lignes, une réponse possible (adaptée de l’anglais par votre humble et dévoué serviteur) :
Commencez par imaginer ce qui fait la valeur du Wall Street Journal pour les dirigeants d’entreprise. Ce qui en fait la valeur, c’est sa capacité à offrir du contexte — le Journal permet aux lecteurs de se représenter chaque jour dans le contexte du monde des finances, ce qui rend possible des prises de décision mieux informées.
Avec ceci en tête, représentez-vous maintenant votre entreprise comme un microcosme du monde financier. Est-ce que vos employés sont capables de se voir dans le contexte d’ensemble de l’entreprise ? Est-ce que les prises de décisions ne seraient pas plus pertinentes si les employés et les dirigeants avaient accès aux sources de l’actualité interne ?
Les carnets web répondent à ce besoin. En rendant les sites web internes plus faciles à mettre à jour, les carnets web permettent aux individus et aux équipes de tenir à jour des chroniques en ligne de leurs projets au sein de l’entreprise. Ces chroniques professionnelles simplifient la production et l’accès à l’actualité interne car ils offrent du contexte à l’intérieur de l’entreprise — du contexte qui peut profondément changer la manière dont on prend les décisions. Ainsi, les carnets web permettent aux employés et aux dirigeants de prendre des décisions mieux informées car prenant mieux en compte les événements et actualités internes.
- Les carnets Web sont des outils précieux pour la gestion de la relation clients, pour la gestion de ressources humaines, pour la gestion des connaissances.
- Via weblogger.ch, on apprend comment améliorer la relation clientèle avec les carnets Web.
- elanceur fait sa compil’ des conseils et ressources pour que les blogs trouvent leur place dans le marketing d’entreprise
- « Pourquoi donc irait-on « faire des carnets Web » dans une grande entreprise qui se porte très bien comme ça ??? » Voici en peu de lignes, une réponse possible (adaptée de l’anglais par votre humble et dévoué serviteur) :
- Qui s’est déjà mis au carnetage ?
- La presse professionnelle américaine en parle : les blogs commencent à entrer dans le monde des affaires
- C’est au tour des dirigeants de grandes entreprises et d’agences gouvernementales d’ouvrir un carnet Web et d’y engager une conversation directe avec leurs clients et partenaires.
- Les employés de SUN Microsystems peuvent tous blogguer pour ou avec leur entreprise. Idem pour ceux de Microsoft (et en plus Microsoft explique pourquoi et Bill Gates donne même son avis personnel).
- D’après un article de presse français, il n’y a pas que les Daimler-Chrysler et les IBM qui s’y mettent mais aussi le management de France Telecom. On a également parlé d’expérimentations carnetières chez Dupont, Nokia, Intel, ….
- Un article de référence : Wired raconte comment Macromedia a fait des carnets Web de ses employés le fer de lance d’une nouvelle politique de relation clientèle.
- Des PME francophones ont appris à communiquer selon ce nouveau format et font office de pionniers. C’est le cas par exemple des grues Josset-Menguy ou de la papetterie Brachard.
- Plusieurs personnaltiés politiques françaises de premier plan s’y sont essayé, le temps d’une campagne, ou sur le long terme : DSK, Jean-François Copé, Alain Rousset, Alain Lipietz…
- A quand un dirigeant du CAC40 dans une liste de dirigeants carnetiers ?
- Pour aller plus loin :
- LE site qui vous dit tout sur le phénomène du « corporate blogging » classe les carnets Web en 6 catégories : les carnets externes pour la vente, la relation clientèle ou la gestion de la marque et les carnets internes pour le partage de connaissances, pour le travail collaboratif ou pour la culture d’entreprise. (via Outils Froids).
- Ou, si vous préférez, jetez aussi un coup d’oeil à LE site qui vous dit tout sur le … business blogging !
- Les avis de Loïc Le Meur sur la question.
- Une plaquette commerciale qui tente d’expliquer en termes non techniques pourquoi la mécanique « RSS » des carnets Web est importante pour l’entreprise
- Sur un plan plus technique, la mécanique des carnets Web se généralise au partage de calendriers via le Web (et non plus « coincés » dans un serveur de messagerie/groupware du style Microsoft Exchange ou IBM Lotus Notes)
- D’autres pointeurs sur le même sujet des carnets Web.
Qui profitera de l’open source ?
A l’occasion d’un très stimulant déjeuner avec Nicolas Chauvat, de Logilab, nous avons évoqué à coups de machettes les différents modèles économiques pour l’open source et la quantité d’innovation portée par chaque modèle (« l’open source permet-il d’innover ? ») :
- comme les éditeurs propriétaires : développer une fois, revendre plusieurs fois => mais cela suppose que ni l’entreprise ni ses clients ne publient le code, du coup on perd certains bénéfices du modèle open source (open scrutiny, mutualisation des coûts de maintenance, notoriété, …), de plus l’objectif est alors de rentabiliser l’existant (« vaches à lait ») avant/plutôt que de développer du nouveau donc pas trop d’innovation à attendre
- comme les SSII : vendre du jour.homme => mais cela n’apporte pas de différence essentielle avec le fait de vendre du jour.homme sur des technos propriétaires, l’entreprise ne capitalise pas sur le code ou la communauté, pas d’innovation de la part de l’entreprise qui se « contente » de répondre au besoin du client ; est-ce vraiment le cas chez un Cap Gemini ou Unilog par exemple, qui ont eu tendance à vendre du J.H open source ces derniers temps ?
- développer un produit (capital), vendre du jour.homme pour l’intégrer et le personnaliser (voire le développer) puis le maintenir/supporter => c’est le modèle que semblent suivre les SS2L françaises : IdealX, Ingeniweb, Nuxeo, Linagora, Clever Age … Logilab et les autres ; de l’innovation mais… reste encore difficile à vendre (sauf, peut-être au secteur public, et encore) !
- utiliser des outils open source pour porter une offre innovante de services non informatique => exemple : nombreux fournisseurs d’accès, comme Free, de l’innovation, mais y a-t-il une réelle contribution open source (ou au contraire/uniquement des modifications privées du code) ?
Alors, toujours avec ma question en tête « chez quelle boîte est-ce qu’il faut aller travailler pour surfer sur la (future ?) vague open source ? ». Chez les éditeurs propriétaires : ne profitent pas assez du modèle open source ? Chez une SSII classique : pas de stratégie d’innovation ? Chez une SS2L : trop tôt pour avoir une activité avec des volumes suffisants ? Chez un fournisseur de services exploitant l’open source : y en a-t-il de respectables qui aient choisi l’open source ?
Je pense que l’avenir se montrera rose pour ces deux dernières catégories : les SS2L, une fois qu’elles auront appris à vendre leur offre au CAC40 (et que le CAC40 aura appris à la leur acheter !), les fournisseurs de services innovants utilisateurs de l’open source une fois que je saurai si ça existe. Ces deux modèles semblent être les plus « stables » comme dit Nicolas, les plus « durables » je dirais.
Tiens, une idée qui fait plop : le développement/la maturation de l’open source part de l’infrastructure (Linux, Apache, …) et « monte » vers l’applicatif (Evolution, Plone, …) ; de nombreux ISP ont choisi l’open source pour monter une infrastructure permettant de monter des offres de services innovantes ; quelles seront les entreprises qui choisiront l’open source pour s’équiper en applicatifs permettant de monter des offres de services innovantes. Autrement dit, qui fera d’un Plone le même usage qu’un Free peut faire des linux (ou quel que soit le BSD qu’ils utilisent…) ? Est-ce qu’un Sharing Knowledge décidera d’open sourcer ses outils logiciels ? Est-ce qu’un Ingeniweb pourrait tenir une telle position ?
Visualizing social networks
Social networks are (were ?) trendy these days. What’s missing with social networks is a nice interface so that you can easily browse through one’s social network. This is what this MIT research project was exploring and trying to implement (thank Gouri for the link).
Here are some output my own experiments and implementations on this topic.
Computer Associates a misé sur Zope. Pourquoi ?
Computer Associates a misé sur Zope, de manière notamment à prendre position dans la tendance open source du moment. De tous les points de vue, je suppose que c’est une très bonne chose (pour Zope, pour Plone, pour CA, …)
Cependant, je suis étonné par ce que j’entends dire par mes collègues au sujet de Computer Associates. On me décrit cette société comme une entreprise de requins : en France, un repaire de commerciaux aux dents longues pour lesquels seul le chiffre compte ; et surtout une entreprise dont la stratégie consisterait à racheter des acteurs innovants pour les étouffer dans l’oeuf. Bref, les différents échos que l’on m’a rapporté à leur sujet font état d’une caricature de gros éditeurs sans âme et poussant à l’extrême les pratiques anti-concurrentielles si souvent décriées dans le secteur.
J’imagine que ces échos comportent sans doute une bonne part d’exagération et peut-être une once de mauvais esprit (ils ne peuvent pas être si mauvais, dites-moi ???). Néanmoins, il doit bien y avoir aussi une part de vrai. Alors que penser d’un acteur de ce type qui se rapproche du monde de l’open source. Comment un éditeur aux dents longues peut-il espérer profiter de communautés open source ?
Ma question n’est pas de savoir si CA est « gentil » ou « méchant », « bon » ou « mauvais ». Ma question est plutôt de savoir : est-ce qu’un acteur de ce type peut réellement lier des liens profitables et durables avec une communauté open source ? Un éditeur tel que CA peut-il réellement trouver sa place dans un écosystème open source sans le dégrader ou, plus vraisemblablement, s’en faire gentiment éjecter avec le temps ? Ou bien, au-delà de l’effet d’annonce, les gens de Computer Associates ont-ils réellement pris conscience des spécificités et de l’intérêt stratégique de l’open source ? Sont-ils prêts à faire les sacrifices (investissements et conduite interne du changement) nécessaires pour réellement profiter des opportunités de l’open source ? Autrement dit : CA = profiteur qui fait un mouvement par effet de mode ? ou bien CA = visionnaire ?
Plone as a semantic aggregator
Here is an output of my imagination (no code, sorry, just a speech) : what if a CMS such as Plone could be turned into a universal content aggregator. It would become able to retrieve any properly packaged content/data from the Web and import it so that it can be reused, enhanced, and processed with the help of Plone content management features. As a universal content aggregator, it would be able to « import » (or « aggregate ») any content whatever its structure and semantic may be. Buzzwords ahead : Plone would be a schema-agnostic aggregator. It would be a semantic-enabled aggretor
Example : On site A, beer-lovers gather. Site A’s webmaster has setup a specific data schema for the description of beers, beer flabours, beer makers, beer drinkers, and so on. Since site A is rich in terms of content and its community of users is enthusiastic, plenty of beers have been described there. Then site B, powered by a semantic aggregator (and CMS), is interested in any data regarding beverages and beverages impact on human’s health. So site B retrieves beer data from site A. In fact it retrieves both the description of beer1, beer2, beerdrinker1, … and the description of what a beer is, how data is structured when it describes a beer, what the relationship is between a beer and a beer drinker. So site B now knows many things about beer in general (data structure = schema) and many beers specifically (beers data). All this beer data on site B is presented and handled as specific content types. Site B’s users are now able to handle beer descriptions as content items, to process them through workflows, to rate them, to blog on them, and so on. And finallly to republish site B’s own output in such a way it can be aggregated again from other sites. That would be the definitive birth of the semantic web !
There are many news aggregators (RSSBandit, …) that know how to retrieve news items from remote sites. But they are only able to aggregate news data. They only know one possible schema for retrievable data : the structure of a news item (a title + a link + a description + a date + …). This schema is specified in the (many) RSS standard(s).
But now that CMS such as Plone are equipped with schema management engines (called « Archetypes » for Plone), they are able to learn new data schema specified in XML files. Currently, Plone’s archetypes is able to import any schema specified in the form of an XMI file output by any UML modelizing editor.
But XMI files are not that common on the Web. And the W3C published some information showing that any UML schema (class diagram I mean) is the equivalent of an RDF-S schema. And there even is a testbed converter from RDF-S to XMI. And there even are web directories inventoring existing RDF schemas as RDF-S files. Plus RSS 1.0 is based on RDF. Plus Atom designers designed it in such a way it is easily converted to RDF.
So here is my easy speech (no code) : let’s build an RDF aggregator product from Plone. This product would retrieve any RDF file from any web site. (It would store it in the Plone’s triplestore called ROPE for instance). It would then retrieve the associated RDF-S file (and store it in the same triplestore). It would convert it to an XMI file and import it as an Archetypes content type with the help of the ArchGenXML feature. Then it would import the RDF data as AT items conforming to the newly created AT content type. Here is a diagram summarizing this :
By the way, Gillou (from Ingeniweb) did not wait for my imagination output to propose a similar project. He called it ATXChange. The only differences I see between his proposal and what is said above are, first, that Gillou might not be aware about RDF and RDF-S capabilities (so he might end with a Archetypes-specific aggregator inputting and outputting content to and from Plone sites only) and that Gillou must be able to provide code sooner or later whereas I may not be !
Last but not least : wordpress is somewhat going in the same direction. The semweb community is manifesting some interest in WP structured blogging features. And some plugins are appearing that try to incorporate more RDF features in WP (see also seeAlso).
Is the Semantic Web stratospheric enough ?
Did you think the Semantic Web is a stratospheric concept for people smoking too many HTTP connections ? If so, don’t even try to understand what Pierre Levy is intending to do. He and the associatied network of people say they are preparing the next step after the Semantic Web. Well… In fact, I even heard Pierre Levy saying he is preparing the next step in the evolution of mankind, so this is not such a surprise. The worst point in this story is that his ambitious work may be extremely relevant and insightful for all of us, mortals. :)
Free Text-to-speech technologies
Here is a short review of freely available (open source or not) « text-to-speech » technologies. I digged in this topic because I wanted to check whether anyone invented some software package turning my RSS aggregator into a personalized radio. More precisely, while I am doing some other task (feeding one of my kids, brushing my teeth, having my breakfast, …) I would like to be able to check my favorite blogs for news without having to read stuff. My conclusion : two packages come near to the expected result.
Regarding features, the most advanced one is NewsAloud from nextup.com. It acts as a simple and limited news aggregator combined with a text-to-speech engine that reads selected newsfeeds loud. But it still lacks some important features (loading my OPML subscription file so that I don’t have to enter my favorites RSS feeds one by one, displaying a scrolling text as it is read, …) and worst : it is NOT open source.
The second nice-looking package going in the expected direction is just a nice hack called BlogTalker and enabling any IBlogExtension-compatible .Net aggregator (RSSBandit, NewsGator…) to read any blog entry. But it is just a proof-of-concept since it cannot be setup so that it reads a whole newsfeed nor any set of newsfeeds. It seems to me that adding TTS abilities to existing news aggregators is the way to go (compared to NewsAloud which is coming from TTS technologies and trying to build a news aggregator from there). And BlogTalker passes successfully the « is it open source ? » test.
Both packages depend on third party text-to-speech engines (the « voices » you install on your system). As such, they are dependent on the quality of the underlying TTS engine. For example, if you are a Windows user, you can freely use some Microsoft voices (Mike, Mary, Sam, robot voices, …) or Lernout & Hauspie voices or many other freely available TTS engines that support the Microsoft Speech API version 4 or 5 (or above ?). The problem is that these voices do not sound good enough to me. As a native French speaker, I am comfortable with the LH Pierre or LH Veronique French voices even if they still sound like automat voices. But for listening to English newsfeeds on the long run, the MS, LH or other voices are not good enough. Fortunately, AT&T invented its « natural voices » which sound extremely … natural according to the samples provided online. Unfortunately, you have to purchase them. I will wait for this new kind of natural voices to become commoditized.
Meanwhile, I have to admit that TTS-enabled news aggregators are not ready for end-users. You can assemble a nice proof-of-concept but the quality is still lacking with the above three issues : aggregators are not fully mature (from a usability point-of-view), high-quality TTS engines are still rare, nobody has achieved to integrate them well one with the other yet. With the maturation of audio streaming technologies, I expect some hacker some day to TTS-enable my favorite CMS : Plone. With the help some of the Plone aggregation modules (CMFFeed, CMFSin, …), it would be able to stream personalized audio newsfeed directly to WinAmp… Does it sound like a dream ? Not sure…
During my tests, I encountered several other TTS utilities that are open source (or free or included in Windows) :
- Windows Narrator is a nice feature that reads any Windows message box for more accessibility. It seems to be bundled in all the recent Windows releases. Windows TTS features are also delivered with the help of the friendly-but-useless Microsoft Agents.
- Speakerdaemon‘s concept is simple : it monitors any set of local files or URLs and it speaks a predefined message at any change in the local or remote resource (« Your favorite weblog has been updated ! »). Too bad it cannot read the content or excerpts (think regular expressions) of these resources.
- SayzMe sits in your icon tray and reads any text that is pasted by Windows into the clipboard. Limited but easy.
- Clip2Speech offer the same simple set of features as SayzMe plus it allows you to convert text to .WAV files.
- Voxx Open Source is somewhat ambitious. It offers both TTS features (read any highlighted text when you hit Ctrl-3, read message boxes, read any text file, convert text to .WAV or .MP3, …) and speech recognition. Once again, it is « just » a packaging (front-end) of third party speech recognition engines. As such, it uses by default Microsoft Speech recognizer which is not available in French (but in U.S. English, Chinese and Japanese if I remember properly). I have still to try it in its U.S. English with a headset microphone since my laptop microphones catches too much noise for it to be usable. The speech recognition feature allows the user to dictate a text or to command Voxx or Windows via voice. So it is an open source competitor to IBM ViaVoice or ScanSoft Dragon Naturally Speaking.
- PhantomSpeech is middleware that plugs into TTS engines and allows application developers to add TTS capabilities to their applications. It is said to be distributed with addins for Office 2000. Indeed I could display a PhantomSpeech toolbar in Word 2003. It could read a text but only using the female Microsoft voice. And this toolbar had unexpected behaviors and errors within Office. Not reliable as a front-end application. Anyway, the use and configuration of speech engines is really a mess. The result is that PhantomSpeech does not look as really intended for end-users but maybe just for developers.
- CHIPSpeaking is a nice utility for « the vocally disabled » (people who cannot speak). It allows the user to dictate sentences with a virtual keyboard and to record predefined sentences that are read aloud with one click.
- ReadPlease (the free version) is just a nice simple text reader made by developers who played too much with Warcraft (click on the faces and you’ll see why). The word being read is highlighted. Simple options allow users to change the voices with one click (which is cool when you switch between several languages) or to customize the size of the text, …
- Spacejock’s yRead is another text reader that includes a pronunciation editor (read km as « kilometers » please) and also allows the download of public domain texts available from Project Gutenberg. The phrase being read is highlighted, you can easily switch from one voice (and language) to another. Too bad its Window always sucks the focus when it reads a new phrase.
- For the *nix-inclined people, I should also mention the famous Festival suite of TTS components (Festival, FLite, Festvox). For the java-inclined people, don’t miss the FreeTTS engine (that is based on Festival Lite !) and the associated end-user applications. An example of an end-user application based on Festival is the CMU Communicator, see its sample conversation as a demo.
- Last but not least, do not miss Euler and the underlying MBROLA package. Euler is a simple open source reading machine based on MBROLA that implements a huge number of voices in many many languages plus these voices can include very natural intonations and vocal stresses. Euler + MBROLA were produces by an academic research program. They are free for non-commercial use and their source code is available (BTW, it is said that MBROLA could not be distributed under an open source license because of a France Telecom software patent !). Beware : the installation of MBROLA may be quite tricky. First, download the MBROLATools Windows binaries package, download patch #1 and read the instructions included, (I had problems when trying patch #2 so I did not use it), download as many MBROLA voices as you want (wow ! that many languages supported !), then download Win Euler (or any other MBROLA compatible TTS engine from third parties ; note that MBROLA is supported by festival).
Further ranting about TTS engines : I feel like the ecosystem of speech engines is really not mature enough. Sure several vendors provide speech engines. But they are not uniformly supported by the O.S.. There was a Microsoft S.A.P.I. version 4 (SDK available here) which is now version 5.1 but people even mention v.6 (included in Office 2003 U.S. ?) and a v.7 to be included in LongHorn (note that there also is another TTS API : the Java Speech API 1.0 – JSAPI– as implemented by FreeTTS… bridgeable with MS SAPI ?). But as any Microsoft standard, these API are … not that standardized (i.e. they seem to be Microsoft-specific). Even worst : they seem rather unstable since the installation of various speech engines give strange results : some software detects most of the installed TTS engines, other only detect SOME of the SAPI v.4 TTS engines, some other display a mix of some of your SAPI4 TTS engines and some of your SAPI5 TTS engines…. In order to be able to use SAPI5 engines and control panel I had to install Microsoft Reader and to TTS-enable it (additional download). What a mess ! The result is that you cannot easily control which voices you will be using on your computer (which one will be supported or not ?). As a further example, I could not install and use the free CMU Kal Diphone voice and I still don’t know why. Is it the API fault ? the engine’s fault ? Don’t know… Last remark on this point : Festival seems to be the main open source stream in the field of TTS technologies but it does not seem to be fully mature ; and the end-user applications based on it seem to be quite rare. Let’s wait some more years before it becomes a mainstream, user-friendly and free technology.
More precisely, the TTS puzzle seems to be made with the following parts :
- a TTS engine made with three parts :
- a text processing system that takes a text as input and produces phonetic and prosodic (duration of phonemes and a piecewise linear description of pitch) commands
- a speech synthesizer that transforms phonemes plus a prosody (think « speech melody ») into a speech
- a « voice » that is a reference database that allows the speech to be synthesized according to the tone, characteristics and accent of a given voice
- an A.P.I. that hosts this engine and publishes its features toward end-user applications and may provide some general features such as a control panel
- an end-user application (a reading machine, a file monitor with audio alerts, a audio news aggregator, …) that invokes the dedicated speech API
You can get more detailed information from the MRBOLA project site.
These were my notes and ranting about text-to-speech technologies. Please drop me a comment if you feel like my explanations were wrong or biased as I don’t know this field in details and I may have made a lot of errors here. Thanks !
Floris van Rees is born
Congratulations to you too, Reinout ! :)
RSS : The Next Big Thing Online
Voici un papier blanc (si, si…) au sujet de RSS (à nouveau via l’excellent Outils Froids). Enfin un document qui présente l’écosystème RSS en des termes marketing compréhensible par une D.S.I. de grande entreprise… enfin j’espère. Je testerai ce document sur mes collègues et supérieurs à mon retour de congés.
Mathemagenic: learning and KM insights – Thursday, June 10, 2004
Voici une explication illustrée des usages de ces outils qu’on appelle les blogs ou carnets Web (via Outils Froids du Web). En dehors du fond très juste de ces illustrations, je trouve que leur forme permet de manière élégante d’appréhender des usages technologiques. L’outil, c’est bien. Mais ce sont les usages que chacun batît autour qui en font une technologie.
(Oh ! ben tiens, j’ai réussi à publier un message sur mon carnet entre deux biberons ! auto-félicitation !) :)
Où cours-je ? Dans quel état j’erre ?
Petite explication concernant mon humble personne et le peu de messages de ma part depuis fin mai. Je suis papa depuis peu ! Donc, mon actualité est actuellement davantage tournée vers les couches et les biberons que vers le Web Sémantique. Mon rythme de vie se stabilise progressivement à nouveau. Dans le nouvel équilibre que j’aurais trouvé, je compte aménager un espace de choix pour mon activité de carnetier. Mais bon, on verra bien si j’y arrive ! C’est le challenge du moment. A suivre…
Loi de distribution des noms au Vietnam
Certes, 54% des vietnamiens ont « Nguyen » comme nom de famille. Mais cela ne suffit pas pour modéliser la loi de distribution des noms de famille au Vietnam et encore moins celle des prénoms. Pourtant, un tel modèle permet de prédire les probabilités de collisions signalétiques (homonymies) dans l’annuaire des employés d’une multinationale. Et le vietnam a cela d’intéressant qu’il s’agit sans doute de l’un des pays dans lesquels les probabilités de collisions signalétiques doivent être les plus importantes (puisque 54%…).
Voici quelques sources générales sur le sujet :
- un retour d’expérience utile pour comprendre les conventions de nommage en usage au Vietnam (document déjà cité dans un message précédent), voir également cette autre explication ou cette présentation plus générale des conventions de nommage à travers le monde en complément de mon ancien message à ce sujet
- une longue liste de prénoms vietnamiens masculins, féminins ou unisexes (mais sans indication de fréquence d’occurence), à comparer avec des listes similaires trouvées ailleurs
- un rapport d’étude trop succinct sur la base du système de la sécurité sociale américaine, qui mentionne le pays de naissance et donne la liste, par ordre décroissant de fréquence, des noms de famille des américains nés au Vietnam (entre autres)
- enfin, quelques données statistiques sur le noms de famille et le nom intercalaire, réunies par Patrick Fermi mais malheureusement trop peu de choses sur les prénoms
Alors que faire ? Je crois bien que je vais me résoudre à compter les vietnamiens un par un. Enfin presque… J’ai trouvé un annuaire téléphonique du Vietnam, en ligne. Il ne reste plus qu’à apprendre à Excel à aller taper dedans, à compter les fréquences d’apparition des noms de famille et des prénoms (ce qui suppose d’ailleurs de différencier les noms de familles, les noms intercalaires et les prénoms composés…). Le résultat devrait être intéressant. Je vous en dirai plus à l’occasion.
Tant que j’y suis, même si c’est hors sujet, voici un excellent argumentaire qui explique aux américains pourquoi il est stupide de croire que les noms des gens peuvent toujours se décomposer en « First Name », « Middle Name » et « Last Name ».
Maturité des technos XML
01 Informatique a publié un état de l’art très synthétique au sujet des technologies XML. Chaque technologie présentée est qualifiée selon son degré de maturité. Et les seules technologies XML à avoir atteint le degré de maturité maximal sont les suivantes :
- Les techniques de base : DOM, Unicode, XML, XML Namespaces, XLink, SAX, XML Schema/DTD, XLM Encryption, XML Signature, XPath 1.0, XSL et XSLT
- La publication multicanal : CSS, VoiceXML, SMIL, SVG, XHTML, WML, MathML
- Les services Web : le style REST, DSML (je ne suis pas sûr que la place de DSML soit vraiment dans la catégorie « services Web » mais enfin bon… pourquoi pas ?) et XML-RPC
- Les échanges électroniques (B2B) : ICE
- Le web sémantique : Dublin Core, RSS 1.0, RDF
Autrement dit, si vous envisagez d’appuyer une architecture informatique sur une technologie XML qui n’est pas dans cette liste, sachez que vous faites un choix technologique risqué car non éprouvé ! A vos risques et périls…
Clever Age – Le point sur l’interopérabilité J2EE, .NET et PHP
Clever Age a publié dans sa newsletter une excellente et didactique synthèse sur l’interopérabilité J2EE, .NET et PHP. J’en retiens les leçons suivantes :
- Pour l’intéropérabilité, le couplage lâche c’est LE principe qu’il faut adopter
- Les services web basés sur la pile de technologies liées à SOAP, c’est pas mal pour faire du couplage lâche
- Mais les services web basés sur la technologie XML-RPC ou les services Web de style REST (quelle que soit la techno utilisée), c’est encore mieux car
- plus simple
- une pratique plus répandue
- ça apporte moins de contraintes techniques inutiles (infrastructure, compétences, …)
J’ajouterais que les services Web de style REST offrent un couplage non seulement encore plus lâche (modularité du S.I.) mais également encore plus tardif : inutile, au moment de la conception de vos services Web, de faire des hypothèses sur l’usage qui en sera fait dans le futur, le style REST vous garantit leur intégrabilité future.
La différence essentielle entre le style REST et le style RPC (XML-RPC ou pile SOAP), c’est que le style REST permet l’intégration spontanée (non planifiée centralement) de services alors que la pile SOAP suppose une planification plus centralisée des projets d’intégrations de services à travers la négociation et la spécification de contrats entre fournisseurs et consommateurs de services (et qui dit contrat dit « une certe forme de codification » et donc une certaine perte de flexibilité pour le futur).
Ma conclusion : l’approche REST est plus adaptée aux organisations qui sont elles-mêmes faiblement couplées. Autrement dit : pour faire du SOA sur SOAP, il faut réunir toutes les parties prenantes et établir des contrats de services spécifiques et peu évolutifs ; conséquence : faites du SOAP dans une organisation non centralisée et vous vous retrouverez dans une situation similaire à celle dont se lamentait Reinout Van Rees, une situation qui conduit à l’échec ou au moins au gaspillage d’efforts. Posez-vous plutôt la question :
- Vous vivez dans une cathédrale ? Alors vous pouvez vous contenter du couplage relativement faible offert par SOAP mais vous vous encombrez toute de même de contraintes inutiles
- Vous vivez dans un bazar (« bordel organisé » disait Fred ?) ? Alors il vous faut du couplage extrêmement lâche et tardif. Et l’interopérabilité des composants du bazar passe alors par la simplicité et le caractère « future-proof » de REST.
Au bout d’un moment, j’ai l’impression de me répéter à force de ressasser les mêmes choses sur REST. Mais j’espère que d’un billet à l’autre, mes idées sur le sujet gagnent en clarté (au moins dans ma tête). Et les vôtres ?