Hat denn jemand https://github.com/jishi/node-sonos-http-api
am laufen Betreff Text to Speech?
Hat denn jemand https://github.com/jishi/node-sonos-http-api
am laufen Betreff Text to Speech?
nein. hab ja kein sonos, kann dir da -sorry- nicht helfen.
ich mache das mit applescript auf yamaha
Also eigentlich ist es ja sehr gut auf Github beschrieben, weiß nicht genau ab welchen Punkt du Probleme hast.
Aber meinst du es ist nicht besser eine MP3(Ansage oder Sound) abspielen zu lassen alleine schon wegen der Verzögerung?
Ich sage mal wenn du die TexttoSpeech-Anfrage erst zum Anbieter sendest und die immer erst umgewandelt werden muss und dann wieder runtergeladen/gestreamt wird vergeht glaube ich ne menge Zeit. Und in den meisten Szenarien bleiben die Notifications eh immer gleich.
hast du einen mac, einen apple ?
dann mach dort mal eine console auf und gebe einfach mal
say hallo maik
ja, ganz anfänglich.
wenn du jetzt aber auch ganze texte schreibst, die auch vorlesen lassen kannst, sogar mit parametern wie datum/zeit füllen kannst, daraus dann einen für dich (anwenungsfall) sinnigen text ersinnst, den dann entweder per script direkt (aus der HB heraus, also in szenen einbindbar) auf einen bestimmten lautsprecher ausgebar, ansagen lassen kannst , dann wird da ein konkreter gedanke, ein konkretes projekt raus
hier gibt es einen blog applescript. dort ist einiges per copy+paste probierbar, zum "reinschnüffeln".
ich selber bin dabei, mir einen guten morgen im badezimmer zu wünschen, mir datum + uhrzeit ansagen zu lassen und mir die aktuellen wettervorschau für meine PLZ ansagen zu lassen. werde dann gefragt, ob ich musik im bad hören will oder nicht. die geht dann halt an...oder nicht. wenn der webradiosender dudelt, kann ich frau siri sagen, sie soll badezimmer lauter oder leiser stellen oder den webradiosender (über itunes - playlist) von sender 1,2,3 umstellen, je nachdem welche webradiostreams du in itunes als playlist hinterlegt hast. die können ja per HB plugin ssh dann gewechselt werden.
wenn das dann alles funktioniert, muss ich noch so eine kleine frau alexa ins bad stellen, weil ich keine lust habe immer das iphone mitzuschleppen oder in meine mittlerweile viel zu langsam gewordene iwatch 1 zu sprechen.
ja gut, dann sage ich halt "alexa" und nicht "siri", damit kann ich aber leben, weil alexa IMMER zuhört und -wie ich die tage gesehen habe- sehr viel subtiler auf das ansprechen hört.
tts (texte usw. erstellen) -> applescript bzw. das plugin ssh
lautsprecher schalten (an/aus, laut, leise) -> httpmultiswitch
das ist so gerade mein "projekt"
Also eigentlich ist es ja sehr gut auf Github beschrieben, weiß nicht genau ab welchen Punkt du Probleme hast.
Aber meinst du es ist nicht besser eine MP3(Ansage oder Sound) abspielen zu lassen alleine schon wegen der Verzögerung?
Ich sage mal wenn du die TexttoSpeech-Anfrage erst zum Anbieter sendest und die immer erst umgewandelt werden muss und dann wieder runtergeladen/gestreamt wird vergeht glaube ich ne menge Zeit. Und in den meisten Szenarien bleiben die Notifications eh immer gleich.
Das stimmt wohl, aber woher bekomme ich einen passenden MP3 File? Und dann wäre noch das Problem wie ich den File einbinden kann und danach wieder auf Radiobetrieb komme. Hast du so etwas evtl. am laufen?
Wilfhelm2 Dein vorhaben ist auch total mein Ding, aber ich habe kein Mac sondern nur ein Windowsrechner. Mir würde es ja schon zum Anfang reichen das Sonos mich mit einem "Guten morgen" weckt und dann weiter drauf aufbauen. Mir fehlt nur leider so der Anstoß wie man das ganze ohne viel Aufwand realisieren kann. Sonos muss ja auch nach der Ansage wieder auf Radio wechseln.
wichtig, gestern abend ergoogelt.
tts texte / voice over texte (also deren dateien ".txt" oder so) eignen sich NICHT zum streamen ! geht zwar, aber kann man sich nicht anhören auf -wichtig- EXTERNEN lautsprechern. interner pc lautsprecher -> alles gut. aber das ist ja nicht, was wir wollen.
die müssen in itunes fähiges format gewandelt werden (lso, wenn man das mit itunes abspielen will , natürlich)
windows -> ok, kann ich nur bedingt helfen, da ich dieses gesamt HB unter ios mache.
aber der weg wäre
umleitung gewünschter z.b. mp3/4 dateien auf gewünschten lautsprecher klären / regeln (z.b . mit http oder -besser- multiswitch plugin)
googeln wie du textdateien (guten morgen....) usw. in mp3/4 dateien oder andere itunes fähige formate wandeln kannst (womit spielst du denn jetzt deine musik ab ?)
wenn das geht / hast, playlist (z.b. homebridge) anlegen und files aussagekräftig benennen/organisieren innerhalb der playlist
dann via HB-schalter / aktion itunes die entsprechende playlist bzw. den entsprechenden text ansteuern lassen
so mal im groben.
Zur Zeit nutze ich nur das Sonos Plugin was mir einen Schalter pro Lautsprecher in Homekit verpasst. Damit kann ich die zuletzt gespielte Quelle ein und aus schalten. Wenn ich etwas anderes aus dem Netzwerk abspielen möchte muss ich es manuell in der Sonosapp einstellen.Ich habe noch keine bessere Lösung für Sonos gefunden. Da ich sehr viele Musikdatein auf meinem NAS habe, ist die Einbindung bestimmt kompliziert??
Also die MP3 (Bsp. Ansage: "Guten Morgen") habe ich mittels Amazon Polly (TTS Service) erstellt, Diese über auf dem Raspberry wo HB läuft abgelegt und dann kann ich diese mittels der Node-Sonos-API an die Sonos Streamen.
Beispiel: ein HB Http oder CMD-trigger oder CMDSwitch2 Plugin mit dem Befehl: "curl http://localhost:5005/Wohnzimmer/clip/GutenMorgen.mp3"
Wird der virtuelle Schalter ausgelöst Spielt mir der Sonos die Mp3 ab (wenn gerade Musik läuft wird diese Pausiert und danach weiter abgespielt)
Das kann man jetzt z.b mit einem Bewegungsmelder verknüpfen wenn Bewegung aktiviere Ansage
Besipiel mittels CMDSwitch2-Plugin
1. Regel: setze "gutenMorgen" um 04:00 auf EIN
2. Regel: Bei Bewegung setzte "gutenMorgen" auf AUS wenn zustand "gutenMorgen" auf EIN
beim Ausschalten wird dann die Mp3 abgespielt.
ok.
wenn ich das -kurz cross over gelesen bei amazon- richtig verstehe, ist amazon polly ein (kostenpflichtiger ) dienst, der nichts anderes macht, als die tts daten in z.b. mp3 zu wandeln und dir diese datei dann zur verfügung stellt. richtig ?
dein eigentlicher "musik-abspieler" läuft auf dem PI und somit hast du nicht den "umweg" (wie ich) über den pc oder mac / itunes , richtig ?
weil sonst würde ich fragen, wie du das mit demm passwort bei dem ssh-befehl von pi an (pc wo der musikspieler läuft) geklärt hast, ohne ssh-plugin.
DAS "CURL" ist interessant. könntest mal drüber gucken, das script schaltet den yamaha so nicht an
--Yamaha AN
--set theURL to "http://192.168.x.xxx/YamahaExtendedControl/v1/main/setPower?power=on"
--do shell script "curl " & quoted form of theURL
bekommt der speaker den http befehl direkt aus der HB, dann schon.
möchte mir halt einiges an HB schalter-wildwuchs ersparen und die speaker-umleitung im applescript direkt hinterlegen.
AntiHeld889 Das ist ja interessant ?Kannst du nicht mal eine Anleitung hierzu erstellen? Du hast doch auf dem Raspberry die Sonos API zusätzlich laufen , aber wie startet sie beim Reboot selbständig?
Also der Amazondienst ist glaube 1 Jahr kostenlos so wie ich das gelesen hatte aber gibt ja auch andere Dienste die sowas können, zur Not selber mit eigener Stimme aufnehmen xD
Richtig alles liegt auf dem Raspberry und wird von dort aus auch geschaltet somit benötige ich das SSH Plugin nicht.
auf welchem System läuft deine HB? Raspberry, Windows oder MAC? mit dem AppleScript kenne ich micht jetzt noch nicht so aus aber bist jetzt konnte ich alles über HTTP API's schalten/steuern
Ja ich schau mal wie ich dazu komme, noch muss ich die Sonos-API manuell nach dem Reboot starten aber sollte jetzt nicht das Problem sein diese zum Autostart hinzuzufügen.
hast du denn die Sonos-API schon zum Starten gebracht bis jetzt?
dachte ich mir, von wg. amzon diest.
ne, ging mir nicht um die 4euro jährlich, wollte nur wissen, ob ich das richtig verstanden habe.
meine stimme aufnehmen und abspielen...na..ich denke, das lassen wir lieber aber klar, geht, keine frage.
ok, bei dir vom PI aus. hatte ich seinerzeit auch überlegt, einen player auf den PI zu legen aber dann hab ich mich (der einfachkeit halber) entschlossen, das itunes auf dem mac (der ist eh 24x7 an) zu nutzen, daher auch das ssh plugin.
ich mach mal weiter im scripting und mit dem automator cooles teil das.
AntiHeld889 Bei mir läuft Hb auf dem Raspberry. Ich weiß nicht mal so richtig wie ich da anfangen soll. Wie hast du die Sonosapi den zum laufen gebracht und wie bekomme ich die MP3 auf den Raspberry?
AntiHeld889 Ich würde das Thema gerne nochmal aufgreifen. Kannst du nicht mal eine Anleitung erstellen wie du das genau mit Text to speech realisiert hast?
ich werde mich morgen mal ran machen und versuchen das zusammen zufassen
Sound Natification für Sonos
Als erstes benötigen wir die „Node Sonos HTTP API“
Quelle: https://github.com/jishi/node-sonos-http-api
cd ~
wget https://github.com/jishi/node-sonos-http-api/archive/master.zip
unzip master.zip
cd node-sonos-http-api-master
Nun sollte die API laufen und eine Sample Config gestartet haben.
In dem Unterordner /home/pi/node-sonos-http-api-master/static/clips könnt ihr nun eure Mp3 Sound’s ablegen die nachher abgespielt werden sollen
Nun zu einem Test:
Befehl zum Abspielen des Sounds mit der Lautstärke auf 30%
nun sollte der Sound abgespielt worden sein.
Jetzt kann man diese Art von Befehlen in Homebridge mittels verschiedener Plugins einbinden. Hier nur ein paar beispiel Plugins.
homebridge-cmd
homebridge-cmdswitch2
homebridge-cmdtrigger
homebridge-cmdswitch
homebridge-http
homebridge-http-webhooks
super, AntiHeld889
und wenn ich das richtig verstehe, ist der unterschied zu allen NON-SONOS halt der, dass man keine api für das endgerät hat / bekommt.
damit nicht direkt an die funktionen des lautsprechers kommt, um ihn mit textdateien/musikdateien -individuell per szene / schalter auswählbar- zu "füttern" / abzuspielen, oder irre ich ?
dann xMAIKx muss man solche umwege gehen wie ich.
Richtig, dies ist auch nur eine inoffizielle API aber Songs hat angekündigt seine API vollständig 2018 zu öffnen.
Es ginge auch noch richtiges TTS aber dazu muss man noch eine Config-Datei mit den Daten des TTS-Anbieters füttern (auf Github gut beschrieben)
interessant wäre vllt noch ein Script welches Wetter Daten zum TTS-Anbieter sendet und diese dann als MP3 runterlässt und die feste "Wetter.mp3" beispielsweise ersetzt. So das es immer aktuell ist