News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Devilmarkus

Emulate DK'Tronics speech!?!?

Started by Devilmarkus, 22:06, 04 January 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Devilmarkus

Hi there,
I coded a very basic Speech implementation into JavaCPC today.
It makes it possible to output speech bytes from DK'Tronics Speech Synthesizer or also Amstrad Synthesizer should be possible.
Example:
http://cpc-live.com/speechtest/

This is a VERY SIMPLE test, so don't suggest something perfect, please...

If somebody wants/can help me to improve this, please contact me!
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

robcfg

Hallo Markus!

I think your speech synthesis test is quite good for being a test. I have an SSA-1 and your test is starting to sound quite like it.

I've read on another thread that you need the SSA-1 rom dump, I'll take a look later today and see if I can dump it for you. If it's soldered then it'll take a little longer.

By the way, I think the rom contains the sounds used to create the speech, so do you think it would be possible to create patched roms that would be customized for other languages besides english?

Keep the good work!

Devilmarkus

#2
Thanks!

Quote from: robcfg on 12:37, 05 January 10
By the way, I think the rom contains the sounds used to create the speech, so do you think it would be possible to create patched roms that would be customized for other languages besides english?

The speech is generated in the SPO-chip. So there are no WAV-tables or similar in rom.
The DK'Tronics only converts text input to phoneme bytes and sends these bytes over the IO-port &FBFE to the SPO chip.

I also want to know if the delay between speech input and output grows as longer the input string is...
In JavaCPC, as longer the text string is, as longer it takes to output the speech...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

robcfg

I've been taking a look at the sp0256 data sheet and it mentions two interesting things:

1) "The SP0256-Al2 requires the use of a processor to concatenate the speech sounds to form words." So, it seem logical to think that if the processor is used to form the words, the longer the string is, the longer it takes.

2) The allophones are stored in the sp0256's internal rom, but the chip has a "disable rom" pin, which leads me to think that it could be used along an external rom with a different allophone set (which obviously it's not necessary but it would be nice to take advantage of this feature and listen to our cpc talking in several languajes  ;) ).

Regards

Devilmarkus

You can have a look @ this website:
http://little-scale.blogspot.com/2009/02/sp0256-al2-creative-commons-sample-pack.html

I am just transforming these samples to my Speech synth.
So it will sound closer to the SP0256 chip.

Maybe you find a way to create a table for spanish language for example

Here's the allophone table of the SP0256 chip:


JavaCPC uses a translation like this:
        for (int i = 0; i < len; i++){
            try{
                switch (Util.hexValue(Phoneme[i])){
                    case 0: Phoneme[i] = "10ms"; break;
                    case 1: Phoneme[i] = "30ms"; break;
                    case 2: Phoneme[i] = "50ms"; break;
                    case 3: Phoneme[i] = "100ms"; break;
                    case 4: Phoneme[i] = "200ms"; break;
                    case 5: Phoneme[i] = "OY"; break;
                    case 6: Phoneme[i] = "AY"; break;
                    case 7: Phoneme[i] = "EH"; break;
                    case 8: Phoneme[i] = "KK3"; break;
                    case 9: Phoneme[i] = "PP"; break;
                    case 10: Phoneme[i] = "JH"; break;
                    case 11: Phoneme[i] = "NN1"; break;
                    case 12: Phoneme[i] = "IH"; break;
                    case 13: Phoneme[i] = "TT2"; break;
                    case 14: Phoneme[i] = "RR1"; break;
...................................


Have fun!
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Gryzor

I seem to remember reading somewhere, back in the day, than indeed all solutions based on the same chip do sound the same because the allophones stored in there are the same in all implementations, but that it's also possible to feed it with another bank of strings. Of course it was more sci-fi than practical speculation back then, but...

Powered by SMFPacks Menu Editor Mod