Enter the maze

What's that bird? Ask your phone

by Dan Stowell, Queen Mary University of London

An abstract colourful bird : copyright www.istockphoto.com 9997867

Could your smartphone automatically tell you what species of bird is singing outside your window? If so how?

Mobile phones contain microphones to pick up your voice. That means they should be able to pick up the sound of birds singing too, right? And maybe even decide which bird is which?

Smartphone apps exist that promise to do just this. They record a sound, analyse it, and tell you which species of bird they think it is most likely to be. But a smartphone doesn't have the sophisticated brain that we have, evolved over millions of years to understand the world around us. A smartphone has to be programmed by someone to do everything it does. So if you had to program an app to recognise bird sounds, how would you do it? There are two very different ways computer scientists have devised to do this kind of decision making and they are used by researchers for all sorts of applications from diagnosing medical problems to recognising suspicious behaviour in CCTV images. Both ways are used by phone apps to recognise bird song that you can already buy.

Write down all the rules

If you ask a birdwatcher how to identify a blackbird's sound, they will tell you specific rules. "It's high-pitched, not low-pitched." "It lasts a few seconds and then there's a silent gap before it does it again." "It's twittery and complex, not just a single note." So if we wrote down all those rules in a recipe for the machine to follow, each rule a little program that could say "Yes, I'm true for that sound", an app combining them could decide when a sound matches all the rules and when it doesn't.

This is called an 'expert system' approach. One difficulty is that it can take a lot of time and effort to actually write down enough rules for enough birds: there are hundreds of bird species in the UK alone! Each would need lots of rules to be hand crafted. It also needs lots of input from bird experts to get the rules exactly right. Even then it's not always possible for people to put into words what makes a sound special. Could you write down exactly what makes you recognise your friends' voices, and what makes them different from everyone else's? Probably not! However, this approach can be good because you know exactly what reasons the computer is using when it makes decisions.

This is very different from the other approach which is...

Show it lots of examples

A lot of modern systems use the idea of 'machine learning', which means that instead of writing rules down, we create a system that can somehow 'learn' what the correct answer should be. We just give it lots of different examples to learn from, telling it what each one is. Once it has seen enough examples to get it right often enough, we let it loose on things we don't know in advance. This approach is inspired by how the brain works. We know that brains are good at learning, so why not do what they do!

One difficulty with this is that you can't always be sure how the machine comes up with its decisions. Often the software is a 'black box' that gives you an answer but doesn't tell you what justifies that answer. Is it really listening to the same aspects of the sound as we do? How would we know?

On the other hand, perhaps that's the great thing about this approach: a computer might be able to give you the right answer without you having to tell it exactly how to do that!

It means we don't need to write down a 'recipe' for every sound we want to detect. If it can learn from examples, and get the answer right when it hears new examples, isn't that all we need?

Which way is best?

There are hundreds of bird species that you might hear in the UK alone, and many more in tropical countries. Human experts take many years to learn which sound means which bird. It's a difficult thing to do!

So which approach should your smartphone use if you want it to help identify birds around you? You can find phone apps that use one approach or another. It's very hard to measure exactly which approach is best, because the conditions change so much. Which one works best when there's noisy traffic in the background? Which one works best when lots of birds sing together? Which one works best if the bird is singing in a different 'dialect' from the examples we used when we created the system?

One way to answer the question is to provide phone apps to people and to see which apps they find most useful. So companies and researchers are creating apps using the ways they hope will work best. The market may well then make the decision. How would you decide?