Pour les utilisateurs de SONOS

Discutez ici de vos souhaits d'évolutions et de vos idées pour eedomus

Re: Pour les utilisateurs de SONOS

Messagepar tchex » 13 Juin 2013 09:29

Petite contribution :
fonction SongNameTTS($directory,$volume,$force_unmute)
Permet d'annoncer le titre et l'artiste de la chanson en cours de lecture

Code : Tout sélectionner
   public function SongNameTTS($directory,$volume=0,$unmute=0,$lang='fr')
   {
      $ThisSong = "Cette chanson s'appelle ";
      $By = " de ";
      
      
      $actual['track'] = $this->GetPositionInfo();

      $SongName = $actual['track']['Title'];
      $Artist = $actual['track']['TitleArtist'];

      $message = $ThisSong . $SongName . $By . $Artist ;
      
      $this->PlayTTS($message,$directory,$volume=0,$unmute=0,$lang='fr');
      
      return true;

      
   }


Amélioration possible : gérer les cas où le titre / artiste est inconnu = "je ne connais pas le nom de cette chanson"

edit : quelques petites corrections du code.. ça marche pas trop mal pour les titres en français.. pour le reste :?
Dernière édition par tchex le 13 Juin 2013 20:17, édité 1 fois.
tchex
 
Messages : 140
Inscription : 29 Nov 2012

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 13 Juin 2013 18:19

darkwinter a écrit:Merci Djmomo pour le nouveau code. Je tourne sous le dsm 4.2 dernière version à jour.

Je viens de réessayer avec le nouveau code, ce qui est bizarre c'est que dans le fichier sonos.tts.php tu n'indiques pas l'emplacement du directory c'est à dire :

$directory = "SERVEUR/web";

Chez toi sans indiquer l'emplacement cela fonctionne?


Petit oubli dans le script que je t'ai mis à disposition, je le corrige dans une prochaine version.
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 13 Juin 2013 18:20

Tchex, merci pour tes propositions de correction de bug et d'ajout de fonctionnalité ;)
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 16 Juin 2013 17:37

tchex a écrit:ça marche pas trop mal pour les titres en français.. pour le reste :?


C'est de la traduction google... ;)
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 16 Juin 2013 17:45

Mise à jour du 16/06 :
- correction de bugs mineurs
- ajout de possibilité de dire le titre / auteur en cours de diffusion (merci tchex)
- possibilité de faire dire des messages de plus de 100 caractères
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Pour les utilisateurs de SONOS

Messagepar 889laurent » 20 Nov 2013 16:10

bonjour, j'ai installé votre systeme sur une box sous linux (linknxwebbox) et ne marche pas. curl est a priori bien installé. J'ai essayé sous windows et cela marche. Quel sont les prerequi sous linux ?
889laurent
 
Messages : 1
Inscription : 20 Nov 2013

Re: Pour les utilisateurs de SONOS

Messagepar Bart (eedomus team) » 22 Jan 2014 14:46

Bonjour,

Pour ceux qui ne l'auraient pas noté, l'actionneur UPnP eedomus est compatible avec Sonos depuis la mise à jour décembre.

Bien cordialement
Bart (eedomus team)
 
Messages : 394
Inscription : 23 Sep 2013

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 22 Jan 2014 22:49

Bart (eedomus team) a écrit:l'actionneur UPnP eedomus est compatible avec Sonos depuis la mise à jour décembre


Mais il ne fait pas le TTS ;)
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Pour les utilisateurs de SONOS

Messagepar Arnaudkite » 30 Mars 2014 19:37

bonjour à tous et merci aux développeurs de pouvoir faire parler nos SONOS via notre eedomus !

le mien ne parle malheureusement pas encore... je viens donc chercher de l'aide.

j'ai un synology (avec lequel je débute) où j'ai activé le service web. dans ce dossier que j'ai partagé,j'ai installé les fichiers sonos.class et sonos ainsi que le dossier audio. j'y ai déclaré mes adresses IP.
J'ai déclaré ce dossier dans le logiciel sonos.

lorsque j'appelle : http://192.168.1.5/Volume1/web/SONOS/so ... essage=Mon message A diffuser&volume=15&force_unmute=1 sur une page internet il me dit page introuvable. Les Mp3 ne sont pas créés non plus...

problème de partage d'accès ? je ne sais plus où chercher ?

merci de votre aide.
Arnaudkite
 
Messages : 29
Inscription : 18 Nov 2013

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 30 Mars 2014 20:23

