toine a écrit:Perso, j'ai réglé ce problème en modifiant la ligne concernée dans sonos.class.php:
$mp3[$i] = file_get_contents('http://translate.google.com/translate_tts?q='.$words[$i].'&tl='.$lang.'&idx=0&client=eedomus');
et j'ai également dû raccourcir le texte parlé.
Mais cela remarche chez moi maintenant.
En espérant que cela puisse aider.
A+
toine a écrit:Perso, j'ai réglé ce problème en modifiant la ligne concernée dans sonos.class.php:
$mp3[$i] = file_get_contents('http://translate.google.com/translate_tts?q='.$words[$i].'&tl='.$lang.'&idx=0&client=eedomus');
et j'ai également dû raccourcir le texte parlé.
Mais cela remarche chez moi maintenant.
En espérant que cela puisse aider.
A+
$mp3[$i] = file_get_contents('http://translate.google.com/translate_tts?client=t&q='.$words[$i].'&tl='.$lang);
http://translate.google.com/translate_tts?client=t&q=Bonjour&tl=fr
<?php
require("sonos.class.php");
/***********************************************************/
/******* Paramètres génériques ******/
/***********************************************************/
//Répertoire ou sont stockés les scripts
$directory = "192.168.1.10/www/scripts/sonos";
//TTS
$ttsengine = 'acapela';
$lang = 'fr';
//Parametre pour forcer les sonos a sortir du mute, au cas ou
$force_unmute = 1;
// IP des sonos
$sonos_salon = "192.168.1.51";
$sonos_chambre = "192.168.1.52";
$sonos_fille = "192.168.1.53";
$sonos_bureau = "192.168.1.54";
$sonos_sdb = "192.168.1.55";
$jour = mb_strtolower(date("l"));
switch ($jour)
{
case 'monday':
$jour = "lundi";
break;
case 'thuesday':
$jour ='mardi';
break;
case 'wesnesday':
$jour ='mercredi';
break;
case 'thursday':
$jour ='jeudi';
break;
case 'friday':
$jour ='vendredi';
break;
case 'saturday':
$jour ='samedi';
break;
case 'sunday':
$jour ='dimanche';
break;
}
$mois = date("n");
switch($mois){
case '1':
$mois ='janvier';
break;
case '2':
$mois ='février';
break;
case '3':
$mois ='mars';
break;
case '4':
$mois ='avril';
break;
case '5':
$mois ='mai';
break;
case '6':
$mois ='juin';
break;
case '7':
$mois ='juillet';
break;
case '8':
$mois ='aôut';
break;
case '9':
$mois ='septembre';
break;
case '10':
$mois ='octobre';
break;
case '11':
$mois ='novembre';
break;
case '12':
$mois ='décembre';
break;
}
/***********************************************************/
//récupération du volume voulu
$volume = $_GET['volume'];
if ($volume > 100){$volume = 100;}
if ($volume < 0){$volume = 0;}
if (!$volume){$volume = 25;}
// Récupération de la sonos voulue
$sonos = $_GET['sonos'];
switch($sonos){
case salon:
$sonos_ip = $sonos_salon;
break;
case chambre:
$sonos_ip = $sonos_chambre;
break;
case fille:
$sonos_ip = $sonos_fille;
break;
case bureau:
$sonos_ip = $sonos_bureau;
break;
case sdb:
$sonos_ip = $sonos_sdb;
break;
}
/***********************************************************/
/********* URL pour récupérer les datas ****************/
/***********************************************************/
//Temperature
$api_temperature = "http://192.168.1.5/api/get?api_user=xxxxxxxx&api_secret=xxxxxxxxx&action=periph.caract&periph_id=230620";
//Temps pour aller aux carmes
//$api_carmes = "http://192.168.1.5/api/get?api_user=xxxxxxxx&api_secret=xxxxxxxxx&action=periph.caract&periph_id=230902";
//Vent
$api_vent = "http://192.168.1.5/api/get?api_user=xxxxxxxx&api_secret=xxxxxxxxx&action=periph.caract&periph_id=231395";
//Conditions Meteo by Yahoo
$api_conditions = "https://query.yahooapis.com/v1/public/yql?q=select%20item.condition.text%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D'Clermont-Ferrand')%20and%20u%3D'c'&format=json";
/***********************************************************/
/********* Exploitation des JSON ****************/
/***********************************************************/
// Récupération de la temperature extérieure
$temp_api = file_get_contents($api_temperature);
if (strpos($temp_api, '"success": 1') == false){echo "Une erreur est survenue: [".$temp_api."]";}
else{
$temp_json = json_decode($temp_api);
$temperature = $temp_json->{'body'}->{'last_value'};
}
// Récupération de la vitesse du vent
$temp_api = file_get_contents($api_vent);
if (strpos($temp_api, '"success": 1') == false){echo "Une erreur est survenue: [".$temp_api."]";}
else{
$temp_json = json_decode($temp_api);
$vent = $temp_json->{'body'}->{'last_value'};
}
// Récupération des conditions météo
$temp_api = file_get_contents($api_conditions);
$temp_json = json_decode($temp_api);
$conditions = $temp_json->{'query'}->{'results'}->{'channel'}->{'item'}->{'condition'}->{'text'};
$conditions = mb_strtolower($conditions);
/*
// Récupération du temps de trajet
$temp_api = file_get_contents($api_carmes);
if (strpos($temp_api, '"success": 1') == false){echo "Une erreur est survenue: [".$temp_api."]";}
else{
$temp_json = json_decode($temp_api);
$carmes = $temp_json->{'body'}->{'last_value'};
//traitement de la réponse pour ne récupérer que la valeur de temps :
$carmes = substr ($carmes,strpos($carmes, ":")+1,4);
//On arrondit la valeur à la minute supérieure après avoir remplacé les : par une virgule
$carmes = str_replace(":", ".",$carmes);
$carmes = ceil($carmes);
}
*/
/***********************************************************/
/********* Traduction des conditions météos ****************/
/***********************************************************/
//Traduction des conditions météo - Penser à en faire une fonction à l'occasion
if($conditions = 'tornado')$conditions ='tornade';
if($conditions = 'tropical storm')$conditions ='touragan tropical';
if($conditions = 'hurricane')$conditions ='ouragan';
if($conditions = 'severe thunderstorms')$conditions ='orages dangereux';
if($conditions = 'thunderstorms')$conditions ='orages';
if($conditions = 'mixed rain and snow')$conditions ='pluie et neige mélées';
if($conditions = 'mixed rain and sleet')$conditions ='pluie';
if($conditions = 'mixed snow and sleet')$conditions ='neige';
if($conditions = 'freezing drizzle')$conditions ='bruine verglaçante';
if($conditions = 'drizzle')$conditions ='bruine';
if($conditions = 'freezing rain')$conditions ='pluie verglaçante';
if($conditions = 'showers')$conditions ='averses';
if($conditions = 'showers')$conditions ='averses';
if($conditions = 'snow flurries')$conditions ='averses de neige';
if($conditions = 'light snow showers')$conditions ='neige légères';
if($conditions = 'blowing snow')$conditions ='neige soufflante';
if($conditions = 'snow')$conditions ='neige';
if($conditions = 'hail')$conditions ='grêle';
if($conditions = 'sleet')$conditions ='grésil';
if($conditions = 'dust')$conditions ='poussière';
if($conditions = 'foggy')$conditions ='brouillard';
if($conditions = 'haze')$conditions ='brouillard';
if($conditions = 'smoky')$conditions ='enfumé';
if($conditions = 'blustery')$conditions ='intense';
if($conditions = 'windy')$conditions ='venteux';
if($conditions = 'cold')$conditions ='froid';
if($conditions = 'cloudy')$conditions ='nuageux';
if($conditions = 'mostly cloudy (night)')$conditions ='très nuageux (nuit)';
if($conditions = 'mostly cloudy (day)')$conditions ='très nuageux (jour)';
if($conditions = 'partly cloudy (night)')$conditions ='partiellement nuageux (nuit)';
if($conditions = 'partly cloudy (day)')$conditions ='partiellement nuageux (jour)';
if($conditions = 'clear (night)')$conditions ='dégagé (nuit)';
if($conditions = 'sunny')$conditions ='ensoleillé';
if($conditions = 'fair (night)')$conditions ='juste';
if($conditions = 'fair (day)')$conditions ='juste';
if($conditions = 'mixed rain and hail')$conditions ='mélange pluie et grêle';
if($conditions = 'hot')$conditions ='chaud';
if($conditions = 'isolated thunderstorms')$conditions ='orages isolés';
if($conditions = 'scattered thunderstorms')$conditions ='orages épars';
if($conditions = 'scattered thunderstorms')$conditions ='orages épars';
if($conditions = 'scattered showers')$conditions ='averses éparses';
if($conditions = 'heavy snow')$conditions ='neige dure';
if($conditions = 'scattered snow showers')$conditions ='averses de neige éparses';
if($conditions = 'heavy snow')$conditions ='chute de neige';
if($conditions = 'partly cloudy')$conditions ='partiellement nuageux';
if($conditions = 'thundershowers')$conditions ='orageux';
if($conditions = 'snow showers')$conditions ='averses de neige';
if($conditions = 'isolated thundershowers')$conditions ='orages isolés';
if($conditions = 'not available')$conditions ='inconnu';
if($conditions = 'mostly cloudy')$conditions ='très nuageux';
/***********************************************************/
/********* Les messages ****************/
/***********************************************************/
$message1 = "Bonjour xxxxx. J'espère que vous avez bien dormi, en tout cas vous êtes resplendissante!
";
$message2 = "
Nous sommes le ".$jour." ".date("j")." ".$mois.".
Il est ".date("G")." heure ".date("i").".
";
$message3 = "
Le temps s'annonce ".$conditions.", avec une température de ".$temperature." degrés actuellement
et un vent soufflant à ".$vent." kilomètres heure.
";
//$message4 = "
//Il vous faudrait environ ".$carmes." minutes pour arriver au travail si vous partez maintenant.
//";
$message5 = "
Passez une excellente journée. Longue vie et Prospérité. Je ferme maintenant ma gueule et je vous mets la radio.
";
/***********************************************************/
/********* On envoit les messages a la bonne sonos *********/
/***********************************************************/
// Instanciation de la classe
$the_sonos = new SonosPHPController($sonos_ip);
$the_sonos->PlayTTS($message1,$directory,$volume,$force_unmute,$lang,$ttsengine);
$the_sonos->PlayTTS($message2,$directory,$volume,$force_unmute,$lang,$ttsengine);
$the_sonos->PlayTTS($message3,$directory,$volume,$force_unmute,$lang,$ttsengine);
//$the_sonos->PlayTTS($message4,$directory,$volume,$force_unmute,$lang,$ttsengine);
$the_sonos->PlayTTS($message5,$directory,$volume,$force_unmute,$lang,$ttsengine);
//lancer la radio :
$radio = "x-rincon-mp3radio://e1-live-mp3-128.scdn.arkena.com/europe1.mp3";
$radio = new SonosPHPController($sonos_ip);
$radio->SetQueue($radio);
$radio->Play();
?>
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 50 invité(s)