MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-TTS

    Scheduled Pinned Locked Moved Utilities
    text-to-speech
    19 Posts 4 Posters 12.9k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      davericher @strawberry 3.141
      last edited by

      @strawberry-3.141 Not to be a debbie downer, but does electron not expose Chromes built in multi voice text to speech api?

      https://developers.google.com/web/updates/2014/01/Web-apps-that-talk-Introduction-to-the-Speech-Synthesis-API

      strawberry 3.141S 1 Reply Last reply Reply Quote 0
      • strawberry 3.141S Offline
        strawberry 3.141 Project Sponsor Module Developer @davericher
        last edited by

        @davericher should be, but that wouldn’t work for people with serveronly mode

        Please create a github issue if you need help, so I can keep track

        D 1 Reply Last reply Reply Quote 0
        • D Offline
          davericher @strawberry 3.141
          last edited by

          @strawberry-3.141 True, but it would work for every connected client

          strawberry 3.141S 1 Reply Last reply Reply Quote 0
          • strawberry 3.141S Offline
            strawberry 3.141 Project Sponsor Module Developer @davericher
            last edited by

            @davericher if you like you can create a pr to let the user decide via config if he wants to use festival or speech synthesis :)

            Please create a github issue if you need help, so I can keep track

            1 Reply Last reply Reply Quote 1
            • cowboysdudeC Offline
              cowboysdude Module Developer
              last edited by

              Question…this is what I"m trying to do…

              else if (/(HIDE)/g.test(data) && /(CLOCK)/g.test(data)) {
                        this.hide(0, {lockString: 'MMM-voice'});
                        this.sendNotification('MMM-TTS', 'Hiding Clock');
                      }  else if (/(SHOW)/g.test(data) && /(CLOCK)/g.test(data)) {
                        this.show(0, {lockString: 'MMM-voice'});
                      this.sendNotification('MMM-TTS', 'Showing clock');
                      }  
              

              It works buttttttttttttttt the 1st time you fire it off it doesn’t stop LOL

              “Showing clock”…“showing clock”…“showing clock”…

              Same for Hiding clock

              Apparently I’m not using it correctly hahahhahhahhaha

              SO which is the correct way?

              strawberry 3.141S 1 Reply Last reply Reply Quote 0
              • strawberry 3.141S Offline
                strawberry 3.141 Project Sponsor Module Developer @cowboysdude
                last edited by

                @cowboysdude where did you put that code piece?

                Please create a github issue if you need help, so I can keep track

                cowboysdudeC 1 Reply Last reply Reply Quote 0
                • cowboysdudeC Offline
                  cowboysdude Module Developer @strawberry 3.141
                  last edited by

                  @strawberry-3.141

                  checkCommands(data) {
                          if (/(HELP)/g.test(data)) {
                              if (/(CLOSE)/g.test(data) || (this.help && !/(OPEN)/g.test(data))) {
                                  this.help = false;
                                  this.interval = this.createInterval();
                              } else if (/(OPEN)/g.test(data) || (!this.help && !/(CLOSE)/g.test(data))) { 
                                  this.help = true;
                                  clearInterval(this.interval);
                              }
                          } else if (/(HIDE)/g.test(data) && /(CLOCK)/g.test(data)) {
                            this.hide(300, {lockString: 'MMM-voice'});
                           //  if (this.hide){
                           // this.sendNotification('MMM-TTS', 'Hiding Clock');
                          //   }
                          }  else if (/(SHOW)/g.test(data) && /(CLOCK)/g.test(data)) {
                            this.show(300, {lockString: 'MMM-voice'});
                          //  this.sendNotification('MMM-TTS', 'Showing clock');
                          }  
                          
                      },
                  
                  strawberry 3.141S 1 Reply Last reply Reply Quote 0
                  • strawberry 3.141S Offline
                    strawberry 3.141 Project Sponsor Module Developer @cowboysdude
                    last edited by

                    @cowboysdude could it be that the output of tts is putting you in a loop because it is triggering the command again :D try to change the output of tts so it will not trigger any output and then see if it still occurs

                    Please create a github issue if you need help, so I can keep track

                    1 Reply Last reply Reply Quote 0
                    • cowboysdudeC Offline
                      cowboysdude Module Developer
                      last edited by

                      OK have no idea what that means but I didn’t change anything and now this is all I get…

                      Error: SIOD ERROR: unbound variable : voice_us1_mbrola

                      at Socket. (/home/cowboysdude/MagicMirror/modules/MMM-TTS/node_modules/say/index.js:83:14)
                      at Socket.g (events.js:286:16)
                      at emitOne (events.js:96:13)
                      at Socket.emit (events.js:188:7)
                      at readableAddChunk (_stream_readable.js:176:18)
                      at Socket.Readable.push (_stream_readable.js:134:10)
                      at Pipe.onread (net.js:543:20)
                      
                      strawberry 3.141S 1 Reply Last reply Reply Quote 0
                      • strawberry 3.141S Offline
                        strawberry 3.141 Project Sponsor Module Developer @cowboysdude
                        last edited by

                        @cowboysdude For me it sounds like the output of tts showing clock triggered the voice module to recognize the command again, so tts said showing clock again -> infinite loop

                        Not sure what this error is

                        Please create a github issue if you need help, so I can keep track

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 2 / 2
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy