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.

    VoiceControl module

    Scheduled Pinned Locked Moved Utilities
    79 Posts 27 Posters 114.3k Views 29 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
      DevilRev @DevilRev
      last edited by

      @DevilRev
      Well I “fixed” it by making the microphone (which is USB) devine nr 0 instead of 1 in ALSA, now the hotword detection works flawless BUT my speaker connected to the normal 3.5mm jack does not work anymore.
      Pygame which I am using for audio output at another location of my Magic Mirror says there are no audio devices.

      Is it possible for someone to make the audio used for the microphone with this module selectable? I really need that and can’t work around it.

      1 Reply Last reply Reply Quote 0
      • G Offline
        GinSeng
        last edited by GinSeng

        Good morning, really cool module, thanks for this :)

        @gismo2006
        I want to do the same think as you - control the mm-music-player with this module.
        I followed the help from @Jopyth but when i start the Mirror now it displays “mm-music-player” as a text instead of the module, the Voice commands are shown right so i guess i messed up something in the mm-music-player.js.
        I copied the pdml files in /MagicMirror/modules/voicecontrol
        Do i have have to changed the node_helper.js as well?

        thanks in advance for your help and greetings

        GinSeng
        €: Okay it shows me my music player now … was a little ) missing :)
        but still it don’t work my microphone works i’ve tested it with another voice control module. I guess the pdml files are now the problem. i copied them with : nano mv machmusik.pdml /root int the root folder

        1 Reply Last reply Reply Quote 0
        • G Offline
          gismo2006
          last edited by

          Hey, @GinSeng later today if I have some time I will post my code, and look if I can help you.

          Greets gismo

          1 Reply Last reply Reply Quote 0
          • G Offline
            GinSeng
            last edited by

            @gismo2006

            Hey Gismo, i would really appreciate that :) Thank you.
            Maybe you can also help me with the pdml files. I’m not sure if i copied them into the right folder ( example: sudo mv machmusik.pdml / root).

            Greets GinSeng

            1 Reply Last reply Reply Quote 0
            • G Offline
              gismo2006
              last edited by gismo2006

              Hi, sorry but yesterday here was a big … (in German we say “chaos”) :-) So I haven’t any time. But today I will have free time to help you.

              Anhand dem Namen deiner Pmdl File schließe ich du bist auch deutsch. Ich schreibe dich später an, und erklär dir mein vorgehen. Das ist für mich, auf deutsch doch einfacher als auf englisch. :-)

              1 Reply Last reply Reply Quote 0
              • G Offline
                GinSeng
                last edited by

                @gismo2006

                ger: Kein Problem :) Ja bin auch deutsch. Okay wäre super und auch einfacher für mich :D

                eng: No Problem :) Yep also german. That would be great and also easier for me

                1 Reply Last reply Reply Quote 0
                • G Offline
                  GinSeng
                  last edited by

                  I want to say a big thank your @gismo2006 for helping me at the voice control via message. I want to share my solution and gismos help just in case someones also struggles with this.

                  1. It is important to record your voice with the raspberry pi and the connected microphone ( Was my first mistake i record them at my laptop with the internal microphone)
                  2. Copy the .pdml files in the home/pi/MagicMirror folder and just in case also in the voicecontroll module.
                  3. Copy the name of the pdml files and don’t write them manually in the config.js

                  Again a big thank you at @gismo2006 for the help and @alexyak for the module :).

                  Greetings GinSeng

                  1 Reply Last reply Reply Quote 0
                  • G Offline
                    gismo2006
                    last edited by

                    Hi, sorry at the moment I haven’t got any free time. So I have read your post first now. Because you post your solution, I think it work. You don’t have to thank me, I am happy I can help. Like other helps me if I have a problem.

                    Maybe we should write the following, too.

                    You shouldn’t use some words that are to simple, like Play or Stop. At my experience this words will be to simple and your mirror will not regonize the correct order and will do every order at the same time. Because the system can not decide which order you have speak out.

                    Greets gismo

                    1 Reply Last reply Reply Quote 0
                    • F Offline
                      frodrd00
                      last edited by

                      Hi, I have a problem with the module. The microphone and speaker work well. I do not understand why this happens. The error log:

                      ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
                      ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
                      ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
                      ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
                      ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
                      Cannot connect to server socket err = No such file or directory
                      Cannot connect to server request channel
                      jack server is not running or cannot be started
                      Expression ‘paInvalidSampleRate’ failed in ‘src/hostapi/alsa/pa_linux_alsa.c’, line: 2048
                      Expression ‘PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )’ failed in ‘src/hostapi/alsa/pa_linux_alsa.c’, line: 2719
                      Expression ‘PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )’ failed in ‘src/hostapi/alsa/pa_linux_alsa.c’, line: 2843
                      Traceback (most recent call last):
                      File “./modules/voicecontrol/snowboy/kws-multiple.py”, line 34, in
                      detector = snowboydecoder.HotwordDetector(models, sensitivity=sensitivity)
                      File “/home/pi/MagicMirror/modules/voicecontrol/snowboy/snowboydecoder.py”, line 115, in init
                      stream_callback=audio_callback)
                      File “/usr/lib/python2.7/dist-packages/pyaudio.py”, line 747, in open
                      stream = Stream(self, *args, **kwargs)
                      File “/usr/lib/python2.7/dist-packages/pyaudio.py”, line 442, in init
                      self._stream = pa.open(**arguments)
                      IOError: [Errno Invalid sample rate] -9997
                      connected

                      1 Reply Last reply Reply Quote 0
                      • E Offline
                        eugekiller
                        last edited by

                        Is it possible to use this VoiceControl to hide iFrame and show iFrame

                        1 Reply Last reply Reply Quote 0
                        • tglT Offline
                          tgl
                          last edited by

                          Hallo @GinSeng

                          könntest Du mir viell. auf Deutsch weiterhelfen?

                          Irgendwie will meine Musik nicht starten und mein Englisch ist nicht das beste :-(

                          VG

                          1 Reply Last reply Reply Quote 0
                          • J Offline
                            Jeff
                            last edited by

                            Hi,
                            I was about to try this voice control modul to start/stop my music.
                            But I can’t uploade or record files to snowboy at the moment, maybe it is partly down…

                            But in the meantime I was triying to understand how to correctly install everything, but I think I’m not getting it.

                            Can somebody maybe put everything in correct order.
                            Where do I put the codes, what do I have to change in the mm-music-player module, where do I have to put the node_helper.js (what does it do), and so on…

                            In this topic there are several questions and also answers, but I would be great to put in in order and make a summary.

                            Thanks

                            1 Reply Last reply Reply Quote 0
                            • G Offline
                              GinSeng
                              last edited by

                              @Jeff
                              Lets see if i can make a complete list for you.
                              Step 1. cd in your MagicMirror/module folder then git clone the modul ( https://github.com/alexyak/voicecontrol.git )
                              Step 2. cd in the voice module and install dependencies ( sudo apt-get install python-pyaudio python3-pyaudio sox )
                              Step 3. Create snowboy files and copy them into the ( im not sure which works i copied them in 3 placed) 1. voice control module 2. mm-music-player module and MagicMirror folder
                              Step 4. cd into your mm-music-player and sudo nano mm-music-player.js add following lines after this lines:
                              start: function() {
                              Log.info("Starting module: " + this.name);
                              },

                              ->> Add this
                              notificationReceived: function(notification, payload, sender) {
                              if (notification === “PLAY”){
                              var playButton = document.getElementById(‘play-button’);
                              playButton.click();

                              if (notification === “STOP”){
                              var pauseButton = document.getElementById(‘pause-button’);
                              pauseButton.click();

                              then go down to

                                  playButton.className = "play";
                                  playButton.innerHTML = '<i class="fa fa-play" aria-hidden="true"></i>'; 
                              

                              playButton.id = ‘play-button’;

                                  pauseButton.className = "pause";
                                  pauseButton.innerHTML = '<i class="fa fa-pause" aria-hidden="true"></i>'; 
                              

                              pauseButton.id = ‘pause-button’;

                              Then cd in your MagicMirror config and sudo nano config.js

                              and add the following lines

                              {
                              module: ‘voicecontrol’,
                              position: ‘bottom_right’,
                              config: {
                              models: [
                              {
                              keyword: “play music”, // keyword
                              description:
                              file: “yourfile.pmdl”,
                              message: “PLAY”,
                              },
                              {
                              keyword: “stopmusic”, // keyword
                              description:
                              file: “yourfile.pmdl”,
                              message: “STOP”
                              },

                              This should be all.
                              If it doesn’t work, feel free to write me a PM.
                              greez GinSeng

                              F J 2 Replies Last reply Reply Quote 3
                              • F Offline
                                frodrd00 @GinSeng
                                last edited by

                                Hi @GinSeng ,

                                How can I change the volume with the voice?

                                if (notification === “VOLUME_UP”){
                                ?¿?¿?¿?¿?
                                }
                                if (notification === “VOLUME_DOWN”){
                                ?¿?¿?¿
                                }

                                Thanks.

                                1 Reply Last reply Reply Quote 0
                                • G Offline
                                  GinSeng
                                  last edited by GinSeng

                                  @frodrd00 Hey sorry i didn’t try this. Maybe i find time in the Christmas vacations but exams are near so i can’t promise you :P

                                  1 Reply Last reply Reply Quote 0
                                  • J Offline
                                    Jeff @GinSeng
                                    last edited by

                                    @GinSeng said in VoiceControl module:

                                    greez GinSeng

                                    Thanks for the great instructions, but I think my mic isn’t working correctly :(

                                    I think I have to order a new one first.

                                    S 1 Reply Last reply Reply Quote 0
                                    • S Offline
                                      shashank @Jeff
                                      last edited by

                                      @Jeff hi, i wanted to share my Mirror with Family for individual Email on MM, can it be possible to use voice and access individual emails, making the previous person email hide and show the other member email

                                      1 Reply Last reply Reply Quote 0
                                      • D Offline
                                        DevilRev
                                        last edited by

                                        Is there a way to set a snowboy tolerance?
                                        Because even tho my command is 5 words long it gets triggered all the time when I talk normally with a friend or watch a TV show.

                                        1 Reply Last reply Reply Quote 0
                                        • D Offline
                                          DevilRev
                                          last edited by

                                          So, I found out that there is a sensitivity setting which can be changed in one of the snowboy configs permanently but it can also be controlled for each hotword individually.

                                          It would be a great feature if we could set a sensitivity for each hotword in the normal config file, if you find the time i would be really thankful for this addition.

                                          G 1 Reply Last reply Reply Quote 0
                                          • MedoM Offline
                                            Medo
                                            last edited by Medo

                                            Searching for endless hours now, but no solution in sight…

                                            Im trying to trigger the mm-music-player module with this voicecontrol module (i say “MUSIK ON” and the mm-music-player starts a certain mp3 file). But no luck…

                                            My microfone can record audio (tested with arecord …) …

                                            (note: i had to change my “sudo nano /usr/share/alsa/alsa.conf” and the entries “defaults.ctl.card 1” and “defaults.pcm.card 1” from “0” to “1” to get my USB microphone working/recording)

                                            …and my mp3 soundfile can be played (tested with “omxplayer -o hdmi …”) - and also if i click on the mm-music-player-module…

                                            pm2 logs mm (after a reboot) shows this:

                                            [STREAMING] Now streaming realtime logs for [mm] process
                                            0|mm | ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
                                            0|mm | ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
                                            0|mm | ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
                                            0|mm | ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
                                            0|mm | ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
                                            0|mm | Cannot connect to server socket err = No such file or directory
                                            0|mm | Cannot connect to server request channel
                                            0|mm | jack server is not running or cannot be started
                                            0|mm | Expression ‘paInvalidSampleRate’ failed in ‘src/hostapi/alsa/pa_linux_alsa.c’, line: 2048
                                            0|mm | Expression ‘PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )’ failed in ‘src/hostapi/alsa/pa_linux_alsa.c’, line: 2719
                                            0|mm | Expression ‘PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )’ failed in ‘src/hostapi/alsa/pa_linux_alsa.c’, line: 2843
                                            0|mm | Traceback (most recent call last):
                                            0|mm | File “./modules/voicecontrol/snowboy/kws-multiple.py”, line 34, in
                                            0|mm | detector = snowboydecoder.HotwordDetector(models, sensitivity=sensitivity)
                                            0|mm | File “/home/pi/MagicMirror/modules/voicecontrol/snowboy/snowboydecoder.py”, line 115, in init
                                            0|mm | stream_callback=audio_callback)
                                            0|mm | File “/usr/lib/python2.7/dist-packages/pyaudio.py”, line 747, in open
                                            0|mm | stream = Stream(self, *args, **kwargs)
                                            0|mm | File “/usr/lib/python2.7/dist-packages/pyaudio.py”, line 442, in init
                                            0|mm | self._stream = pa.open(**arguments)
                                            0|mm | IOError: [Errno Invalid sample rate] -9997

                                            I…

                                            • installed the voicecontrol and mm-music-player
                                            • double checked the code
                                            • changed the mp3 file with another
                                            • implemented the code like “GinSeng” stated some lines above.
                                            • created the hotwords over at snowboy and copied them to “/MagicMirror”, “voicecontrol” and “mm-music-player” directories
                                            • …
                                              But im not able to find the problem…

                                            Any suggestions?

                                            Thanks a lot for your help…

                                            J 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • 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