Je suis en train de bosser sur une des faiblesses d'
OpenNab : l'absence de text-to-speech.
J'aimerais connaitre l'avis de potentiels utilisateurs.
De mon point de vue, la seule solution viable c'est celle où des utilisateurs avancés (ceux qui installent
OpenNab sur une machine linux qui traine allumée 24h/24 dans leur salon par exemple) y trouveront leur compte aussi bien que ceux qui n'utilisent qu'un hébergement apache/php de base.
Le plus gros problème est bien sûr pour ceux qui utilisent un hébergement mutualisé avec impossiblité d'installer des binaires perso qui feraient la conversion texte->parole (faire ça en php pur, même pas en rêve).
Constatant par ailleurs qu'il existe sur le web diverses démos en ligne de text-to-speech, je suis parti dans l'idée de faire en sorte qu'
OpenNab fasse le relai entre le lapin et les données audio produites par ces démos.
J'en arrive pour l'instant à la solution suivante.
Dans
opennab.ini, on configure un ensemble de services TTS.
Example :
- Code:
-
[TTS:unservicetts]
Method=POST
Host=www.jefaisdutts.com
Path=/cest/ici/la/demo
Data="voice=lavoixquitue&text=%s&validation=Vasyparle"
Referer=http://www.jefaisdutts.com/index.php
ContentType=audio/mp3
[TTS:unautreservicetts]
.....
Cette configuration revient à indiquer la où les requêtes http à utiliser pour simuler une utilisation d'un service de text to speech externe.
Au niveau
opennab, un plugin expose une hiérarchie virtuelle sous http://monserver.com/broad/tts/...
Par exemple, pour récupérer le fichier audio correspondant au texte "bonjour madame" prononcé par le service de TTS "unservicetts", il suffit de faire un http get sur "http://monserver.com/broad/tts/unservicetts/bonjour+madame"
Ce plugin fournit aussi une api pour générer l'appel text-to-speech sur un lapin :
http://monserver.com/api.php?sn=xxxxxxxxxxxx&speaker=unservicetts&tts=bonjour+madame
Cette solution aurait l'avantage de pouvoir être utilisée avec un système de tts local dans le cas où on a la main sur une machine (il suffirait d'encapsuler l'appel au binaire adéquat dans un petit script php) et, par ailleurs, de pouvoir utiliser, avec modération, des services tiers quand on n'a rien d'autre à se mettre sous la dent.
Pour l'instant j'ai réussi à faire fonctionner le truc avec :
* http://www.syvum.com/text_to_speech/
* http://www.research.att.com/~ttsweb/tts/demo.php
* http://www.multitel.be/TTS/layout.php?page=eLite_demo
* http://demo.acapela-group.com/
A défaut d'autres suggestions,
OpenNab 0.08 sortira avec ces trucs là (quand j'aurai le temps de mettre un peu les choses au propre).
Je ne compte pas mettre de config de "vrai" service TTS dans le
opennab.ini livré car je ne suis pas tellement sûr d'en avoir le droit (vous en pensez quoi de l'aspect légal de tout ça ?) mais de filer les diverses configs qui marchent a posteriori, à titre d'exemple "pour utilisation personnelle".