Pages: [1]   Go Down
Author Topic: Voice Wifi Transmission Project  (Read 1262 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi All, I am trying to accomplish the following and would greatly appreciate some guidance in terms of what hardware to consider so I can start reading up on it.

1. Microcontroller record sentences (10-20 seconds) with a trigger (e.g. while button pressed)
2. Audio is converted to a decent quality wav file
3. Wav file is sent using wifi over to a webservice
4. Webservice processes the file and sends back a wav file that is played back on the microcontroller

Thanks!

Logged

Copenhagen / Denmark
Offline Offline
Edison Member
*
Karma: 6
Posts: 2360
Do it !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Considering that Arduino is an 8 bit uProcessor with very limited memory, i think you will be hard pressed to acomplish this.

20 seconds of audio in decent quality take up a lot of memory, converting it to a wav file means that you need at least twice the memory during the conversion.

This is after you solved the problem of sampling the audio in a decent quality first.
Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 27
Posts: 2566
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1. Arduino

2. Wave shield
http://www.ladyada.net/make/waveshield/

3. Wi-fi shield
http://www.sparkfun.com/products/9954
Logged

Copenhagen / Denmark
Offline Offline
Edison Member
*
Karma: 6
Posts: 2360
Do it !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

That would be a playback solution only.

The wave shield can not record audio.
Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 27
Posts: 2566
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What about this one?
http://spikenzielabs.com/SpikenzieLabs/VoiceShield.html
Logged

Offline Offline
Edison Member
*
Karma: 8
Posts: 1341
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've got it working.  You cannot store 10s obviously.  You must send it immediately to the PC.  This is no different from a cheap wireless microphone except in the following ways:

1. XBee can go to sleep when sound is below a threshold.  UNO can also, waking up to sample every 10s.  The average power is less than 1ma.  Try this with a wireless Mic 1/2mi away!

2. Other data can be sent too.  IR sensor, temp, light, jpg. 

3. You can look for a signature in the frequency domain before sending.  There is enough processing power for this!  For example birds, a specific type of owl already sampled, male voices, a car engine idling, heater turning on, transient sounds like a door shutting.

4. You can talk back

5. Do a FFT at 32khz and only send the results instead of the audio

6. Using Openlog you can make a tiny Spy Bug with a thumbnail sized lithium thionyl battery that lasts a YEAR!  Depending on how much talking is being done.  Try that with a voice recorder?

Which of these 6 features do you like?
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Offline Offline
Edison Member
*
Karma: 8
Posts: 1341
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Without uLaw compression, if the scaling is done in hardware, the main loop is only 2 lines of code:

mydelay();
serial.write(analogRead());

About 20 lines with both of those features.
With a few more lines of code I've used oversampling to eliminate the need for a Nyquist filter, even at 2Khz.

At 10khz over XBee it sounds better than a mobile phone!

At 32khz you cannot send it in real time serially, but you can send chunks for analysis on a PC.

I recommend this, they're Free!
http://www.datasheetcatalog.org/datasheet/analogdevices/SSM2166S.pdf
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've got it working.  You cannot store 10s obviously.  You must send it immediately to the PC.  This is no different from a cheap wireless microphone except in the following ways:

1. XBee can go to sleep when sound is below a threshold.  UNO can also, waking up to sample every 10s.  The average power is less than 1ma.  Try this with a wireless Mic 1/2mi away!

2. Other data can be sent too.  IR sensor, temp, light, jpg.  

3. You can look for a signature in the frequency domain before sending.  There is enough processing power for this!  For example birds, a specific type of owl already sampled, male voices, a car engine idling, heater turning on, transient sounds like a door shutting.

4. You can talk back

5. Do a FFT at 32khz and only send the results instead of the audio

6. Using Openlog you can make a tiny Spy Bug with a thumbnail sized lithium thionyl battery that lasts a YEAR!  Depending on how much talking is being done.  Try that with a voice recorder?

Which of these 6 features do you like?

Thank you all for the responses. So can I accomplish my task (send recorded audio to webservice and then play back response from webservice) without a voice shield? I was also wondering about a quick easy way to connect to my or any other wifi service. Would it be possible to speak out the wifi password to connect to the internet. I have a wireless kodak photoframe that needs to be configured for wifi connection with a usb wire before going wireless. But in my project, I would rather just speak out the password and the arduino should connect.
 
So for now i'm gonna order the arduino uno and xbee for wifi. For voice password to connect to wifi would the voice shield work? Would it recognise all the alphabets and numbers?

Thanks.
« Last Edit: October 02, 2011, 09:42:19 pm by flick » Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 27
Posts: 2566
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
So can I accomplish my task (send recorded audio to webservice and then play back response from webservice) without a voice shield?
No. The microcontroler / arduino board is not design to work with sound. You need additional hardware, mic + preamplifier + memory ( 10  seconds phone quality sound require 80 k byte, about 10 times more than mega board has, and 40 times more than uno  ), this is why I recommended to look for voice shield.  My advice , split your design in a few subsystems, and look for solution in each category.
1. Audio frond end.
-  Voice shield, or
-  Mic + preamp.
2. Analog digital converter and radio link.
- Arduino + wi-fi shield, plus wi-fi (already existed) on receiver side;
- Zigbee (pair) plus arduino on other end connected to PC.
- something else.
3. Voice recognition.
Look for shield that capable to do it. What I recommend above isn't design for this task.
May be this one:
http://www.ewerksonline.com/catalog/product_info.php?products_id=203
I don't have device and can't comment.
« Last Edit: October 02, 2011, 10:46:23 pm by Magician » Logged

Offline Offline
Edison Member
*
Karma: 8
Posts: 1341
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I disagree.  I've got it working with the circuit above.  Voice recognition is much more difficult with our hardware.
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

Pages: [1]   Go Up
Jump to: