Intro: how did I finish my 6 years old app idea

To get better picture, let’s go back to 2013.

My idea was to detect popping via microphone, count it and let the user know if the microwave popcorn is ready. This means two other things: you don’t have to listen and count popping manually and you won’t burn microwave popcorn again :)

At that time, I thought that this was a good idea which is doable, so I convinced three fellow University students to start making it. One of them was a graphic designer the other guy did the math.

As we started the project it turned out it is way more complicated to make it work, than we thought because

  1. At that time we had to process signal from microphone via low level C APIs on iOS
  2. There were no SoundAnalysis API nor Core ML which we could use
  3. iPhones weren’t that powerful as today

And if these weren’t enough we had to realize there is no such thing as linear popcorn popping, because they pop parallel, which makes counting them pretty hard.

What we didn’t know that time is that, this kind of task can be easily solved with machine learning.

On The Bleeding Edge

Core ML – SoundAnalysis

How does machine learning ease this task?

Without going too deep:

“Machine learning algorithms use computational methods to “learn” information directly from data without relying on a predetermined equation as a model.

The algorithms adaptively improve their performance as the number of samples available for learning increases.” - ML for dummies

So, what happens here is that we feed the algorithm with data and in exchange it will give insights automatically about new data we fed in.

Apple made a great app which simplifies this process called Create ML. Create ML

“Create machine learning models for use in your app. Create ML leverages the machine learning infrastructure built in to Apple products like Photos and Siri. This means models are smaller and take much less time to train.”

I think now you have the idea. I didn’t have to science the sh*t out of the project because Apple did it for me :)

If you want to read about sound classification in depth check thisarticle


In the next article I’ll write about SwiftUI and Combine.