PDA

View Full Version : Parallax Emic, anyone?



Adrenalynn
07-11-2008, 01:47 AM
Anyone played with this: http://www.parallax.com/Store/Accessories/Sound/tabid/164/CategoryID/38/List/0/Level/a/ProductID/108/Default.aspx?SortField=ProductName%2cProductName ?

It looks like an awesome addition to a 'bot. Serial to TTS (Text To Speech). Dirt simple interface. Free up the PC to do other things. I love coprocessors...

ScuD
07-11-2008, 05:37 AM
winbond... winbond.. that name rings a bell..

looks interesting, i wonder how good it works.
Meh, i need a sponsor for all these cool little thingies

Adrenalynn
07-11-2008, 05:41 AM
Winbond was the largest chip manufacturer in the world, last I checked on such things.

It's hard to find a PC that doesn't have a couple of their chipsets in it...

There's audio at the bottom of the page I linked, you can check out how it sounds.

I know what you mean about funding these things, though!

4mem8
07-11-2008, 05:46 AM
I have one in my Wall-E which GWJax is programming, Pm him and he can tell you about this chip. He is trying to program it via a voice changer to sound like Wall-E.

ScuD
07-11-2008, 05:47 AM
Hadn't noticed the examples, thanks!

They sound cool, would work wonders on a butler robot!

Or just a pathfinder, going 'ouch' each time it hits a wall

A-Bot
07-11-2008, 07:15 AM
I've had my eye on this. I love parallax products. I think this is cooler than the ones that play samples, but those are fun too. I personally would prefer it to be more plug-n-play since I'm not an EE. I would definitely buy this if I had the connection part solved.

Adrenalynn
07-11-2008, 10:37 AM
What do you want to connect it to, A-Bot? We can set ya up in 30 seconds for how to connect it to anything you want.

Thanks, 4mem! I won't bug him about it at the moment, but it's definitely going in my next Sci Oly design.

A-Bot
07-11-2008, 12:37 PM
What do you want to connect it to, A-Bot? We can set ya up in 30 seconds for how to connect it to anything you want.

Thanks, 4mem! I won't bug him about it at the moment, but it's definitely going in my next Sci Oly design.

Actually, given my recent change in direction, I would probably prefer a software solution. I had been evaluating the Propeller, but I'm not using it now. Have any experience with the C# Speech API (SAPI)?

Adrenalynn
07-11-2008, 01:34 PM
I've used MSSAPI quite a bit. It's just a COM object.

I don't think I've written to it in c#, but it should be trivial...

The first thing I'd do is create an Interop DLL (since it's a COM object)

Project -> Add Reference, Select COM tab, Select Microsoft Speech Object Library, click OK.

You should now see the Interop.speechLib.dll in the folder with your project. It should always be in with your executable file for distribution.

Then reference it: using SpeechLib;

Then just instantiate it and call speak():

SpVoice voice = new SPVoice();
voice.Speak("Hello, A Bot!", SpeechVoiceSpeakFlags.SVSFDefault);


Voila! Obviously there is flags galore, but that's the basic concept I believe.

RedeyeS
08-17-2008, 02:31 PM
Very niffty little device some day when i have money agin i will definatly buy one. Thanks for pointing it out.

djsures
10-08-2008, 03:40 AM
i use it in my k-9 .. it's neat because you can pass the txt to be spoken over serial ttl and there is a busy line . i just wait for the busy line to be free before sending.. here is the code i wrote for it (pic pcw)



#define EMIC_PIN_BUSY PIN_C4
#use rs232(baud=2400,parity=N,xmit=PIN_D0,rcv=PIN_D1,bi ts=8,stream=emic)
char EMICBUFFER[100];
void waitForSync() {
output_high(pin_d2);
delay_ms(100);
while (input(EMIC_PIN_BUSY));
output_low(pin_d2);
}
void EMIC_setVolume(unsigned int x) {
// 0 to 7
fprintf(emic, "%c%u%c", 0x01, x, 0xAA);
waitForSync();
}
void EMIC_setSpeed(unsigned int x) {
// 0 to 4
fprintf(emic, "%c%u%c", 0x02, x, 0xAA);
waitForSync();
}
void EMIC_setPitch(unsigned int x) {
// 0 to 6
fprintf(emic, "%c%u%c", 0x03, x, 0xAA);
waitForSync();
}
void EMIC_init() {
waitForSync();
EMIC_setVolume(7);
EMIC_setSpeed(1);
EMIC_setPitch(1);
}
void EMIC_say() {
waitForSync();
fprintf(emic, "%c%s%c", 0x00, EMICBUFFER, 0xAA);
}


and to use it...



main () {

EMIC_init();

strcpy(EMICBUFFER, "Hello bumblebee. I am a computer chip talkin to you.");
EMIC_say();
}