Categories
Technique

Vigilance météo & svxlink

Partie 1: source de données et génération des messages vocaux (.wav)

Les données opendata de météofrance étant difficilles à récupérer en automatique, nous utilisons l’API d’Opendatasoft qui les met à disposition au format JSON.

Les données sont récupées par l’intermédiaire d’une page web en php.

$json = file_get_contents("https://data.opendatasoft.com/api/records/1.0/search/?dataset=vigilance-meteorologique%40public&q=isere&facet=couleur");
$parsed_json = json_decode($json);
$nom_dept = $parsed_json->{'records'}[0]->{'fields'}->{'nom_dept'};
$couleur = $parsed_json->{'records'}[0]->{'fields'}->{'couleur'};
$datefin = $parsed_json->{'records'}[0]->{'fields'}->{'dateprevue'};
$risque = $parsed_json->{'records'}[0]->{'fields'}->{'risque_valeur0'};

Les données sont ensuite misent en forme avant d’être envoyées à la synthèse vocale. ex: Bulletin de vigilance météo pour le département: ISERE. Niveau de vigilance: Vert.

$msg_vigi = "Bulletin de vigilance météo pour le département: ".$nom_dept.".";

if (strlen($risque)>0) {
  $msg_vigi = $msg_vigi."Alerte vigilance en cours. Niveau ".$couleur." pour ".$risque;
}
else {
  $msg_vigi = $msg_vigi . " Niveau de vigilance: ".$couleur.".";
}

La synthèse vocale est réalisée avec l’API de VoiceRSS. VoiceRSS propose un API gratuit allant jusqu’a 350 requêtes par jour ainsi qu’un SDK pour PHP.

<?php
// include SDK VoiceRSS
require_once('/home/xxx/www/xxx/voicerss_tts.php');

$api='xxxxx clé API xxxxxx';
 
	$tts = new VoiceRSS;
	$voice = $tts->speech([
	'key' => $api,
	'hl' => 'fr-FR',
	'v' => 'axel',
	'src' => $msg_vigi,    //Message à synthétiser
	'r' => '-1',
	'c' => 'wav',
	'f' => '16khz_16bit_mono',
	'ssml' => 'false',
	'b64' => 'false'
	]);

//stockage du résultat dans un fichier .wav	            file_put_contents('/home/xxx/www/xxx/vigi.wav',$voice['response']);

Leave a Reply

Your email address will not be published. Required fields are marked *