L'URL est http://192.168.1.5/SONOS/ et non http://192.168.1.5/Volume1/web/SONOS/

Le dossier /Volume1/web correspond à la racine de ton hébergement web http://192.168.1.5/ ;)
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Pour les utilisateurs de SONOS

Messagepar Arnaudkite » 31 Mars 2014 19:29

Bonjour fabien,

Un énorme MERCI pour ton aide !!! ca y est cela fonctionne parfaitement ! :D

vraiment bravo pour ce script. c'est d'une utilité très pratique avec l'eedomus !

j'ai dû prendre le fichier sonos avec le remplacement des [ sinon çà n'allait pas.

MERCI MERCI MERCI !!!
Arnaudkite
 
Messages : 29
Inscription : 18 Nov 2013

Re: Pour les utilisateurs de SONOS

Messagepar tchex » 16 Avr 2014 15:44

Hello,

Une petite évolution de la formidable classe de DjMomo :
la fonction PlayTTSJingle (à ajouter dans sonos.class.php) qui joue un mp3 avant de lancer le TTS.

Peut-être que ça serait plus propre / simple de modifier PlayTTS et de lui ajouter un paramètre facultatif pour le fichier mp3 de jingle. Peut-être aussi la possibilité de lire le jingle à la fin du TTS... bref des améliorations possibles.
Mais ça a le mérite de fonctionner :

Code : Tout sélectionner
   /**
   * Play a jingle and then a TTS message
   * @param string message
   * @param string radio name display on sonos controller
   * @param int volume
   * @param string language
   * @param string jingle (mp3 file name for jingle)
   */
   public function PlayTTSJingle($message,$directory,$volume=0,$unmute=0,$jingle,$lang='fr')
   {
      $actual['track'] = $this->GetPositionInfo();
      $actual['volume'] = $this->GetVolume();
      $actual['mute'] = $this->GetMute();
      $actual['status'] = $this->GetTransportInfo();
      $this->Pause();

      if ($unmute == 1)
         $this->SetMute(0);
      if ($volume != 0)
         $this->SetVolume($volume);

      $file = 'x-file-cifs://'.$directory.'/'.$this->TTSToMp3($message,$lang);
      $jingle_file = 'x-file-cifs://'.$directory.'/audio/'.$jingle;

      if (((stripos($actual['track']["TrackURI"],"x-file-cifs://")) != false) or ((stripos($actual['track']["TrackURI"],".mp3")) != false))
      {
         // It's a MP3 file
         $JingleNumber = $this->AddURIToQueue($jingle_file);
         $TrackNumber = $this->AddURIToQueue($file);
         $this->ChangeTrack($JingleNumber);
         $this->Play();
         sleep(2);
         while ($this->GetTransportInfo() == "PLAYING") {}
         $this->Pause();
         $this->SetVolume($actual['volume']);
         $this->SetMute($actual['mute']);
         $this->ChangeTrack($actual['track']["TrackNumberInQueue"]);
         $this->SeekTime($actual['track']["RelTime"]);
         $this->RemoveTrackFromQueue($TrackNumber);
         $this->RemoveTrackFromQueue($JingleNumber);
      }
      else
      {
         //It's a radio / or TV (playbar) / or nothing
         $this->SetQueue($jingle_file);
         $this->Play();
         sleep(2);
         while ($this->GetTransportInfo() == "PLAYING") {}
         $this->Pause();
         $this->SetQueue($file);
         $this->Play();
         sleep(2);
         while ($this->GetTransportInfo() == "PLAYING") {}
         $this->Pause();
         $this->SetVolume($actual['volume']);
         $this->SetMute($actual['mute']);
         $this->SetQueue($actual['track']["TrackURI"]);
      }

      if (strcmp($actual['status'],"PLAYING") == 0)
         $this->Play();
      return true;
   }


fonction qu'il faut appeler dans un script de ce type :


Code : Tout sélectionner
<?php
// Exemple de l'utilisation de la fonction Text-to-speech avec Jingle
require("sonos.class.php");
$IP_sonos_1 = "192.168.0.XX"; // ip du sonos à faire parler
$directory = "192.168.0.XX/XXXX/sonos";      // Indiquer ici le dossier partagé contenant les scrips PHP sonos (et qui contiendra le sous-dossier audio)

$volume = 0;
$force_unmute = 0;
$jingle = 'sf_sonnette_04.mp3'; // le nom du fichier mp3 (jingle) à placer à la racine du dossier 'audio'
 
