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!
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!
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...
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
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:
(http://cpc-live.com/spo256.gif)
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!
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...