Pages: 1 [2]   Go Down
Author Topic: Sound recognition  (Read 424 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Faraday Member
**
Karma: 87
Posts: 4970
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No  one questions the existance of Voice Identity but can you post a link to any company that markets a hand held standalpne bird call recognition product ? Why isn't there an iPhone App for that ?
Can you answer that ?
Logged

Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,
DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Atlanta, USA
Offline Offline
Edison Member
*
Karma: 53
Posts: 1776
AKA: Ray Burne
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No  one questions the existance of Voice Identity but can you post a link to any company that markets a hand held standalpne bird call recognition product ? Why isn't there an iPhone App for that ?
Can you answer that ?

http://grow.cals.wisc.edu/environment/smart-birding
Quote
Birdcalls can differ throughout the day, among groups just miles apart, and by individual birds.
“When a bird sings, the song itself may have varying amplitudes and frequencies,” Berres says. “It can also speed up a little bit and slow down a little bit. They may throw in a note here or take out a
note there.”
WeBIRD dices songs into time-ordered chunks, using data-organization techniques often applied by geneticists to jumbled bits of DNA to “align temporally misaligned data, working around a lot of the variation,” says Berres.
Logged

Offline Offline
Faraday Member
**
Karma: 87
Posts: 4970
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well there you go. Do you still think it's doable with 8-bits?
Even the iPhone couldn't do it in standalone mode.  All it does is collect the sample  and send it to a server for processing by who knows what kind of supercomputer  it doesn't operate in Standalone mode without a cell phone signal. It's doable, but requires more resources than you can hold in your hand.
« Last Edit: June 09, 2014, 08:48:54 am by raschemmel » Logged

Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,
DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Atlanta, USA
Offline Offline
Edison Member
*
Karma: 53
Posts: 1776
AKA: Ray Burne
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well there you go. Do you still think it's doable with 8-bits?
Even the iPhone couldn't do it in standalone mode.  All it does is collect the sample  and send it to a server for processing by who knows what kind of supercomputer  it doesn't operate in Standalone mode without a cell phone signal. It's doable, but requires more resources than you can hold in your hand.

GeeWhiz... You asked for an iPhone app, I gave you the link.  Now you are unhappy the iPhone uses back end processing.

Yes, I still think it can be accomplished.  Here's is another example:
http://www.researchgate.net/publication/221573753_Microcontroller_implementation_of_melody_recognition_a_prototype
Quote
Microcontroller implementation of melody recognition: a prototype.

Jyh-Shing Roger Jang, Yung-Sen Jang
In proceeding of: Proceedings of the Eleventh ACM International Conference on Multimedia, Berkeley, CA, USA, November 2-8, 2003
Source: DBLP
ABSTRACT This demo presents a 16-bit microcontroller implementation of a content-based music retrieval system that can take a user's acoustic input (5-second clip of singing or humming) and then retrieve the intended song from 20 candidate songs. Performance evaluation based on 192 clips shows that the system has a satisfactory top-1 recognition rate of 92%. This system demonstrates the feasibility of microcontroller based melody recognition for music retrieval, which can be used in consumer electronics such as melody-activated interactive toys, query engines for MP3 players or karaoke machines, and so on.

If you pull the PDF, you will note the uC only has 1K RAM.  Each song pattern was 256Bytes.  The algorithm sampled at 8KHz and the sample duration was 5 seconds.  AD resolution was 8-bits.

In the above, 8-bit vs 16-bit is not of significant concern, unless the algorithm is totally poo-poo in 8-bit implementation, which is doubtful.  The low RAM requirements are particularly interesting, half that of the Atmega328...

So, repeating, Yes I do believe it is do-able.  The secret would be to build from prior successful algorithms and research.

Ray

Edit
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1292547
Quote
This paper presents practical issues and considerations when implementing melody recognition on 8-bit and 16-bit microcontrollers. The underlying melody recognition system (also known as query-by-singing/humming system) allows the user to sing or hum a segment of a melody to the microphone and the system can retrieve the intended song in a timely manner. Performance evaluation based on 192 clips shows that the system has a satisfactory top-1 recognition rate of 92% out of 20 candidate songs in the database. This system demonstrates the feasibility of microcontroller based melody recognition for music retrieval, which can be used extensively in consumer electronics such as melody-activated interactive toys, query engines for MP3/VCD/DVD players and karaoke machines, and so on.

Face recognition using  8-bit uC???
http://freevideolectures.com/Course/3138/Microcontroller-student-projects/3#
Quote
We created a standalone face recognition system for access control. Users enroll in the system with the push of a button and can then log in with a different button. Face recognition uses an eigenface method. Initial testing indicates an 88% successful login rate with no false positives.

DSP on 8-bit uC?
http://hackaday.io/project/336-DSP-on-8-bit-microcontroller
Quote
One of the most demanding applications for fast arithmetic is digital flitering. Atmel application note AVR201 shows how to use the hardware multiplier to make a multiply-and-accumulate operation (MAC).

AVR Speech Playback?
http://hackaday.io/project/273-Speech-playback-for-microcontroller
Quote
Memory is limited on small controllers, so I wrote compressed speech playback for the AVR architecture.

« Last Edit: June 09, 2014, 12:50:41 pm by mrburnette » Logged

Offline Offline
Faraday Member
**
Karma: 87
Posts: 4970
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok. you win...It appears to be doable with a uC. .... smiley-lol
Logged

Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,
DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Chicago
Offline Offline
Full Member
***
Karma: 7
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm with raschemmel on this one.  I really don't think it's doable.  The research paper you've quoted is only matching a 5-second melody against a finite library of exactly 20 songs that never change.  I think we've already established that a single bird can have way more variations than that.  Also... when I hear birds, I think I hear them chirping at high frequencies and change pitches many times within a second.  I don't think human melodies typically do that. You'd need to sample at a much higher rate to be able to even pick that up.   Comparing this 8-bit chip and human melody recognition to bird call recognition is like comparing tic-tac-toe to chess.  According to the American Foundation for Chess, there are something like 169,518,829,100,544,000,000,000,000,00 possible ways to play just the first 10 moves in chess.  I think that's more on the scale of difficulty we're talking about.  Like raschemmel said, if it were easy, somebody would have done it already.  But don't let me stop you.  Feel free to prove me wrong.  So far you haven't.  Just saying.  smiley-wink
Logged

Creator of the MonsterShield
http://www.hauntsoft.com

Atlanta, USA
Offline Offline
Edison Member
*
Karma: 53
Posts: 1776
AKA: Ray Burne
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm with raschemmel on this one.  I really don't think it's doable.  The research paper you've quoted is only matching a 5-second melody against a finite library of exactly 20 songs that never change.  I think we've already established that a single bird can have way more variations than that.  Also... when I hear birds, I think I hear them chirping at high frequencies and change pitches many times within a second. I don't think human melodies typically do that. You'd need to sample at a much higher rate to be able to even pick that up.   Comparing this 8-bit chip and human melody recognition to bird call recognition is like comparing tic-tac-toe to chess. According to the American Foundation for Chess, there are something like 169,518,829,100,544,000,000,000,000,00 possible ways to play just the first 10 moves in chess.  I think that's more on the scale of difficulty we're talking about.  Like raschemmel said, if it were easy, somebody would have done it already.  But don't let me stop you.  Feel free to prove me wrong.  So far you haven't.  Just saying.  smiley-wink

As a boy, I remember an article in one of my electronic magazines about building an audio down-converter so that one could listen to nature high-pitched sounds... A hetrodyne system where the difference is retained.

My point is that I took exception to raschemmel's teasing about 8-bit processing and I provided examples where 8-bits processors are shining.

It all boils down to math: is there some crafty algorithm(s) that would enable an Arduino to manage the level of processing required.  This is not to say that there is only 1 mountain to climb.

I personally have no interest in bird calls but taking a stand that it is impossible unless done seems harsh.  There is enough examples in the research to indicate that the AVR could be successful in this endeavor... IMO. My Mother-in-Law still believes the moon landings were done in Hollywood and no amount of arguing will convince her otherwise.  I have no intention of going to the moon to prove her wrong & and I have no intention in prooving you wrong.  At this point, I will quote my freshman Fortran prof, "There is nothing that cannot be done with a computer if you have enough time and enough money.  Unfortunately, I have neither.

Ray

Logged

UK
Offline Offline
Shannon Member
****
Karma: 222
Posts: 12549
-
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Recognising a particular bird call is IMO not feasible on an Arduino for all the reasons stated, but the original post was a bit vague about exactly what it was trying to achieve. If the goal is to detect the sound of any bird (as distinct from identifying the bird) maybe that could be done just using a notch filter and looking for a brief increase in the sound level within that frequency range.
Logged

I only provide help via the forum - please do not contact me for private consultancy.

Offline Offline
Faraday Member
**
Karma: 87
Posts: 4970
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That sounds like a bit of an over-simplification if you ask me..
Logged

Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,
DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

UK
Offline Offline
Shannon Member
****
Karma: 222
Posts: 12549
-
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

May well be, but I think that's probably the limit of what's feasible using an Arduino.
Logged

I only provide help via the forum - please do not contact me for private consultancy.

Offline Offline
Faraday Member
**
Karma: 87
Posts: 4970
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Unfortunately I believe the OP stated the desire to identify a particular bird.
Logged

Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,
DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Pages: 1 [2]   Go Up
Jump to: