Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [VORLAGE] GoogleHome spechen lassen TTS

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [VORLAGE] GoogleHome spechen lassen TTS

    This topic has been deleted. Only users with topic management privileges can see it.
    • blauholsten
      blauholsten Developer last edited by

      Hallo,

      wer Interesse daran hat, seine GoogleHome Lautsprecher sprechen zu lassen, hier ein kleines Skript….

      //SENDE ZU GOOGLE HOME TTS-TEXTE
      //BENUTZT WIRD toGoogle('TEXT')
      
      const Client = require('castv2-client').Client;
      const DefaultMediaReceiver = require('castv2-client').DefaultMediaReceiver;
      const googletts = require('google-tts-api');
      
      const deviceAddress = 'IP des GoggleHome';
      const language = 'de'; //de
      
      const toGoogle = function(message, callback) {
        if (!deviceAddress){
      	 return log('Bitte Adresse eingeben', 'warn');
        }else {
          getSpeechUrl(message, deviceAddress, function(res) {
            log(res + " --> " + message);
          });
        }
      };
      
      const getSpeechUrl = function(text, host, callback) {
        googletts(text, language, 1).then(function (url) {
          onDeviceUp(host, url, function(res){
            callback(res);
          });
        }).catch(function (err) {
          console.error(err.stack);
        });
      };
      
      const onDeviceUp = function(host, url, callback) {
        var client = new Client();
        client.connect(host, function() {
          client.launch(DefaultMediaReceiver, function(err, player) {
      
            var media = {
              contentId: url,
              contentType: 'audio/mp3',
              streamType: 'BUFFERED' // or LIVE
            };
            player.load(media, { autoplay: true }, function(err, status) {
              client.close();
              callback('TTS to GoogleHome');
            });
          });
        });
      
        client.on('error', function(err) {
          console.log('Error: %s', err.message);
          client.close();
          callback('error');
        });
      };
      
      

      Einfach ein Skript mit dem obrigen Code anlegen(global), und dann von überall

      toGoogle('Das was gesagt werden soll')
      

      benutzen….

      EDIT:

      Man muss in der passenden JavaScript Instanz die beiden Zusatz Module castv2-client und google-tts-api installieren.

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Danke für die interessante Idee.

        sayit unterstützt jetzt GoogleHome als Ausgabegerät.

        Man kann nicht nur mit Google Stimme ausgeben, sondern auch mit Alexa Stimmen. 🙂

        sayit ist im latest repo.

        1 Reply Last reply Reply Quote 0
        • M
          Marty56 last edited by

          sayit unterstützt Google Home. Das ist ja super.

          Geht auch Amazon Echo?

          1 Reply Last reply Reply Quote 0
          • lobomau
            lobomau last edited by

            @Marty56:

            sayit unterstützt Google Home. Das ist ja super. `
            Yes! Funktioniert! 😄

            P.S. wenn man keine Lautstärke vorgibt, geht es mit voller Lautstärke. Achtung. Mit Wert 20 anfangen 😉

            > Geht auch Amazon Echo?
            Nein, noch nicht.

            1 Reply Last reply Reply Quote 0
            • lobomau
              lobomau last edited by

              Wie läuft es beim Script mit der Lautstärke über Google Home? Kann man die einstellen oder läuft die Voreingestellte?

              Ich habe es über sayit-Adapter ausprobiert. Funktioniert gut. Jedoch wenn man Musik gerade hört, dann kommt korrekt die Durchsage, aber dann geht es nicht zurück zur Musik. Habt ihr dafür eine Lösungsidee?

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                @lobomau:

                Wie läuft es beim Script mit der Lautstärke über Google Home? Kann man die einstellen oder läuft die Voreingestellte?

                Ich habe es über sayit-Adapter ausprobiert. Funktioniert gut. Jedoch wenn man Musik gerade hört, dann kommt korrekt die Durchsage, aber dann geht es nicht zurück zur Musik. Habt ihr dafür eine Lösungsidee? `
                Benutze Chromecast Adapter + sayit.

                1 Reply Last reply Reply Quote 0
                • blauholsten
                  blauholsten Developer last edited by

                  @Bluefox:

                  Danke für die interessante Idee.

                  sayit unterstützt jetzt GoogleHome als Ausgabegerät.

                  Man kann nicht nur mit Google Stimme ausgeben, sondern auch mit Alexa Stimmen. 🙂

                  sayit ist im latest repo. `
                  Hey bluefox,

                  habe gerade mal versucht den Sayit Adapter auf meiner nackten Test Umgebung zu installieren, folgendes Ergebnis:

                  $ ./iobroker add sayit
                  npm install iobroker.sayit --production --prefix "/opt/iobroker" (System call)
                  gyp
                  
                  ERR!
                  
                  build error gyp
                   ERR!
                   stack Error: not found: makegyp
                   ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
                  gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
                  gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
                  gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:42:5
                  gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/mode.js:8:5
                  gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:153:21)
                  gyp ERR! System Linux 4.9.0-3-amd64
                  gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
                  gyp ERR! cwd /opt/iobroker/node_modules/mdns
                  gyp ERR! node -v v8.5.0
                  gyp ERR! node-gyp -v v3.6.2
                  gyp ERR! not ok 
                  
                  npm
                  
                  WARN optional SKIPPING OPTIONAL DEPENDENCY: mdns@2.3.3 (node_modules/mdns):
                  npm WARN optional SKIPPING OPTIONAL DEPENDENCY: mdns@2.3.3 install: `node-gyp rebuild`npm WARN
                   optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
                  
                  ERROR: module.js:529    throw err;
                      ^
                  
                  Error: Cannot find module 'mime'
                      at Function.Module._resolveFilename (module.js:527:15)
                      at Function.Module._load (module.js:476:23)
                      at Module.require (module.js:568:17)
                      at require (internal/module.js:11:18)
                      at Install.createInstance (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupInstall.js:584:27)
                      at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:752:41
                      at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupInstall.js:157:39
                      at enableAdapters (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupInstall.js:47:21)
                      at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupInstall.js:156:21
                      at ChildProcess. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupInstall.js:325:31)
                  
                  ERROR: process exited with code 1</anonymous>
                  

                  kann es sein das das mdns paket nicht geht? Das war zumindest der Grund warum ich bei meiner Vorlage drauf verzichtet habe. Es scheint dort massive Probleme mit zu geben.

                  1 Reply Last reply Reply Quote 0
                  • A
                    Arminhh last edited by

                    moin wollte gerade mal Google Home ausprobieren!! Diese Einstellen stehen zu Verfügung
                    280_sayit.png Was trage ich bei Server ein? Der Button Suchen findet nichts!

                    Danke für die Hilfe!

                    mfg

                    Arminhh

                    1 Reply Last reply Reply Quote 0
                    • lobomau
                      lobomau last edited by

                      @Arminhh:

                      moin wollte gerade mal Google Home ausprobieren!! Diese Einstellen stehen zu Verfügung

                      sayit.png Was trage ich bei Server ein? Der Button Suchen findet nichts!

                      Danke für die Hilfe!

                      mfg

                      Arminhh `
                      Ich habe es mit der IP vom Google Home gemacht. (findet bei mir auch nichts, und es steht in grau Fehler daneben.)

                      Danach musst du die web-instanz angeben, eine ohne https, und die IP vom Web server, das ist wo ioBroker läuft bzw. wo die sayit-Instanz läuft (bei mir ist beides auf dem selben System).
                      1146_unbenannt.jpg

                      1 Reply Last reply Reply Quote 0
                      • lobomau
                        lobomau last edited by

                        @Bluefox:

                        @lobomau:

                        Wie läuft es beim Script mit der Lautstärke über Google Home? Kann man die einstellen oder läuft die Voreingestellte?

                        Ich habe es über sayit-Adapter ausprobiert. Funktioniert gut. Jedoch wenn man Musik gerade hört, dann kommt korrekt die Durchsage, aber dann geht es nicht zurück zur Musik. Habt ihr dafür eine Lösungsidee? Benutze Chromecast Adapter + sayit.
                        Ja, muss ich noch ausfürhlich testen. Ich hatte den chromecast-Adapter noch gar nicht im Einsatz. Nach dem Installieren hat er unter Objekte auch gleich meinen Google Home gefunden.

                        1 Reply Last reply Reply Quote 0
                        • wendy2702
                          wendy2702 last edited by

                          Hi,

                          da ich mit meinem Google Home nichts besseres anzufangen weiß und man für die Dinger auch kein Geld mehr bekommt soll er wenigstens die Ansagen übernehmen :mrgreen:

                          Kann mir jemand sagen wie bzw. ob sich die Ansage für unterschiedliche Ansagen per script einstellen lässt?

                          Wenn ich die unter den Chromecast Objecten ändere erhalte ich das im log:

                          chromecast.0	2018-02-03 13:56:30.645	error	Wohnzimmer - Sorry, update for chromecast.0.Wohnzimmer.player.volume not supported!
                          

                          Danke und Gruß

                          1 Reply Last reply Reply Quote 0
                          • G
                            George_Best last edited by

                            @wendy2702:

                            Hi,

                            Kann mir jemand sagen wie bzw. ob sich die Ansage für unterschiedliche Ansagen per script einstellen lässt? `

                            was genau meinst du damit? Willst du dein Google Home etwas via ioBroker ansagen lassen?

                            1 Reply Last reply Reply Quote 0
                            • wendy2702
                              wendy2702 last edited by

                              Der Google Home kann doch über SayIt ansagen machen.

                              Für diese Ansagen möchte ich halt unterschiedliche Lautstärken verwenden.

                              1 Reply Last reply Reply Quote 0
                              • blauholsten
                                blauholsten Developer last edited by

                                @wendy2702:

                                Der Google Home kann doch über SayIt ansagen machen.

                                Für diese Ansagen möchte ich halt unterschiedliche Lautstärken verwenden. `

                                Schon mal probiert den DP````
                                sayit.N.tts.volume

                                1 Reply Last reply Reply Quote 0
                                • G
                                  George_Best last edited by

                                  Beim Aufruf via SayIt kannst du doch die Laustärke angeben:

                                  setState("sayit.0.tts.text", "50;" + 'test');
                                  

                                  In meinem Beispiel ist die Lautstärke "50".

                                  1 Reply Last reply Reply Quote 0
                                  • wendy2702
                                    wendy2702 last edited by

                                    @blauholsten:

                                    @wendy2702:

                                    Der Google Home kann doch über SayIt ansagen machen.

                                    Für diese Ansagen möchte ich halt unterschiedliche Lautstärken verwenden. `

                                    Schon mal probiert den DPsayit.N.tts.volumezu beschreiben? `

                                    Das hatte ich zu Beginn probiert und hält den Fehler im

                                    Log bekommen.

                                    Werde mich morgen nochmal versuchen und mich wieder melden.

                                    Gesendet von iPhone mit Tapatalk Pro

                                    1 Reply Last reply Reply Quote 0
                                    • wendy2702
                                      wendy2702 last edited by

                                      @George_Best:

                                      Beim Aufruf via SayIt kannst du doch die Laustärke angeben:

                                      setState("sayit.0.tts.text", "50;" + 'test');
                                      

                                      In meinem Beispiel ist die Lautstärke "50". `

                                      Muss die Lautstärke mit““und````
                                      ;

                                      
                                      Dann könnte das mein Problem sein.
                                      
                                      Gesendet von iPhone mit Tapatalk Pro
                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        George_Best last edited by

                                        @wendy2702:

                                        Muss die Lautstärke mit““und;gesetzt werden ? `
                                        Ja. Im zweiten Parameter werden die Argumente Sprache und Lautstärke und eigentlich auch der Text übergeben. Korrekt müsste es heißen

                                        de;50;TEST
                                        

                                        Siehe auch https://github.com/ioBroker/ioBroker.sa … /README.md

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Snoopylix last edited by

                                          @Bluefox:

                                          @lobomau:

                                          Wie läuft es beim Script mit der Lautstärke über Google Home? Kann man die einstellen oder läuft die Voreingestellte?

                                          Ich habe es über sayit-Adapter ausprobiert. Funktioniert gut. Jedoch wenn man Musik gerade hört, dann kommt korrekt die Durchsage, aber dann geht es nicht zurück zur Musik. Habt ihr dafür eine Lösungsidee? Benutze Chromecast Adapter + sayit.

                                          Hallo Gemeinde.

                                          Ich habe das gleiche Problem wie lobomau.

                                          Ich nutze meinen Donut auch oft zum Radio hören (Tuneinradio)

                                          Wenn ich jetzt mit sayit eine Sprachausgabe auf das Gerät schicke wird diese abgespielt.

                                          Bekomme es aber einfach nicht hin das nach der Sprachausgabe das Radio weiterspielt.

                                          Habe im sayit-Adapter unter Ausgabe durch: Google Home und auch Chromecast (Tip von Bluefox) getestet.

                                          In beiden fällen bleibt der Donut nach der Ansage stumm. Erst wenn ich ihn wieder auffordere Radio zu spielen

                                          beginnt der Radio-Stream.

                                          Gibt es eine Möglichkeit nach der Ansage den letzten Stream wieder aufzunehmen? ( evtl. per Script )

                                          Meine Adapter sind so eingestellt:
                                          5225_bild3.jpg
                                          5225_bild2.jpg
                                          5225_bild1.jpg

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            Marty56 last edited by

                                            @ blauholsten

                                            Ich möchte gerne Dein Script einsetzen, weil der sayit Adapter in Kombination mit Google Chromecast Adapter bei mir nicht vernünftig funktionieren.

                                            Könntest Du mir bitte zwei Fragen beantworten, ob man mit deinem Ansatz vielleicht die zwei nervigsten Bugs von sayit umgehen könnte.

                                            1. Lässt sich irgendwie die Lautstärke beeinflussen, mit der das Sprachausgabe ausgegeben wird?

                                            2. Spielen die Medien, die vor der Sprachausgabe abgespielt wurden, nachher weiter?

                                            LG

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            567
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            24
                                            5294
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo