Editing multi-label audio labels in Edge Impulse

I use external tools to label my audio files and use python to convert the labels into edge impulse multi-labeling info.labels json format (Multi-label - Edge Impulse Documentation)

This is very nice functionality, but after I train my model I will spot 10-100 incorrect labels. I want to quickly fix the labeling errors to make the statistics accurate, but currently it is very tedious because I have to edit the json manually:

[
    {"label": "other", "startMs": 0, "endMs": 9.875},
    {"label": "myevent", "startMs": 10, "endMs": 159.875},
    {"label": "other", "startMs": 160, "endMs": 219.875},
    {"label": "myevent", "startMs": 220, "endMs": 419.875},
    {"label": "other", "startMs": 420, "endMs": 449.875},
    {"label": "myevent", "startMs": 450, "endMs": 669.875},
    {"label": "other", "startMs": 670, "endMs": 739.875},
    {"label": "other", "startMs": 740, "endMs": 819.875},
    {"label": "other", "startMs": 820, "endMs": 879.875},
    {"label": "other", "startMs": 880, "endMs": 929.875},
    {"label": "other", "startMs": 930, "endMs": 1209.875},
    {"label": "other", "startMs": 1210, "endMs": 1279.875},
    {"label": "other", "startMs": 1280, "endMs": 1369.875},
    {"label": "other", "startMs": 1370, "endMs": 1449.875},
    {"label": "other", "startMs": 1450, "endMs": 1789.875},
    {"label": "myevent", "startMs": 1790, "endMs": 2039.75},
    {
        "label": "other",
        "startMs": 2039.875,
        "endMs": 2269.75
    },
    {
        "label": "myevent",
        "startMs": 2269.875,
        "endMs": 2439.875
    },
    {"label": "other", "startMs": 2440, "endMs": 2509.875},
    {"label": "myevent", "startMs": 2510, "endMs": 2689.875},
    {"label": "other", "startMs": 2690, "endMs": 2789.75},
    {
        "label": "myevent",
        "startMs": 2789.875,
        "endMs": 2999.875
    },
    {"label": "other", "startMs": 3000, "endMs": 3099.75},
    {
        "label": "myevent",
        "startMs": 3099.875,
        "endMs": 3269.75
    },
    {

Changing the label names is somewhat doable, but fixing the labeling start-end ranges is really a pain. More convenient multi-label editing user-interface straight in edge impulse would be appreciated. This basic functionality would suffice for me:

  • graphical view that shows signal and the segments with label names
  • allows to playback the segments (if audio)
  • changing label names
  • dragging start/end ranges
  • adding start/end range (from dropdown select which label you want, paint areas by click+dragging)
  • deleting start/end range (click segment and press del)

Thank you!

1 Like

Great idea!

Are you working with any of our solutions team, did you make this suggestion already? If not let me help capture and create a feature request internally to our studio team to see if this one fits.

Best

Eoin

1 Like

Are you working with any of our solutions team, did you make this suggestion already?

No, this is thread is the only contact to Edge Impulse around this idea.

If not let me help capture and create a feature request internally to our studio team to see if this one fits.

Yes of course! This is probably already in your team backlog just in lower priority. I just wanted to notify that there is someone that would use it.

Btw. this feature request is more important in my use case: Improvement idea for multi-labeling - Feature requests - Edge Impulse Forum
The mislabelings actually were not my labeling errors, but errors how edge impulse picked up the classes.