Author Topic: Emulate DK'Tronics speech!?!?  (Read 1993 times)

0 Members and 1 Guest are viewing this topic.

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1014
  • Likes Given: 926
Emulate DK'Tronics speech!?!?
« on: 23:06, 04 January 10 »
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

Offline robcfg

  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.267
  • Country: se
  • 8-Bit Technomancer
    • index.php?action=treasury
  • Liked: 1009
  • Likes Given: 2365
Re: Emulate DK'Tronics speech!?!?
« Reply #1 on: 13:37, 05 January 10 »
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!

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1014
  • Likes Given: 926
Re: Emulate DK'Tronics speech!?!?
« Reply #2 on: 13:56, 05 January 10 »
Thanks!

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...
« Last Edit: 13:58, 05 January 10 by Devilmarkus »
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

Offline robcfg

  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.267
  • Country: se
  • 8-Bit Technomancer
    • index.php?action=treasury
  • Liked: 1009
  • Likes Given: 2365
Re: Emulate DK'Tronics speech!?!?
« Reply #3 on: 14:23, 05 January 10 »
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

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1014
  • Likes Given: 926
Re: Emulate DK'Tronics speech!?!?
« Reply #4 on: 15:47, 05 January 10 »
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:
Code: [Select]
        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

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 15.372
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3062
  • Likes Given: 5584
Re: Emulate DK'Tronics speech!?!?
« Reply #5 on: 15:56, 05 January 10 »
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...