Song Melody Recognition Research
Make your Arduino dance to a little tune (or just pass on the message)
Someone with a Samsung washing machine wanted to be able to receive the "all done" notification from the other end of their house. Here's a video sample with some owners interacting with their washes.I didn't turn up a straightforward solution that I could easily implement (it's a lot easier to get music converted to drive a MIDI keyboard) there is plenty of reference material that should lea someone else to a solution.
Considering the usage time saving to code development time, it might be most practical to just put a wireless baby monitor near the washer.
After glancing though some example projects and academic papers, I concluded that my solution would simply use a tempo-measuring-like setup measuring the interval between notes, if the sound impulses matched the tempo of the song I would call it a match (on review, the notes are not as staccato and easy to separate as a musical greeting card)
Using the microphone built in the little $14.60 M5stickC with an ESP32 would provide the needed horsepower to analyze the simple sound from a monophonic player.
M5stickC COVER REMOVED |
Alternatively for basic Arduino's, a Chinese sellers' "Sound Detector" board may be triggered by individual notes.
(You can get 5 of these for $2.94 at Aliexpress)
Passing the "Done" message to the homeowner.
There are a couple of simple tools for making an Anroid cell phone app that communicates to iOT gadgets. These tools are the way to go for those who are not competent Android developers.One is the Blynk IoT platform which gives you a limited inventory budget for buttons, dials and sliders that you can place on the screen of your custom app.
A second simple app maker I just became aware of is Thunkable (there may be significant differences between the Classic and current versions.)
One demonstration of Thunkable, using Bluetooth Low Energy (BLE) to communicate with an ESP32 is in the hackster article "ESP32 BLE + Android + Arduino IDE = AWESOME" which shows you how to make your Android blink the LEDs on the ESP32 board.
Demo Android App Screen (shrunk) |
Here are some (mostly obscure) links I ran across in search of a quick solution.
On the implementation of melody recognition on 8-bit and 16-bit microcontrollers 2003
Author(s) Jyh-Shing Roger Jang ; Yung-Sen Jang
Aubio.org A code library for audio and music analysis
Essentia
Github C++ library for audio and music analysis, description and synthesis, including Python bindings
MusicTechFest.net A powerful collection of music processsing tools.
Simplest Way for Voice Recognition Project Using C#, Arduino
Voice controlled TV with an Arduino Uno and C# 2012 (Hacking IR remote code too)
Parsons Code, a simplified representation format of a song: notes are identified as: same - up or down from previous.
WWW 2018 Challenge: Learning to Recognize Musical Genre
Dejavu Audio fingerprinting and recognition in Python
RE Cell phone App Shazam:
How does Shazam work? Music Recognition Algorithms, Fingerprinting, and Processing
Step by step: Raspberry Pi offline voice recognition with SOPARE
Open source audio pattern recognition (finger printing) with a couple Forum Answers 2011
Finding-Song-Melody-Similarities-Using-a-DNA-String (paprer citation)
Academic Paper:
Resource-efficient Machine Learning in 2 KB RAM for the Internet of Things
Comments
Post a Comment