NXP's GoPoint for i.MX Applications Processors unlocks a world of possibilities. This user-friendly app launches pre-built applications packed with the Linux BSP, giving you hands-on experience with your i.MX SoC's capabilities. Using the i.MX8MM, i.MX 8M Plus or i.MX 93 EVKs you can run the included i.MX Voice PLayer application available on GoPoint launcher as apart of the BSP flashed on to the board. For more information about GoPoint, please refer to GoPoint for i.MX Applications Processors User's Guide.
i.MX Voice Player demo application is a Bluetooth Media Player controlled by Voice, it is based on NXP's Voice Intelligent Technology (VIT), a free library that provides a low power voice recognition technology, integrating a complete audio front-end / wake word engine / voice commands solution to control IoT devices.
NOTE: This block diagram is simplified and do not represent the complete elements. Some elements were omitted and only the key elements are shown.
MAC Address mqueue starts operating in one-time execution, followed by two instances that run in parallel, which are QT GUI instance, which serves as the grafical interface, and VITExecutor. After those process are completed, AFE instance utilizes voice input from microphones to detect WakeWords and Commands which are registered in the DBUS (Desktop Bus). Finally, the EVK remains in standby mode, awaiting pairing with a Bluetooth device, or, if the demo is already in progress, the AFE instance continues to listen for voice Commands and WakeWords. Below is a simplified block diagram.
The application relies on the BlueZ 5.65 API for playing back audio and controlling the Bluetooth adapter.
i.MX Voice Player is part of Linux BSP available at Embedded Linux for i.MX Applications Processors. All the required software and dependencies to run this application are already included in the BSP.
| i.MX Board | Main Software Components |
|---|---|
| i.MX 8M Mini EVK | QT6.2, Bluez 5.65 API, Pulse Auido, WM8960 Encodec |
| i.MX 8M Plus EVK | QT6.2, Bluez 5.65 API, Pulse Audio, WM8960 Encodec |
| i.MX 93 EVK | QT6.2, Bluez 5.65 API, Pulse Audio, WM8962 Encodec |
To test i.MX Voice Player, on either of the EVKs supported it is necessary to have the correct setup.
| Component | i.MX 8M Mini | i.MX 8M Plus | i.MX 93 |
|---|---|---|---|
| Power Supply | ✅ | ✅ | ✅ |
| HDMI Display | ✅ | ✅ | ✅ |
| USB micro-B cable (Type-A male to Micro-B male) | ✅ | ✅ | |
| USB Type-C cable (Type-A male to Type-C male) | ✅ | ||
| HDMI cable | ✅ | ✅ | ✅ |
| IMX-MIPI-HDMI (MIPI-DSI to HDMI adapter) | ✅ | ✅ | ✅ |
| Mini-SAS cable | ✅ | ✅ | ✅ |
| 8MIC RPI MX8 | ✅ | ✅ |
On the iMX8M Plus and iMX8M Mini, the Multimedia Player demo requires the 8MIC-RPI-MX8 installed on the i.MX hardware for voice enablement, 8MIC-RPI-MX8 hardware require to set the FDTFILE to a proper 8-microphone board revision DTB in the U-Boot environment, for details, please refer to 8MIC-RPI-MX8..
To run the demo, launch GoPoint on the board and click on the i.MX Multimedia Player application shown in the launcher menu. It takes a few seconds to load the application and dependencies. Once the i.MX multimedia player is launched, use a smartphone or a tablet to search for the i.MX-MultimediaPlayer Bluetooth device and pair it.
Once a Bluetooth device is connected, the user can start controlling audio playback using voice commands. Use the WakeWord "Hey NXP" to let VIT wake up the device and then use a voice command to control the playback, if the audio playback contains metadata this will be displayed in the application UI, the supported voice commands to control the audio are:
- Play Music
- Pause
- Next Song
- Previous Song
- Mute
- Volume Up
- Volume Down
- Stop
- Stop Player
When i.MX Voice Player is active, the following features are available on the display and can be accessed through the auxiliary of the EVK:
- The Wayland Terminal, which identifies the paired device, along with supported WakeWords and Commands.
- The displayed window containing information and assitance for the demo, including Bluetooth's logo and featuring buttons to control playback functions such as pause, play, stop or skip to the next song.
- The currently playing song is showcased on the main window.
- The selected song can be controlled and switched, additionally, volume levels can be adjusted using the supported commands.
Yes, the source code is available under the BSD-3-Clause License at https://github.com/nxp-imx-support/imx-voiceplayer.git. There it is more information on how to customize the demo.
The i.MX8MP uses an AzureWave CM276MA (NXP 88W8997) Wireless module for Bluetooth 5.1, make sure the WIFI module is correctly installed in the EVK.
The audio playback might not contain the music metadata, if metadata is contained in the audio it will be show on the GUI, if not a message "Not Provided" will be displayed.
The i.MX8MM and i.MX8MP requires to install 8MIC-RPI-X8M hardware revision and set the proper Device tree to enable voice input. For details, refer 8MIC-RPI-MX8.
If you experience no audio output make sure your volume settings are not muted or set too low, ensure your speakers or headphones are properly connected to the audio output jack on your EVK.
Questions regarding the content/correctness of this example can be entered as Issues within this GitHub repository.
Warning: For more general technical questions, enter your questions on the NXP Community Forum
| Version | Description | Date |
|---|---|---|
| 1.0.0 | Initial release | June 28th 2024 |
i.MX Voice Player is licensed under the BSD-3-Clause License.



