-
Notifications
You must be signed in to change notification settings - Fork 6
/
sonos-to-speech.php
52 lines (47 loc) · 1.4 KB
/
sonos-to-speech.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
/**
* aktueller Sonos Titel und Interpret per TTS ansagen
* @param $text
*/
function s2s($text)
{
global $debug, $sonos, $sonoszone, $master;
$thissong = "Der laufende Song lautet ";
$by = " von ";
# prüft ob gerade etwas gespielt wird, falls nicht dann keine Ansage
$gettransportinfo = $sonos->GetTransportInfo();
if($gettransportinfo <> 1) {
exit;
} else {
# Prüft ob Playliste oder Radio läuft
$master = $_GET['zone'];
$sonos = new PHPSonos($sonoszone[$master][0]);
$temp = $sonos->GetPositionInfo();
if(!empty($temp["duration"])) {
# Generiert Titelinfo wenn MP3 läuft
$artist = substr($temp["artist"], 0, 30);
$titel = substr($temp["title"], 0, 70);
} elseif(empty($temp["duration"])) {
# Generiert Titelinfo wenn Radio läuft
$value = substr($temp["streamContent"], 0, 70); // Titel und Interpret der Radio Playliste
# Teilt den Stream beim Bindestrich in 2 Werte
$titelartist = explode("-",$value, 2);
$artist = $titelartist[0];
$titel = substr($titelartist[1], 1, 50); // erstes Leerzeichen nach Trennung abschneiden;
# Falls keine Titel / Artist Info verfügbar abbrechen
if($titelartist[1] == '') {
$text = 'keine Info';
}
}
# Erstellen des Strings zur Übergabe an TTS
$text = $thissong . $titel . $by . $artist ;
$text = utf8_encode($text);
if ($debug == 1)
{
echo ($text);
echo '<br />';
}
return ($text);
}
}
?>