Newbie question: why does "hey arduino" not work

I am trying to get the "hey arduino" app running. But it doesn't work. Well, I can start this example for voice recognition. It says it is running but it won't react on "hey arduino".

My first fight was to get the AppLab recognize my headset. That was difficult.

The Arduino USB-C 8-1-hub does not work. Here my USB devices won't be recognized. Meanwhile I am using a HP-Monitor with built in USB-C hub. Here I can see the Arduino Debian UI and all USB devices are properly recognized.

Concerning the AppLab, it iseems it is set to use the first USB speaker/mic connection from ALSA and if I plug in my headset after boot it will be the second device in the device list. Hence AppLab brings me an error on input/output device not available. Ok, I understood that, even though I find it cumbersome.

Anyway, I can now record sound (arecord and also the example in the AppLab "Recording with mic"). I can play sound (aplay). Still, the "hey arduino" voice recognition app is not reacting on me saying "hey arduino" ... if I discard my accent for the moment, what shell I do next in order to get the app running properly ? How can I check, if the voice recognition "mechanism" is working at all ?

Thanks
Mike

Simply: use PROGRAMMED inflection. If the training was done by an Italian, use an exaggerated, stereotypical "Italian-speaking-English" voice.

And limit your background noise...

The Keyword Spotting Brick continuously processes audio in the background

A while ago I purchased a "Rosetta Stone" language training package. The software complained that I had trouble pronouncing a few simple words, most them borrowed (English) words used in that language (and four more language training packages). The software kept rejecting my Anglophone pronunciation of words like "sandwich" and "jeans"... how? I, better than that software or the other language, know how to pronounce those English words. So, I stopped trying to pronounce the words and used glottalized sound inflections to mimic the software's pronunciation. No mouth, tongue or teeth movent which is how languages form, just exaggerated sounds. These sounds are multidimensional. The software might not be.

Well, the "accent" idea was not ment to be serious.

Anyway, does anybody know a way to visualize the microphone input for the mentioned example ? I would also be interested to see something like matching scores between actual input and voice recognition algorithm.

By the way, I didn't specify it yet, I am talking about an Arduino Uno Q.

Thanks
Mike

It has a real effect. Make your voice inflect (like an overacting actor). Sit up (don't hunch over the mic). Put the mic at head height (not on the table).

Yes, that is why the quote about the "brick."

How have you connected the USB-C cables? The 8-in-1 hub needs to be connected to the USB-C port on the UNO Q. The USB-C cable feeding the power then needs to go into the PD port on the hub.

Hi @ullibe.

I suggest enabling debug logs from the Python package that provides the keyword spotting capability for the App. You can do that by following these instructions:

  1. Open the "Hey Arduino!" example App in Arduino App Lab.
  2. Click the "Copy and edit app" button at the top right hand corner of the Arduino App Lab window.
    The "Create new app" dialog will open.
  3. Enter a meaningful name in the field in the dialog.
  4. Click the "Create new" button in the dialog.
    A copy of the "Hey Arduino!" example App will be created and that App will open.
  5. Select the python/main.py file from the "Files" panel on the left hand side of the Arduino App Lab window.
    The main.py file will open in the editor panel.
  6. Add the following code to the top of the main.py file:
    import logging
    from arduino.app_internal.core.audio import logger
    # Print debug logs from arduino.app_internal.core.audio module.
    logger.setLevel(logging.DEBUG)
    
  7. Click the "Run" button at the top right hand corner of the Arduino App Lab window.
  8. If the "Swap Running App" dialog appears, click the "Confirm and replace" button.
  9. Wait for the App launch to finish.
  10. Select the "Python" tab in the console panel at the bottom of the Arduino App Lab window.

You should now see a stream of debug output produced by the App's Python script, something like this:

2026-09-09 15:47:54.631 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:54.733 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'background' detected with confidence 100.000000%.
2026-09-09 15:47:55.005 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:55.135 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'other' detected with confidence 99.110000%.
2026-09-09 15:47:55.380 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:55.510 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'background' detected with confidence 100.000000%.
2026-09-09 15:47:55.755 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:55.882 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'background' detected with confidence 100.000000%.
2026-09-09 15:47:56.629 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:56.754 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'hey_arduino' detected with confidence 99.970000%.
2026-09-09 15:47:56.754 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Invoking callback for keyword 'hey_arduino'.
2026-09-09 15:47:58.154 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:58.244 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'other' detected with confidence 99.980000%.
2026-09-09 15:47:58.244 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Processing sensor data with 16000 features.
2026-09-09 15:47:58.300 DEBUG - [KeywordSpotting._inference_loop] AudioDetector:  Keyword 'background' detected with confidence 99.710000%.

Three keyword labels are implemented by the "Keyword spotting - Hey Arduino" model used by the "Keyword Spotting" App:

  • background: Background noise
  • hey_arduino: The "Hey Arduino" keyword
  • other: Any keyword other than "Hey Arduino"

The debug logs will help to answer questions like:

  • Is the arduino.app_internal.core.audio package operating as expected?
  • Is your voice being classified as an arbitrary keyword (other), but just not as the target keyword (hey_arduino)?
  • Is the audio only being classified as purely background noise (background)?

Let us know what you find.

Hi

thank you very much for your input. It finally works. What helped:

  • connecting the UnoQ to the USB-C cable that is attached to the 8in1-hub was the important thing to correct in order to make the hub work. Power is being fed in by the labeled USB-C PD port as BitSeeker described
  • I observed and still am confused that the "hey arduino" example exists in two different versions in the App Lab: the examples are presented once in tiles style and once in table format. The tiles style "hey arduino" shows, if working, a heart on the LED display that changes upon detection of the key words. The table format "hey arduino" does not include the LED display but prints out just a message "hey arduino detected". This message is being displayed in the bottom part of the AppLab window where the status of the project is being reported ... however, not on the first tab but on the last tab that is reading "Python".

In conclusion: it had always worked. I just picked the tabel type displayed app and didn't know that I have to check the messages displayed in the lower part of the AppLab window under "Python".

Anyway, thanks again for all your input. The logging feature i will remember for the next hickup :-)

Great news! Thanks for taking the time to share your findings.

We provide two distinct classifications of example Apps bundled with Arduino App Lab:

  • Examples: These are minimal demonstrations of a single specific concept. These are intended to serve as programming references.
  • Inspirations: These are more complex projects that demonstrate using multiple capabilities in combination. These are intended to showcase what Apps are capable of, and to give the user inspiration for their own novel projects.