if (isset($_GET['force_unmute'])) $force_unmute = $_GET['force_unmute']; // Force la désactivation de la sourdine. Optionnel
if (isset($_GET['volume'])) $volume = $_GET['volume']; // Niveau sonore. Optionnel.
$message = $_GET['message']; // Message à diffuser
 
//Instanciation de la classe
$sonos_1 = new SonosPHPController($IP_sonos_1);
$sonos_1->PlayTTSJingle($message,$directory,$volume,$force_unmute,$jingle); //Lecture de l'annonce


?>


et en bonus le mp3 dont je me sers (et qui devrait être libre de droits..)
Pièces jointes
sf_sonnette_04.zip
son de sonnette
(37.36 Kio) Téléchargé 481 fois
tchex
 
Messages : 140
Inscription : 29 Nov 2012

Re: Pour les utilisateurs de SONOS

Messagepar Arnaudkite » 16 Avr 2014 20:57

Bonne idée de mettre un jingle avant les annonces. Je vais essayer mais je vais d'abord essayer de remettre en route mes SONOS !

Il ne dit plus la phrase mais il met la musique ??? :?

Le fichier est crée en MP3 dans Audio/fr mais il ne le lit pas, il met la playliste ?

Quelqu'un à une idée ? Ma box me met ce message d'erreur.

Operation timed out after 10002 milliseconds with 0 bytes received

Merci de votre aide.
Arnaudkite
 
Messages : 29
Inscription : 18 Nov 2013

Re: Pour les utilisateurs de SONOS

Messagepar Arnaudkite » 17 Avr 2014 06:21

Après quelques tests, le problème est si j'ai une playliste en pause dans la liste de lecture du SONOS alors çà ne fonctionne pas. Si je vide cette liste, mon message s'annonce.
Arnaudkite
 
Messages : 29
Inscription : 18 Nov 2013

Re: Pour les utilisateurs de SONOS

Messagepar tchex » 17 Avr 2014 10:48

Bonjour,

Non pas d'idée comme ça..
mais pour essayer de comprendre ce qu'il se passe je te conseille de lancer la commande directement dans ton navigateur (plutôt que de passer par l'eedomus) pour voir les éventuelles erreurs php.

Bon courage !
tchex
 
Messages : 140
Inscription : 29 Nov 2012

Re: Pour les utilisateurs de SONOS

Messagepar Arnaudkite » 17 Avr 2014 19:21

Oui, je l'ai fait. Par le navigateur je n'ai pas d'erreur mais ma playliste démarre. Par contre si je vide la playliste de l'appli SONOS, le message est annoncé correctement.

Il n'y a que moi qui ai le problème ?
Arnaudkite
 
Messages : 29
Inscription : 18 Nov 2013

Re: Pour les utilisateurs de SONOS

Messagepar Aurel64 » 18 Avr 2014 08:14

Moi j'ai la même erreur que toi mais ça se lance au bout d'un certain temps. En règle générale via eedomus c'est bcp plus long que depuis l'url
Aurel64
 
Messages : 77
Inscription : 07 Mars 2013
Localisation : FRANCE - Pau

Re: Pour les utilisateurs de SONOS

Messagepar darkwinter » 18 Avr 2014 15:01

Après quelques mois d'absence, je reviens essayer de faire fonctionner le tss avec sonos et eedomus.

Je suis reparti de zéro. J'ai bien maintenant un fichier mp3 qui se crée dans le dossier audio. Par contre, j'ai un message d'erreur sur sonos "Impossible de lire TTS-34568....mp3. Impossible de se connecter à //0/audio.

Si vous avez une poste je suis preneur car je suis presque au bout à mon avis.
darkwinter
 
Messages : 251
Inscription : 28 Juil 2012

Re: Pour les utilisateurs de SONOS

Messagepar darkwinter » 18 Avr 2014 15:18

Je viens de voir que eedomus avait intégré l'actionneur UPNP avec sonos (merci à la team). Vous avez déjà essayé de lire une playlist sonos via l'actionneur UPNP?
darkwinter
 
Messages : 251
Inscription : 28 Juil 2012

Re: Pour les utilisateurs de SONOS

Messagepar DjMomo » 18 Avr 2014 17:15

Je regarde le problème de TTS et de pause assez rapidement. Ça doit pas être grand chose.
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

PrécédentSuivant

Retour vers Suggestions

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)