• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

Yet Another Voice Module (Sphinx + Alexa)

Scheduled Pinned Locked Moved Development
40 Posts 6 Posters 31.8k Views 6 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.
  • W Offline
    whyjustin
    last edited by Sep 13, 2016, 8:25 PM

    Hey all,

    I’m happy to be making my first post to this community. I discovered it recently when embarking upon making a Magic Mirror and am impressed by the active support and discussion that occurs. Not sure if this post belongs in Development or Showcase as the module is mostly done, but I just had a daughter and may not be able to provide initial support for it so wanted to do a soft release here first.

    I know there are existing voice modules for MM2 but I found my use case was to use Alexa alongside Sphinx, providing all the voice recognition functionality within one module. This prevents different modules competing for resources (microphone) and having to synchronize the allocation and deallocation of these resources. The hope is that non-audio related functionality will be handled by other modules, there is a not yet documented command with action “sendNotification” that will allow configuring certain voice commands to invoke a process in a different module.

    Another goal for this project was to eliminate the need for lengthy configuration and setup. The module prefers convention to configuration, and most of the nerdy voice recognition and Alexa setup is bootstrapped for the user during the load. This allows the user to have a simple json configuration and the module will generate the appropriate ssh keys and language models/dictionaries required for the module to work.

    Enough talk, here is the module. Pull requests warmly welcome, around documentation or functionality. Thanks.

    https://github.com/whyjustin/magic-mirror-voice

    1 Reply Last reply Reply Quote 2
    • C Offline
      cowboysdude Module Developer
      last edited by Sep 13, 2016, 10:58 PM

      Sounds great… what is the response time like?

      1 Reply Last reply Reply Quote 0
      • W Offline
        whyjustin
        last edited by Sep 13, 2016, 11:15 PM

        Sounds great… what is the response time like?

        Response time of what? Loading time is pretty slow given the bootstrapping, but that should only happen once. The Sphinx client actively listens for commands as set in the JSON sphinx:commands dictionary and processes speech every time you pause. Alexa will record until you are quiet for over 2 seconds and then send it off the Amazon Voice Services. Guessing this response is similar to an Echo but I’ve never owned one.

        1 Reply Last reply Reply Quote 0
        • C Offline
          cowboysdude Module Developer
          last edited by Sep 13, 2016, 11:37 PM

          I own and Echo and it’s pretty quick :)

          1 Reply Last reply Reply Quote 0
          • D Offline
            d3r
            last edited by Sep 14, 2016, 12:03 AM

            That’s pretty cool.
            I have amazon alexa running alongside the MM2 on my pi too. Mine is just a simple work around and I have to click(I use a button) start listening each time I want to interact with it.

            So it its always listening in your version?

            1 Reply Last reply Reply Quote 0
            • W Offline
              whyjustin
              last edited by paviro Sep 27, 2016, 8:52 PM Sep 14, 2016, 12:07 AM

              So it its always listening in your version?

              Yup, Sphinx is always listening (as long as Alexa is not listening). You can configure the command that invokes Alexa in the sphinx:commands dictionary. Any key in the object will be recognized by Sphinx and perform the action as configured by the value. For example:

              "mirror mirror": {
                action: 'alexa'
              }
              

              Saying “mirror mirror” will trigger Alexa.


              Note from admin: Please use Markdown on code snippets for easier reading!

              1 Reply Last reply Reply Quote 1
              • D Offline
                d3r
                last edited by Sep 14, 2016, 12:40 AM

                I’ll give this a try when I get some free time this weekend.

                1 Reply Last reply Reply Quote 0
                • C Offline
                  cowboysdude Module Developer
                  last edited by Sep 14, 2016, 1:27 AM

                  sed -i ‘s/“electron-prebuilt”: “latest”/“electron-prebuilt”: “1.2.8”/g’ package.json
                  sed: can’t read package.json: No such file or directory

                  1 Reply Last reply Reply Quote 0
                  • W Offline
                    whyjustin
                    last edited by Sep 14, 2016, 1:29 AM

                    sed -i ‘s/“electron-prebuilt”: “latest”/“electron-prebuilt”: “1.2.8”/g’ package.json
                    sed: can’t read package.json: No such file or directory

                    Answered in the GitHub issue https://github.com/whyjustin/magic-mirror-voice/issues/1

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      d3r
                      last edited by Sep 16, 2016, 5:54 PM

                      If I already have the alexa voice service set up on the pi is there an ‘easier’ way of setting this up or would it be better to start from scratch?
                      I’ll of course back up my sd card before playing with this.

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 1 / 4
                      1 / 4
                      • First post
                        4/40
                        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