Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 02:10 17 May 2022 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Did you know S.A.M.? (text to speech)

     Page 1 of 8    
Author Message
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 599
Posted: 10:52am 29 Dec 2015
Copy link to clipboard 
Print this post

Hi to anybody!

I am looking for a long time for a text to speech (TTS) system like S.A.M. in the 80's.
Did you know S.A.M. ?
It was a very impressive TTS on the C64 in the 80's. A guy has converted this code to a PIC24FJ64GA002 on this site .

Unfortunately I get the PIC-code in the moment not to run!

My PIC24FJ64GA002 did absolutely nothing!
I think there are any settings wrong or I have the wrong compiler version!

Is there a way to implement this code as C-function to our Micromite???
...or can anybody help me with a proper hex-file? I think it would be a great effort to teach our Micromite to speech...
I am unfortunately not able to program in C!

Merry Christmas and a happy new year to all "Thebacksheders"!

Frank
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 8081
Posted: 01:23pm 29 Dec 2015
Copy link to clipboard 
Print this post

OH yes, I remember that!

I had SAM for the Atari 800XL back in the day, and it was AMAZING that you could make a home computer talk like that.

Now days, very high quality speech synthesisers are available even as on-line ones like Natural Reader.

The thing I remember most about SAM on the Atari, was in making it say various swear words.

I still have the SAM disk, and also an image of that disk I can load into an emulator, but the emulated Atari does not emulate the SAM voice, so it was nice to hear "Him" again!
Smoke makes things work. When the smoke gets out, it stops!
 
Cherokeecruiser
Newbie

Joined: 25/02/2015
Location: Australia
Posts: 25
Posted: 02:49pm 29 Dec 2015
Copy link to clipboard 
Print this post

Hi

Don't know if this will be any use to you, but I have Used The Emic-2 in several projects and is really easy to use. It sounds just like the automated voice system airservices used to provide pilot weather briefings in the mid 1990's (DEKTALK)

Just send it some serial text and it generates the speech from that. I have it connected to a GSM module to provide a dial in weather reporting system.

It has a small amplifier built in on board to drive a speaker

I got mine from sparkfun (https://www.sparkfun.com/products/11711)


 
MOBI
Guru

Joined: 02/12/2012
Location: Australia
Posts: 819
Posted: 07:17pm 29 Dec 2015
Copy link to clipboard 
Print this post

I had (have?) One for the Apple 11 called Simulated Automatic Mouth. It came with a floppy. It had a chip and speaker on board. Didn't use it much though. Was never able to get any data on it for analysis. I'll have a scrounge and see if I still have it.
David M.
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 599
Posted: 08:20pm 29 Dec 2015
Copy link to clipboard 
Print this post

@Grogster: I have SAM for a C64 emulator and it works very fine

@Cherokeecruiser: The Sparkfun-board costs 59$!!! ...a empty PIC costs 3.5$ and I like the idea to let different robots to speak (not only one)...

@Mobi: That's the same program! I think Apple had a better quality with the separate chip...

Frank
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 599
Posted: 11:49pm 30 Dec 2015
Copy link to clipboard 
Print this post

Have anybody experience with the Microchip C30 Compiler and can help me to compile this SAM-code to compile for a PIC24FJ64GA002?

Thanks a lot!!!

Frank
 
cicciocb
Regular Member

Joined: 29/04/2014
Location: France
Posts: 56
Posted: 03:15am 03 Jan 2016
Copy link to clipboard 
Print this post

Hi Frank,
the free time available during the Christmas holidays, gave me enough time to port the SAM code to run inside a pic32mx150.
I didn't yet tested but it should also works on the pic32mx170.

The sound quality is very nice, identical to the site http://simulationcorner.net/index.php?page=sam.

You just need a serial connection and a loudspeaker, as the sound is generated with a PWM.

If you (or someone else) are interested, I will provide the .hex file.

Happy new year.

Cicciocb
 
Chris Roper
Senior Member

Joined: 19/05/2015
Location: South Africa
Posts: 280
Posted: 04:08am 03 Jan 2016
Copy link to clipboard 
Print this post


That sounds great Cicciocb.

But you should have a demo of it singing "La Marseillaise" rather than "The Star Spangled Banner" :)

I would very much like a copy of that hex file.

Cheers, and Happy New Year everyone,
Chris

http://caroper.blogspot.com/
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 04:28am 03 Jan 2016
Copy link to clipboard 
Print this post

@cicciocb, this is amazing news!

Are you planning to release it to the public at some stage so others can enjoy too?

http://rittle.org

--------------
 
cicciocb
Regular Member

Joined: 29/04/2014
Location: France
Posts: 56
Posted: 05:54am 03 Jan 2016
Copy link to clipboard 
Print this post

Hi all,
please find here the .hex for the pic32mx150F128B; it should run also on the 170 as it share the same structure of the 150.

It needs to be wired as a micromite (including the 47uF capacitor) and uses the following pins :

RS232 9600 8 bits No parity
TX : RB10 (pin 21)
RX : RB11 (pin 22)
BUSY_PIN : RB2 (pin 6)
OUT : RB15 (pin 26)

You can just type the text followed by return (or Line Feed or both) and the voice will be generated. During the speech, the BUSY_PIN goes to HI and it return back to LOW at the end; it can be used to sync with the controller without be obliged to parse the serial data.

There are some commands available, type @HELP for the list.


For the output you can simply connect a loudspeaker between the PIN26 and the ground; I suggest to put a capacitor (I use a 100uF) in series between the output and the loudspeaker.

Enjoy.
2016-01-03_155408_PIC32_SAM_beta.production.zip
Cicciocb
 
Chris Roper
Senior Member

Joined: 19/05/2015
Location: South Africa
Posts: 280
Posted: 09:50am 03 Jan 2016
Copy link to clipboard 
Print this post

  cicciocb said   Hi all,
please find here the .hex for the pic32mx150F128B; it should run also on the 170 as it share the same structure of the 150.

It needs to be wired as a micromite (including the 47uF capacitor) and uses the following pins :

RS232 9600 8 bits No parity
TX : RB10 (pin 21)
RX : RB11 (pin 22)
BUSY_PIN : RB2 (pin 6)
OUT : RB15 (pin 26)


Thanks,

I have a few MX150's in my parts draws and will build one up.
It is a bit late this evening but a great project for tomorrow.

merci beaucoup,
Chris



http://caroper.blogspot.com/
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 599
Posted: 11:51am 03 Jan 2016
Copy link to clipboard 
Print this post

Hi Cicciocb,

thank you very much! These are very good news!

I have SAM working in the meantime (since this morning ) on a PIC24FJ64GA002.

The sound is really good after little adjustments on speed, pitch, frequency and so one.. - I am really happy!!!

The PIC24FJ64GA002 is very similar to the PIC32MX150/170 in hardware so I have it running on my Microchip Microstick with a low-pass filter (like in the Raspberry Pi One with 2 resistors and 2 capacitors) and an active loadspeaker.

I changed the RS232 parameters to 9600,8,N,1 and it works like a charm! I must try it to use only a 100µF capacitor like you.

I think it could be possible to get a much more better sound quality with a better filter... - have somebody experience which audio filters???

Is anybody interested on the modified code or the hex-file?

Did you think it would be possible to modify your code as a C-function plug-in for a Micromite? It would be great to have this feature within our MMBasic...

Thanks a lot!!! Serious SAM for ever!!! (...oh, this was another game! )

Frank
 
CircuitGizmos

Guru

Joined: 08/09/2011
Location: United States
Posts: 1416
Posted: 02:27pm 03 Jan 2016
Copy link to clipboard 
Print this post

  cicciocb said   Hi all,
please find here the .hex for the pic32mx150F128B; it should run also on the 170 as it share the same structure of the 150.

It needs to be wired as a micromite (including the 47uF capacitor) and uses the following pins :

RS232 9600 8 bits No parity
TX : RB10 (pin 21)
RX : RB11 (pin 22)
BUSY_PIN : RB2 (pin 6)
OUT : RB15 (pin 26)

You can just type the text followed by return (or Line Feed or both) and the voice will be generated. During the speech, the BUSY_PIN goes to HI and it return back to LOW at the end; it can be used to sync with the controller without be obliged to parse the serial data.

There are some commands available, type @HELP for the list.


For the output you can simply connect a loudspeaker between the PIN26 and the ground; I suggest to put a capacitor (I use a 100uF) in series between the output and the loudspeaker.

Enjoy.
2016-01-03_155408_PIC32_SAM_beta.production.zip
Cicciocb


I programmed this really quickly ( I just dropped a '150 in place on the CGMICROKIT board ) and it works great!

@TEXT : Activate the Text mode
@PHONEME : Activate the Phoneme mode
DEBUG_ON : shows the phonemes generated
DEBUG_OFF : obvious meaning
@SPEED= : change the speed (0-255) default=72
@PITCH= : change the pitch (0-255) default=64
@MOUTH= : change the mouth (0-255) default=128
@THROAT= : change the throat(0-255) default=128
@HELP

The DEBUG commands should have @ before them.

If you turn on debug, then the next typed line loses the first character.

Backspace is ignored.

If anyone wants a programmed chip, please let me know.


Micromites and Maximites! - Beginning Maximite
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 8081
Posted: 02:28pm 03 Jan 2016
Copy link to clipboard 
Print this post

@ cicciocb - Who's a clever newbie then?!(rhetorical)

I could rustle up a PCB for anyone interested, based on cicciocb's pinout etc, and post the Gerbers here. PCB would be small 50x50, ten of which can be had for about US$10.....

I still have several DIL 150's left, so I might have to try this thing out myself!
Smoke makes things work. When the smoke gets out, it stops!
 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 743
Posted: 10:47pm 03 Jan 2016
Copy link to clipboard 
Print this post

I thought I would have a play with the speech generation and flashed a 150 chip with the hex file. The unit gives the programmed speech on start up but I don't seem to be able to communicate with it via the comm port. Am I right to assume that I can connect Tera Term at 9600,n,1 to the com1 port (pins 21,22) and get an echo of the characters sent?
 
cicciocb
Regular Member

Joined: 29/04/2014
Location: France
Posts: 56
Posted: 10:57pm 03 Jan 2016
Copy link to clipboard 
Print this post

Yes, it should works with 9600, No parity 8 bits.
Have you tried to reverse the TX and RX pins ?

 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 743
Posted: 11:02pm 03 Jan 2016
Copy link to clipboard 
Print this post

Thanks for the quick reply cicciocb. I did try swapping the tx and rx with no result. I am using a usb-ttl converter, do I need and inversion of the data polarity?
 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 743
Posted: 11:11pm 03 Jan 2016
Copy link to clipboard 
Print this post

Replaced with a fresh usb-ttl converter all is working as expected. (Hope this is not one of those bricking episodes with the converter chip)

 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 743
Posted: 11:35pm 03 Jan 2016
Copy link to clipboard 
Print this post

I must admit EXTERMINATE EXTERMINATE did give me a smile. (for all you DR WHO fans)
GM
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 599
Posted: 11:51pm 03 Jan 2016
Copy link to clipboard 
Print this post

Hi Cicciocb,

did you share your C-code with us? ...I try to learn C...

Thank you very much!

Frank
 
     Page 1 of 8    
Print this page
© JAQ Software 2022