To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxtOpen lugnet.robotics.nxt in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / 228
Subject: 
nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 04:52:27 GMT
Viewed: 
12678 times
  
I'm a software guy, not a hardware guy.  I have very little experience
designing circuits.  To show how little I know, I'm actually reading
through Electronics Projects for Dummies at the moment.  ;)  Well in
this book they describe a simple text-to-speech project and I thought
it would be cool to create a tts module for the nxt.  So I've been
doing some research and found this i2c text-to-speech synthesizer,
sp03: http://www.acroname.com/robotics/parts/R184-SP03.html and this
great page on interfacing with the nxt i2c:
http://www.cs.tau.ac.il/~stoledo/lego/i2c-8574/

However after reading through the docs, it appears the nxt only
provides 4.3v, but the sp03 requires 4.5 - 5.5v.  For people who know
better, would this mean I wouldn't be able to power it using the power
from the sensor port directly?  Would that 0.2v make a difference or
could I use the other wire that supplies 9v for rcx-type analog
sensors to power it?

I also saw mention of speech synthesis interface on the "coming soon"
page at mindsensors
http://mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=54&MMN_position=22:22
but there's no other info and it really looks pretty "easy" to do it
myself with the sp03, 2 82k pull up resistors, a little hacking, and
some time to figure out how to send the right i2c messages, which I'm
sure I could handle as I figured out how to communicate with the
ultrasonic sensor in ruby.


Subject: 
RE: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 07:14:26 GMT
Reply-To: 
<DICKSWAN@saynotospamSBCGLOBAL.NET>
Viewed: 
12755 times
  
The NXT can also optionally apply 9V to I2C sensors on the same
input/wire that is used for reading the analog values. There's a flag to
set this up. I know it is accessible in RobotC and I think you should
also be able to set it up via NBC.

SO what you would do is drop the 9V to 5V via a voltage regulator and
some kind of filter capacitor. If the text-to-speech chip draws low
enough current you won't need a heat sink.

If you post the current draw on the TTS chip, likely someone will
comment on a simple circuit for dropping the voltage.

I'd also do a little more searching for other TTS chips that might work
on the lower voltage.. There was a nice article in either "Nuts and
Volts" or "Servo" magazine sometime in the last year on a TTS chip


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 08:18:36 GMT
Viewed: 
12557 times
  
Hi Tony,

sp03: http://www.acroname.com/robotics/parts/R184-SP03.html and this
Nice little beast!


However after reading through the docs, it appears the nxt only
provides 4.3v, but the sp03 requires 4.5 - 5.5v.  For people who know
better, would this mean I wouldn't be able to power it using the power
from the sensor port directly?  Would that 0.2v make a difference or
could I use the other wire that supplies 9v for rcx-type analog
sensors to power it?

Most probably it should work. I am a bit more concerned about current
consumption (80mA - not 80mAH as shown in documentation!), since the 4.3V supply
can deliver 180mA for ALL seven NXT ports.

You may also use an external supply but you will need to add a 5V voltage
regulator...

Philo


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 13:34:30 GMT
Viewed: 
12901 times
  
On 12/5/06, Dick Swan <dickswan@sbcglobal.net> wrote:
The NXT can also optionally apply 9V to I2C sensors on the same
input/wire that is used for reading the analog values. There's a flag to
set this up. I know it is accessible in RobotC and I think you should
also be able to set it up via NBC.

That would be the LOWSPEED_9V flag?

If you post the current draw on the TTS chip, likely someone will
comment on a simple circuit for dropping the voltage.

I just might do that.

I'd also do a little more searching for other TTS chips that might work
on the lower voltage.. There was a nice article in either "Nuts and
Volts" or "Servo" magazine sometime in the last year on a TTS chip

The chip used in the book I have is the SpeakJet
http://www.acroname.com/robotics/parts/R225-SPEAKJET.html It's a LOT
cheaper than the sp03, however, it uses a serial interface and would
be a lot more complicated.  I'd have to figure out a way to convert
the i2c signals into serial commands and it works by sending
allophones instead of arbitrary text.  I did find a page that
describes a way to add i2c to it, but it's a little beyond my
understanding at the moment
http://www.modularsynthesis.com/modules/synthmodules/PSIM-SpeakJet/PSIM-speakjet.htm
That or preload phrases and use the digital inputs to trigger them,
neither of which would be as nice as just sending an i2c message to
say "Shall we play a game".  Although I must admit, the speakjet can
output some pretty cool bleeps and blops sound effects like r2d2 and
overall has a cooler sounding retro robot voice.  :)


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 14:48:02 GMT
Viewed: 
12960 times
  
The NXT can also optionally apply 9V to I2C sensors on the same
input/wire that is used for reading the analog values. There's a flag to
set this up. I know it is accessible in RobotC and I think you should
also be able to set it up via NBC.

Yes, but unfortunately the 9V sensor supply is limited to 15mA just like the RCX
sensor supply. Not easy to power a module that consumes 80mA...

Philo


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 15:30:28 GMT
Viewed: 
13676 times
  
In lugnet.robotics.nxt, Tony Buser wrote:
On 12/5/06, Dick Swan <dickswan@sbcglobal.net> wrote:
The NXT can also optionally apply 9V to I2C sensors on the same
input/wire that is used for reading the analog values. There's a flag to
set this up. I know it is accessible in RobotC and I think you should
also be able to set it up via NBC.

That would be the LOWSPEED_9V flag?

If you post the current draw on the TTS chip, likely someone will
comment on a simple circuit for dropping the voltage.

I just might do that.

I'd also do a little more searching for other TTS chips that might work
on the lower voltage.. There was a nice article in either "Nuts and
Volts" or "Servo" magazine sometime in the last year on a TTS chip

The chip used in the book I have is the SpeakJet
http://www.acroname.com/robotics/parts/R225-SPEAKJET.html It's a LOT
cheaper than the sp03, however, it uses a serial interface and would
be a lot more complicated.  I'd have to figure out a way to convert
the i2c signals into serial commands and it works by sending
allophones instead of arbitrary text.  I did find a page that
describes a way to add i2c to it, but it's a little beyond my
understanding at the moment
http://www.modularsynthesis.com/modules/synthmodules/PSIM-SpeakJet/PSIM-speakjet.htm
That or preload phrases and use the digital inputs to trigger them,
neither of which would be as nice as just sending an i2c message to
say "Shall we play a game".  Although I must admit, the speakjet can
output some pretty cool bleeps and blops sound effects like r2d2 and
overall has a cooler sounding retro robot voice.  :)

It sounds like the NXT probably doesn't have enough power available to run that
chip, but you might look at using a BUC (Boost-Up Converter) component to bring
the 4.3V supply up to a higher level?  I've only been peripherally involved with
projects using these, but BUC converters can efficiently step up a supply
voltage to a higher voltage level at lower current levels.

I also wonder whether you could accomplish text-to-speech entirely in software?
I've seen TTS software that uses highly-compressed ADPCM phoneme samples to
convert a stream of allophones into digital audio output.  This would probably
strain the memory resources on the NXT, and I don't really know how well this
kind of thing would be supported without a firmware upgrade, but it sounds so
crazy that it just might work.


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 16:15:20 GMT
Viewed: 
13299 times
  
In lugnet.robotics.nxt, Tony Buser wrote:
I'm a software guy, not a hardware guy.  I have very little experience
designing circuits.  To show how little I know, I'm actually reading
through Electronics Projects for Dummies at the moment.  ;)  Well in
this book they describe a simple text-to-speech project and I thought
it would be cool to create a tts module for the nxt.  So I've been
doing some research and found this i2c text-to-speech synthesizer,
sp03: http://www.acroname.com/robotics/parts/R184-SP03.html and this
great page on interfacing with the nxt i2c:
http://www.cs.tau.ac.il/~stoledo/lego/i2c-8574/

However after reading through the docs, it appears the nxt only
provides 4.3v, but the sp03 requires 4.5 - 5.5v.  For people who know
better, would this mean I wouldn't be able to power it using the power
from the sensor port directly?  Would that 0.2v make a difference or
could I use the other wire that supplies 9v for rcx-type analog
sensors to power it?


I'd say its worth a try from the 4.3v supply from the NXT. I note that the SP03
spec. says it has a 3v regulator onboard, so its not really running from 5v
anyhow. The I2C signals are open drain, so they should be ok unless their inputs
won't work correctly from the 3.3v levels available from the NXT ouptuts.

Remember you'll need pullup resistors. I'd suggest something in the 47k - 82k
area. Of course that would be to a 3.3v rail. If you chose 56k, then pull down
resistors of 220k would limit the swing to about 3.4v. It may not be necessary
to use pull down resistors as the NXT has built in over-voltage clamp diodes I
believe.

JB


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 16:16:46 GMT
Viewed: 
13389 times
  
On 12/5/06, Chris Phillips <drvegetable@comcast.net> wrote:
chip, but you might look at using a BUC (Boost-Up Converter) component to bring
the 4.3V supply up to a higher level?  I've only been peripherally involved with

If I'm understanding things correctly, could something like this work?
http://www.national.com/pf/LM/LM3354.html
It appears to be able to take 2.5 - 5.5v in and give up to 5v out at
up to 90mA.  It would be great if it could be powered from the sensor
port directly instead of having to string another battery pack off the
side...

I also wonder whether you could accomplish text-to-speech entirely in software?
I've seen TTS software that uses highly-compressed ADPCM phoneme samples to
convert a stream of allophones into digital audio output.  This would probably

This is basically what that SpeakJet chip does.  It would be hard to
fit enough phonemes into memory and I believe you'd need some way to
change the playback speed of the individual parts.


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 17:12:50 GMT
Viewed: 
13802 times
  
