The miniDSP UMA-8 microphone array, with onboard direction detection, echo cancellation, and noise reduction, has a wide variety of applications. In this app note we'll run through its use with Amazon's Alexa "intelligent personal assistant" and a Raspberry Pi.

This app note is based heavily on the article published by Amazon for their Alexa sample application.

Why use the UMA-8?[Top]

In the Amazon example article for the Raspberry Pi, it's suggested that a cheap USB microphone be used. (The Raspberry Pi does not have an inbuilt microphone.) This is not an optimum solution. Instead:

  • The UMA-8 has beam-forming running across the 7 microphones, which improves voice detection.

  • The UMA-8 also has echo cancellation and noise reduction, to reduce the effects of non-voice sounds (like music playing) and noise (traffic, kitchen noises etc).

The UMA-8 is "plug and play" – you do not have to configure anything to make it work with the Raspberry Pi and Alexa, just plug it into your Pi and follow the instructions!

1. Getting connected[Top]

Connect your Raspberry Pi to a keyboard, mouse, and an HDMI monitor or TV. For the UMA-8, just plug it into one of the USB ports. (It is powered over USB).

When installing the Alexa application, you will have a choice on whether to output audio from the 3.5mm analog jack or over HDMI. We selected HDMI and connected the Pi directly to the second input of a nanoAVR HD so the audio output from the Pi goes through a home theater system with room EQ. We bet Alexa never sounded so good :)

Photograph of UMA-8, Raspberry Pi, and nanoAVR HDA

Before powering on the Pi, download Raspbian from the Raspberry Pi Foundation and burn it to a micro-SD card. Plug the micro-SD card into the Pi and plug in the power. You will see your monitor or TV come up with the Raspbian desktop.

At this point, you may like to explore a little. If you are using a Raspberry Pi 3 with inbuilt Wifi, use the Settings (top right of screen) to join your wireless network. You may also want to change your keyboard layout to U.S., as it defaults to a U.K. layout.

2. Setting Up[Top]

All of the steps are documented in the Amazon article. You will need to create an Amazon developer account and "register" your Raspberry Pi. Then, using the terminal in Raspbian, download and install the sample application.

You will need to edit a text file to enter the credentials Amazon generated for your Pi. When you do so, be aware that for the field "Product ID" you must use the value that Amazon labels "Device Type ID." (If you use "Security Profile ID", it won't work and you will have to start again.)

With the credentials entered, run the installer. Select Yes to the prompts asking if you want to download required software. You will also need to select audio output from the 3.5mm jack or HDMI. (We used HDMI.) The installer may take half an hour or more to run.

amazon dev account

3. Running[Top]

To start the Alexa client, follow the steps in the Amazon article. Be sure to follow all steps in the instructions exactly!

You will need to open three terminal windows and execute a command in each of them. After entering the second command, wait until a window pops up asking you to authenticate. Clicking the Yes button will open a browser window – you will need to log into your Amazon developer account and then click "Okay."

The third command starts the "wake word" service, so you can say "Alexa" to wake up the device. You don't have to use this. Instead, you can just click the "Listen" button on the screen.

Once you have completed all steps, just say "Alexa". You should get a beep in response, after which you can ask it any question you like.

By default, the UMA-8 is configured for automatic direction detection. You can alter the behavior with the switches on the board as follows:

  • SW1: enables and disables microphone beam-forming.
  • SW3: manually select direction of beam-forming (if beam-forming is turned on and automatic detection is turned off).
  • SW4: enables and disables automatic detection of microphone direction.

(The LEDs around the edge of the board will indicate the direction of beam-forming.)

After some experience with the setup, you may wish to tweak the audio processing parameters of the UMA-8. To do this, you will need to unplug it from your Raspberry Pi and plug it into your Windows or Mac computer. Start the miniDSP micArray configuration program and click the Connect button to change parameters. For example, to turn on the automatic gain control and increase mic signal levels, try settings like this:

miniDSP UMA-8 microphone array AGC settings

To do more, use the Alexa app on your iOS or Android device to browse for and add "skills."

Limitations[Top]

There are some things to be aware of:

  • If you are outside the USA:

    • You will have difficulty getting the companion Alexa app, as it's only available in the US Apple App Store and Google Play Store. There are workarounds, at least for the iOS version, like here.

    • You will not be able to set your location to outside of the USA.

  • Some things are not supported with this sample/Raspberry Pi version, like Amazon Music. You can still add skills with the Alexa app.

Wrapping up[Top]

That's it for this app note! Have fun, and please let us know about your UMA-8 and Raspberry Pi/Alexa experience in our forum.


Related Products - USB Microphone Arrays