How to store and email an audio clip?

Greetings all:

I have a vision for a device that assists rural volunteer fire fighters. When there is a fire call, a series of tones is transmitted on a radio frequency followed by the nature of the call and the address. The firefighters carry pagers tuned to the dispatch frequency. When the pager hears the proper tones, it opens the squelch on the pager so the voice transmission is heard.

I would like to build an arduino device that listens for these tones, then sends 20 seconds of recorded audio out as an email attachment, or perhaps FTPs it to a server, maybe even sends it out the serial port. The goal is for firefighters to be notified via email/MMS message, etc. as a secondary alert system beyond their pagers, as well as to control some cool EL wire visual indicator at the station, though thats just icing on the cake.

I've done a lot of googling and experimenting. I have an audio pre-amp that seems to work, based on the LM386.

I found a frequency counter library for arduino though I haven't tried it yet. This forum won't let me post the link, as this is my first post. Sorry. I reverse engineered the frequency of the tones using Audacity.
The pagers used are the motorola Minitor series, and based on that learned that the tones will always be between 300 Hz and 3000Hz. There are always two tones (A&B). A is 1 second, followed by B for 3 seconds followed by voice audio for 20 or 30 seconds.

What I don't understand at all is how to capture and record audio sampled at say, 4khz. The clips would be about 20 seconds long.
So if this is the proper way to calculate it: 4,000 samples/second * 8-bit ADC resolution * 20 seconds is 640Kbits or 80Kbytes of data.

What are my options? I found a 1Mbit I2C EEPROM from Microchip.com
http://parts.digikey.com/1/parts/535810-ic-eeprom-1mbit-1mhz-8soic-24fc1025-i-sm.html

Is an EEPROM even the proper choice given that they have limited read/write lifetimes?

Is an SD card a better choice?

Is there any way to add external RAM to the Arduino Uno? Not sure of the Atmega328 supports this at all. Maybe I need a Mega?

I wonder how the Minitor pagers accomplish this. They store several previous calls.

Thanks for your patience in advance. I'm a pre-med student, not an EE, though arduino is making me wish I was EE some days! :stuck_out_tongue:

Also, my big fantasy feature: Does anyone think speech recognition is advanced enough to convert the address given in the audio feed to text?
I'd love to write an iPhone app that would put the address into the map and generate GPS instructions to the call. I don't think this is possible, but I'd love to be proved wrong!

is portability an issue here? if it's a stationary unit you would probably be better of using a cheap computer to record the message and relay it to the email. you could still use the arduino to signal it to start recording. i doubt the arduino is fast enough to record at a rate that will let the speech be intelligible.

Is an EEPROM even the proper choice given that they have limited read/write lifetimes?

There is no limit on the number of times you can read an EEPROM just the writes. As this is upwards of 10,000 there should be no problem.

Digitising and storing an audio clip on an arduino is not the eases thing to do. You are better off getting something like the Lady Ada Wave shield with built in SD card.

Is there any way to add external RAM to the Arduino Uno?

Not and make it look like program memory. There are I2C memory chips you could use though.

I'm a pre-med student, not an EE

Then you will probably not have thought of the legal requirements for making a transmitter. Most of the time it is illegal, but it depends on where in the world you are and what frequencies and what power you use.

Does anyone think speech recognition is advanced enough to convert the address given in the audio feed to text?

No not in an emergency situation and not on an arduino.

but I'd love to be proved wrong!

Life will be a disappointment to you for some years to come.