Picovoice / picovoice

On-device voice assistant platform powered by deep learning
Apache License 2.0
561 stars 109 forks source link

Help With STM32F407 Demo #801

Closed GSkoumal closed 5 months ago

GSkoumal commented 5 months ago

Hello, I am currently working with the STM32F407 Demo and trying to expand it some. I need to be able to use UART to interface with some other peripherals, but as the project does not use an .ioc file I am a little lost. Is there a way for me to include the HAL libraries for UART and enable UART4 on pins PA0 and PA1, while leaving the rest of the demo intact?

I understand this might be a little out of scope for you guys but any help you can offer would be appreciated. Either way thanks for taking the time to read!

mrrostam commented 5 months ago

The demo is intended to demonstrate how to work with Picovoice in C on a microcontroller. Once you've determined how to record audio on your board properly, the rest should be straightforward as it's basically just a function call. So, you can start your own project with your config and then integrate Picovoice by linking against the Picovoice library. The steps are explained in detail here

GSkoumal commented 5 months ago

OK awesome, when it comes to the input audio stream. Does picovoice need a buffer filled with PDM data or PCM data? Also do you have any recommendations for where I could learn to record that audio? I see in the demo it uses a BSP library but that does not seem to exist in the current versions. Thanks for you help.

Also am running into an issue when I attempt to include the library file from https://github.com/Picovoice/picovoice/tree/master/sdk/mcu/lib/stm32f407/en. When I attempt to build the project it says that library file can not be found even when I give the project the file location by going: Properties -> C/C++ General -> Paths and Symbols -> Libraries.

mrrostam commented 5 months ago

The requirement for the input PCM is explained in detail in the documentation, as well as the header file. BSP is typically the best starting point, but there are often projects on GitHub that can assist you with this task. Also, I'm unable to assist you with the build issue.