Barry is a young busy professor. Getting hold of him is notoriously difficult. His calendar at times shows busy even when he is in his office coming up with yet another grand plan of world domination with his unseen minions. To make matters worse, he doesn’t get a receptionist who you could ask before knocking on his door and disturbing his super-secret meeting. Moreover, as a graduate student who likes to be near his computer than in lab, I hate to periodically check whether the boss is in when I want to have quick talk. That’s why I have decided to get him a receptionist! With the brains and beauty of spark core and muscle in form of microphone and PIR motion detector, I think we have a complete package.
Here are the use cases we care about so far :
Barry is in and not talking on phone or to the person in front —>Can meet
Barry is in but in a meeting (evident by him speaking at least once in say 5 mins) —>Can’t meet
Barry is not in —>Can’t meet
I can use spark.publish to post the current scenario (of the three listed above) every 5 mins and us graduate students could monitor the status by subscribing to the private events.
PIR motion detection is straightforward. What I have no clue about is the mic part. There are several posts here regarding audio acquisition and processing but none of them seem to have a working solution. I could have missed though. I feel what I need is the ability to sample the audio fast enough, store a few seconds worth of data and perform an FFT to look for speech components. It may not be trivial as this given the noise (it’s fairly quiet usually) and that’s what I am not sure about. I have an ISD1820 voice module handy and it can used to record audio and off-load some tasks from spark core.
Any other inputs suggestions are appreciated. Does the overall approach seems possible or is there a better way to achieve this?
Of course, Barry has conceded to be tracked this way.
I hope Project Share is the right category to discuss ideas.