Simple command NLU like interpreter


I am working in a project that requires the MCU to receive text commands to control some lights. I want to interpret what the user intent is with natural language but I don’t think we have enough power in the MCU to run a full blown NLU engine.

Has anyone solved this in any way?

How do you receive those text commands? Via serial as ASCII text, or are you trying to capture speech? What device are you using? If you’re capturing ASCII text, you should be able to pass the text to a cloud NLU engine such as Amazon Lex for processing.

1 Like

Check this out.

1 Like

Thanks for the response.

It’s ASCII. I am getting it vía serial. Preferably no could.

There are only 2-3 intents

I don’t think you’ll have the horsepower on board to recognize even three intents, or possibly even one. I don’t know what platform you’re developing on, but best case is you have 128KB of RAM minus OS overhead, so maybe 70-90 KB. You’re also running on a processor with somewhere around 50-120 MHz. You’re not going to get NLU on this module. It’s meant to be an IoT device, and a cloud connected device. There are plenty of cloud NLU engines to choose from that give you far better results than even any full PC you could deploy locally.

I understand. But maybe someone has implemented an algorithm that tokenizes efficiently without using NN or real NLU… Some tokenizer with weights or something that might do the trick.

@frlobo there is absolutely no issue regarding MCU horsepower if you implement a simple command line interpreter instead of a “natural language” one, especially if you just want to act on three commands.

Strongly recommend that you research the C/C++ strtok() function.

Keep it simple is the trick!

1 Like