Edge-impulse-linux-runner cannot find microphone on x86 platform

Question/Issue:
So my Model works, my microphone hardware is ok and edge-impulse-linux-runner is broken in that it has an issue with my hardware.


Steps to reproduce the error:

$ edge-impulse-linux
      Edge Impulse Linux client v1.3.9
      [SER] Using microphone hw:0,0
      Failed to initialize linux tool Error code was not 0: Probing devices...

$ edge-impulse-linux --disable-camera
      Edge Impulse Linux client v1.3.9
      [SER] Using microphone hw:0,0
      [WS ] Connecting to wss://remote-mgmt.edgeimpulse.com
      [WS ] Connected to wss://remote-mgmt.edgeimpulse.com
      [WS ] Device "lin_cam" is now connected to project "1 Keyword"
      [WS ] Go to https://studio.edgeimpulse.com/studio/113806/acquisition/training to build your machine learning model!

  • → Device shows up in EI Studio Devices tab and I can record audio samples.

Then I try to execute the runner via :
      $ edge-impulse-linux-runner
      ...
      [BLD] Building binary OK
      [RUN] Downloading model OK
      [RUN] Stored model version in /.../.ei-linux-runner/models/113806/v19/model.eim
      [RUN] Failed to run impulse Error: Invalid sensorType: unknown
at /usr/local/lib/node_modules/edge-impulse-linux/build/cli/linux/runner.js:258:19

Likewise:
      $ edge-impulse-linux-runner
      Edge Impulse Linux runner v1.3.9
      [RUN] Allready have model /.../.ei-linux-runner/models/113806/v19/model.eim not downloading..
      [RUN] Failed to run impulse Error: Invalid sensorType: unknown
at /usr/local/lib/node_modules/edge-impulse-linux/build/cli/linux/runner.js:258:19
at processTicksAndRejections (internal/process/task_queues.js:97:5)


I tried another method to see if it is my hardware. I cloned the examples into folder: /linux-sdk-python
from git clone https://github.com/edgeimpulse/linux-sdk-python

I was able to run the audio example thru my Model via:
/linux-sdk-python/examples/audio/python classify.py /.../.ei-linux-runner/models/113806/v19/model.eim


Project ID:
113806


Context/Use case:
Run in stand-alone mode.

Hi @MMarcial,

The problem is that in your training data you had mixed data types, audio and image. The model was being exported as a EI_CLASSIFIER_SENSOR_FUSION sensor type (rather than EI_CLASSIFIER_SENSOR_MICROPHONE) which is not supported in the linux runner.

I’ve created a new (private) version in your project, Edge Impulse Staff Support, to apply changes to get the right export for your project. In the meantime I’ll fill a ticket to improve this so that it’s a bit more clear on the user’s end.

Thanks for reporting. Will share more once I have more details.

// Raul

@MMarcial,

With the changes I’ve made, the linux runner should run fine now. Can you try.

A summary of the changes I’ve made:

  • moved the image data away from training data
  • retrained the neural net.

// Raul

1 Like

Yes it is working now. Thanks.

I have the same problem

Make sure the data is all audio or all video not a mixture. You make need to start a new Impulse and just import all audio or all video not a mixture.