Learn how to train and deploy voice recognition models into Arduino Nano 33 BLE with Picovoice Porcupine Wake Word Engine. This tutorial will take less than 10 minutes from the start to a working demo! Things you need:
Porcupine enables developers to train production-quality voice models within seconds. It runs on anything, including
Arduino Nano 33 BLE and
Arduino Portenta H7. Porcupine also supports
NXP i.MX RT,
Let's get started 🚀
- Sign up for Picovoice Console.
- Go to the
- Select the language for your model
- Type in the phrase you want to build the model for
- Optionally, you can try it within the browser
- Once you are happy, click on the train button.
Arm Cortex-Mas the platform
Arduino Nano 33 BLEas your board type.
- You need to find the
UUIDfor your board. Open Arduino IDE, and download
Porcupine_ENlibrary. Run the
Porcupine_EN. Check the
Serial Monitorto find the UUID of your board. Copy it and paste it in the relevant section.
- Click on the Download button. You should have a
.zipfile in your download folder now.
- Unzip it. Open the file
pv_porcupine_params.hwith a text editor. The
KEYWORD_ARRAYcontains your newly-trained model!
- Run the
PorcupineExampleexample from the
- Change the content of
params.hfile with the content of your downloaded model.
- Go to Picovoice Console's dashboard. Copy your
- Put your
PorcupineExample.ino.Don't forget to wrap it in
"and terminate the line with
- Upload and run the example. Check the
Serial Monitorfor log messages every time you say the wake phrase 🤓
You can train and deploy several models with Porcupine and recognize them concurrently. The increase in CPU and RAM usage is negligible.
Natural Language Understanding
Porcupine enables you to train always-listening voice commands. But what if you want to understand complex voice commands with multiple slots and entities? For example:
The good news is that you can also use Rhino Speech-to-Intent to accomplish this.