Besteht die Möglichkeit, mit dem Alexa Modul von von Fonzo ein MP3 oder an anderes Soundfile abzuspielen?
Mir schwebt da eine art Kirchenglocke vor. zu jeder Viertelstunde und vollen Stunde ein Gong oder Geläute
Kirchenglocke weis ich nicht, aber grundsätzlich kann mit
ECHOREMOTE_TextToSpeech(integer $InstanceID, string $text_to_speech);
auch Sound Files abspielen, klingt im ersten Moment vielleicht wiedersprüchlich ist aber so, da man über <speak> auch auf die Sound Library Zugriff hat.
Wenn Du da also was passendes findest was „bimmelt“, kannst Du das auch abspielen.
Also „Bells“ gibt es genug in der Sound Library musst Du mal durchhören was sich für Dich passend nach Kirchenglocke anhört. Das hängt ganz sicher auch von dem Lautsprecher ab über den die „Kirchenglocke“ dann abgespielt wird wie gut sich das dann anhört.
Test bestanden. Da sind ein paar schöne Glockenschläge dabei. Auch einzelne die dafür sehr gut verwendbar sind. Meine Frau hat zwar gefragt, ob ich was im Schüsserl hab (na sicher) aber mir ist das egal. Ich hab den Event aber gnädigerweise auf 8-21 Uhr beschrnkt und nehme das 12h Format.
Wenn man „zu ruhig“ wohnt oder der Big Ben nicht nebenan steht, bastelt man sich halt was zurecht. Ich kann Dich beruhigen meine Frau würde bei so was ganz sicher auch ein Veto einlegen, aber mit der Sound Library lässt sich der ein oder andere nette Effekt erstellen. Das nächste Halloween kommt bestimmt.
Könnt ihr mir bitte mal auf die Sprünge helfen:
Source code:
<audio src="soundbank://soundlibrary/voices/human/human_12"/>
und dann
ECHOREMOTE_TextToSpeech(12345, ????);
Danke MST
ECHOREMOTE_TextToSpeech(12345,'<audio src=\"soundbank://soundlibrary/voices/human/human_12\"/>');
Sollte so passen. Wichtig ist, dass du die " mit einem vorangestellten \ „entwertest“.
Mein Glockenschlag
<?php
$Stunde = date('h',time());
$Minuten = date('i',time());
//Wohnzimmer
$EchoID = 15960;
//Kinderzimmer
//$EchoID = 13661;
$Glockenschlag = "<audio src=\"soundbank://soundlibrary/bell/church/church_bells_09\"/>";
switch ($Minuten){
case 0:
for ($i=1;$i<=$Stunde;$i++) {
RequestAction($EchoID, $Glockenschlag);
sleep(3);
}
break;
case 15: RequestAction($EchoID, $Glockenschlag);
break;
case 30: RequestAction($EchoID, $Glockenschlag);
sleep(3);
RequestAction($EchoID, $Glockenschlag);
break;
case 45:
RequestAction($EchoID, $Glockenschlag);
sleep(3);
RequestAction($EchoID, $Glockenschlag);
sleep(3);
RequestAction($EchoID, $Glockenschlag);
break;
}
Bei doppelten Anführungszeichen hast du Recht.
Du hast aber im ersten Beispiel aber einfache benutzt, dann musst du die doppelten nicht maskieren.
Michael
… funktioniert leider bei mir nicht:
Warning: Variable #55463 existiert nicht in...
bei „RequestAction“ und bei
ECHOREMOTE_TextToSpeech(12345...
hat Alexa „Große Schwierigkeiten…“
Ich hab bis jetzt nur Request_Action verwendet. Wobei ich das auch immer über den Button „Befehl einfügen“ im Editor mache. Bei Request_Action ist die ID nicht die ID des Echos, sondern die ID der Funktion. Bei mir funktioniert das tadellos.
Ok
Ich verwende meistens die doppelten wollte aber seinem Beispiel folgen.
Funktioniert denn die Instanz generell in IP-Symcon bzw. ist damit normal Text to Speech möglich?
Ich versuche das Thema noch mal aufzugreifen. Der Vorschlag von @Fonzo funktioniert ja wunderbar, allerdings nur mit Sounds der Sound Library .
Was ist mit eigenen MP3’s? Ich habe mal gegoogelt und sogar Chat GPT gefragt. Die sagte mir „Sie können beispielsweise einen Skriptbefehl wie „Alexa_PlayFile“ verwenden, um die Wiedergabe zu starten.“ Davon habe ich noch nie was gehört und auch nichts gefunden.
2018 hat Amazon die Möglichkeit abgeschafft, eigene MP3’s zu Amazon Music hinzuzufügen. Das wäre eine Möglichkiet gewesen.
Per Bluetooth wäre auch eine Möglichkeit, aber ist das mit IP-Symcon zu realisieren?
Gibt es wirklich keinen Weg (einfacheren) Weg, ein eigenes MP3 auf einem Alexa Gerät abzuspielen?
Eine Möglichkeit wäre: MyMedia for Alexa
- Negativ: Cloud Service, nicht gratis jedoch Kosten überschaubar
- Positiv: MP3 müssen nirgends hochgeladen werden (bleiben on premise)
Oh - danke für den Tipp, bin es gerade am Ausprobieren…
Ist ja wirklich günstig. Hab’s mit ECHOREMOTE_TextCommand($id_echo, $query);
realisiert.
Hat leider eine große Latenzzeit. (Bei mir ca. 6 Sekunden).
Voicemonkey scheint so etwas seit der API2 auch zu unterstützen:
https://voicemonkey.io/docs#media
So wie ich es verstanden habe, muss die Datei auf einem (öffentlich zugänglichem) Server liegen - oder bei voiemonkey hochgeladen.
Es gibt vielleicht noch eine Möglichkeit mit dem EchoRemote Modul mittels SSML und TextToSpeech.
Hier sind einige Anforderungen dazu und Tipps zum Encoding beschrieben (wichtig ist z.B. dass die Samplerate der Datei nicht höher als 24kHz sein darf):
Mit einer aus der Soundlibrary heruntergeladenen und auf meinem Server gehosteten Datei funktioniert es bei mir.
Hier ein Beispiel mit einer bei amazon gehosteten Datei:
ECHOREMOTE_TextToSpeech($instanceID, '<speak><audio src="https://d3qhmae9zx9eb.cloudfront.net/alarms/chimes_and_bells/chimes_bells_01.mp3"/></speak>');
Dieses System verwende ich schon lange. Siehe mein dritter bzw. Fonzo’s zweiter Beitrag in diesem Thread
Aber das „My Media Audio“ gefällt mir irgendwie. Ich glaub das schau ich mir an.
Oh - ein sehr vielversprechender Tipp. Hat leider nur ein einziges Mal funktioniert. Dann kam folgender Hinweis: „Ich habe momentan Schwierigkeiten auf deinen Simon Says EU Skill zuzugreifen“.
Bei erneuten Versuchen kommt er jetzt nur noch, auch bei anderen Echos.
Das Beispiel aus der Doku „…Welcome to Ride Hailer…“ funktioniert, auch der Sound.
Klar, habe auch keinen Simon Says EU Skill aktiviert. Aber wieso dieser Hinweis??
Die MP3-Datei liegt bei mir selbst gehostet auf einem Server und ist aus dem Internet erreichbar.
Hat vielleicht noch jemand das gleiche Problem?
ECHOREMOTE_TextToSpeech($id_echo, '<speak><audio src="https://jingles.joergmahn.de/cologneairport.mp3"/></speak>');
Ich hab’s mal mit deinem Link probiert - da klappt es bei mir auch nicht. Dann habe ich deine Datei auf meinen Server kopiert - damit klappt es. Also vlt. wird dein Let’s Encrypt Zertifikat nicht akzeptiert?
Simon says ist der interne Skill auf den auch TextToSpeech zugreift. Die Meldung kommt wohl, wenn es Probleme mit der Datei oder den Zugriff darauf gibt. Die Meldung kommt z.B. auch, wenn die Datei die falsche Samplerate hat.
ich hoste meine files mit LetsEncrypt und es funktioniert.
Wichtig ist der richtige Codec mit den passenden eigenschaften:
ffmpeg -**i** 1.mp3 -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 11.mp3
dann funktioniert das hier →
ECHOREMOTE_TextToSpeech($id_echo, '<speak><audio src="https://server.de/11.mp3"/></speak>');