In lugnet.robotics.nxt, Tony Buser wrote:
On 12/5/06, Chris Phillips <drvegetable@comcast.net> wrote:
chip, but you might look at using a BUC (Boost-Up Converter) component to bring
the 4.3V supply up to a higher level?  I've only been peripherally involved with

If I'm understanding things correctly, could something like this work?
http://www.national.com/pf/LM/LM3354.html
It appears to be able to take 2.5 - 5.5v in and give up to 5v out at
up to 90mA.  It would be great if it could be powered from the sensor
port directly instead of having to string another battery pack off the
side...

That is pretty much exactly what I was talking about.  Of course, such a chip
cannot increase the available power, it can only tweak the ratio between voltage
and current.  So this might work for some applications, but perhaps not in this
particular case.

Before I went to all the trouble, I'd probably try John Barnes advice first.
Just hook it up to see if the chip will work reliably off the raw 4.3V supply.

I also wonder whether you could accomplish text-to-speech entirely in software?
I've seen TTS software that uses highly-compressed ADPCM phoneme samples to
convert a stream of allophones into digital audio output.  This would probably

This is basically what that SpeakJet chip does.  It would be hard to
fit enough phonemes into memory and I believe you'd need some way to
change the playback speed of the individual parts.

Yes, this would stretch the NXT's resources, and I don't know that the existing
audio playback features are flexible enough to support this.  I did a quick
search and found the TTS library that I was referring to:

http://www.safesite.com/product.php%5Bid%5D7556%5Bcid%5D267%5BSiteID%5Ddigibuy

This is a reasonably old piece of freeware that was generously released under
GPL by its author Jonathan Hornstein.  It was written to run on an 8MHz IBM PC
using the on/off internal speaker for output.  The compiled version of the
driver is pretty small (~32K) so it is possible that this could be squeezed into
the NXT.  I had spent some time awhile back trying to convert this driver to
work on a modern PC using a sound card for output, but never got anything
recognizeable out of it.  The code is very timing-dependant on the CPU speed of
the old 8MHz PC.

So maybe a software solution is possible, although it would take some effort.


Subject: 
Re: nxt + i2c sp03 Text-To-Speech?
Newsgroups: 
lugnet.robotics.nxt
Date: 
Tue, 5 Dec 2006 20:27:52 GMT
Viewed: 
13920 times
  
In lugnet.robotics.nxt, Chris Phillips wrote:
In lugnet.robotics.nxt, Tony Buser wrote:
On 12/5/06, Dick Swan <dickswan@sbcglobal.net> wrote:
The NXT can also optionally apply 9V to I2C sensors on the same
input/wire that is used for reading the analog values. There's a flag to
set this up. I know it is accessible in RobotC and I think you should
also be able to set it up via NBC.

That would be the LOWSPEED_9V flag?

If you post the current draw on the TTS chip, likely someone will
comment on a simple circuit for dropping the voltage.

I just might do that.

I'd also do a little more searching for other TTS chips that might work
on the lower voltage.. There was a nice article in either "Nuts and
Volts" or "Servo" magazine sometime in the last year on a TTS chip

The chip used in the book I have is the SpeakJet
http://www.acroname.com/robotics/parts/R225-SPEAKJET.html It's a LOT
cheaper than the sp03, however, it uses a serial interface and would
be a lot more complicated.  I'd have to figure out a way to convert
the i2c signals into serial commands and it works by sending
allophones instead of arbitrary text.  I did find a page that
describes a way to add i2c to it, but it's a little beyond my
understanding at the moment
http://www.modularsynthesis.com/modules/synthmodules/PSIM-SpeakJet/PSIM-speakjet.htm
That or preload phrases and use the digital inputs to trigger them,
neither of which would be as nice as just sending an i2c message to
say "Shall we play a game".  Although I must admit, the speakjet can
output some pretty cool bleeps and blops sound effects like r2d2 and
overall has a cooler sounding retro robot voice.  :)

It sounds like the NXT probably doesn't have enough power available to run that
chip, but you might look at using a BUC (Boost-Up Converter) component to bring
the 4.3V supply up to a higher level?  I've only been peripherally involved with
projects using these, but BUC converters can efficiently step up a supply
voltage to a higher voltage level at lower current levels.

I also wonder whether you could accomplish text-to-speech entirely in software?
I've seen TTS software that uses highly-compressed ADPCM phoneme samples to
convert a stream of allophones into digital audio output.  This would probably
strain the memory resources on the NXT, and I don't really know how well this
kind of thing would be supported without a firmware upgrade, but it sounds so
crazy that it just might work.

There are chips available to convert ASCII text to allophones, although this
would increase the power requirements. One example:
http://www.speechchips.com/shop/item.asp?itemid=19

I actually used such a combination (many years ago) to build a simple speech
synthesizer board for my apple 2+. It produced very "roboty" speech which was a
bit hard to understand at times, but I'm guessing the synthesis chips have
improved quite a bit since then...

ROSCO


©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR