Accueil > Projet Made by Sp@r0, Synology > Text to speech vers Airplay avec un ds110j

Text to speech vers Airplay avec un ds110j

03/12/2011

Pour commencer une petite vidéo de présentation de ce que cela donne …..Bon comme on entend pas grand chose ci joint les 2 wav générer dans la vidéo

Coucou test de génération de la voix

Résultat issue de ma domotique X10 RF en python fait maison


Le principe en détails :

Utilisation du syno pour lire des textes sur une carte son USB ou via Airplay sur une appleTV ou tout autre équipement compatible, pour ce faire j’utilise les programmes suivants :

  • eSpeak : qui est utilisez pour la génération des phonèmes
  • mBrola : qui génère la voie à partir des phonèmes

La compilation :

Pour espeak rien de spécial cross compilation à partir des sources du site, dans le Makefile j’ai compilé avec l’option NOAUDIO, car le syno utilise OSS comme gestionnaire de son et espeak n’est compatible qu’avec pulseaudio (que l’on pourrait éventuellement compiler mais on peux s’en passer). Il suffit de régler les variables d’environnement ou de modifier le Makefile pour lui faire utiliser la toolschains et çà compile du premier coup.

Pour mBrola c’est un peu particulier en fait il ne s’agit pas d’un projet open source on est obliger d’utiliser leurs binaires, par chance il ont une version compilé pour ARM qui marche parfaitement sur mon DS110j

L’installation :

  • Copiez les binairies des 2 logiciels dans /usr/sbin (ou ailleurs ou votre path peut mener)
  • Copiez le dossier « esepeak-data » créer lors de la compilation dans le dossier /usr/share/espeak-data du syno
  • Copiez la voie fr1 de mbrola dans le dossier /usr/share/mbrola/fr1

L’exécution :

Pour générer un wav il suffit de lancer la commande suivante :

speak -v mb-fr1 -s 110 -w tmp.wav "coucou test de la voix"

Qui vous génère un magnifique wav que vous pouvez envoyer sur les HP du syno avec mplayer (pas tester car pas encore de carte son usb mais y a pas de raison cela doit marcher)

AirPlay:

Pour mémoire et pour ce que cela peut intersser je vais détailler un peu la méthode pour trouver la commande magique qui va suivre :

  • Demandez à audio station de lire un fichier en Airplay
  • Avec la commande lsof (dispo sur ipkg) déterminer quel logiciel utilise le fichier que vous avez utilisez dans audio station => synoairplayd
  • un petit coup de top et on trouve la ligne de commande exact =>
  • /usr/syno/sbin/synoairplayd --ip IP_du_serveur_AirPlay --port 49153 --volume 90 --metadata {"title":"test d'Airplay"}  /repertoire/fichier.mp3 ou wav

     

     

     

Categories: Projet Made by Sp@r0, Synology Tags:
  1. John
    04/12/2011 à 00:04 | #1

    Salut Sp@ro,

    Un grand bravo wouaww c’est super ce que tu as fait.
    J’ai un DS109 qui a priori a le meme proc que toi, peux tu partager tes binaires s’il te plait.

    Merci pour ton boulot

    John

Les commentaires sont fermés.