Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 05:39 26 Apr 2024 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 : SPO256 emulation with the PicoMite

Author Message
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 813
Posted: 01:03pm 03 Jan 2023
Copy link to clipboard 
Print this post

Hello to all,

now that we have such a great flash drive on the PicoMite, I tried a little something.  
You can find the sampled allophones of SPO256 on the net:
https://www.cpcwiki.eu/imgs/5/52/Allophones.zip
https://www.cpcwiki.eu/index.php/SP0256_Allophones

I copied these once directly and once renamed (see: https://www.cpcwiki.eu/index.php/SP0256_Allophones) to the flash drive. (My renamed allophones are here:Allophones as HEX.zip)

Why the renaming? Then you can convert text to the appropriate phonemes very easily with this tool here (https://web.archive.org/web/20210211045521if_/http://www.speechchips.com/downloads/chiptalksetup.exe).



...I probably should have renamed the files to the format "0xXX" rather than "XXh" - I can still do that...  

The program on the PicoMite for this is very simple:
Option Explicit
Dim WAVbusy As INTEGER
Const TRUE=1
Const FALSE=0

Print "Play"

Do
PlayWAV "2Eh"
PlayWAV "0Fh"
PlayWAV "0Bh"
PlayWAV "0Dh"
PlayWAV "1Fh"
PlayWAV "1Dh"
PlayWAV "33h"
PlayWAV "13h"
PlayWAV "28h"
PlayWAV "35h"
PlayWAV "33h"
PlayWAV "28h"
PlayWAV "06h"
PlayWAV "23h"
Pause 1000

PlayWAV "1Bh"
PlayWAV "07h"
PlayWAV "2Dh"
PlayWAV "35h"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "0Dh"
PlayWAV "1Fh"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "12h"
PlayWAV "13h"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "3Fh"
PlayWAV "1Ah"
PlayWAV "0Dh"
PlayWAV "29h"
PlayWAV "03h"
PlayWAV "02h"
PlayWAV "25h"
PlayWAV "07h"
PlayWAV "0Dh"
PlayWAV "1Dh"
PlayWAV "03h"
PlayWAV "02h"
Pause 1000
'Loop

'Do
PlayWAV "hh2"
PlayWAV "aa"
PlayWAV "ll"
PlayWAV "ll"
PlayWAV "ow"
Pause 1000
Loop

Sub PlayWAV wav$
WAVbusy=TRUE
Play WAV wav$+".wav",IROUTINE
Do
Loop While Wavbusy=TRUE
End Sub

Sub IROUTINE
WAVbusy=FALSE
End Sub                                    


Now you can call the phonemes either with the HEX designations or with the actual phoneme, as realized below.

Do not forget: The emulation sounds just as bad as the original!  

Frank
Edited 2023-01-03 23:09 by Frank N. Furter
 
scruss
Regular Member

Joined: 20/09/2021
Location: Canada
Posts: 83
Posted: 01:57am 04 Jan 2023
Copy link to clipboard 
Print this post

Nice! There's a full SPO256 emulation for the Pico-based ExtremeElectronics/RC2040: Z80 CP/M80 emulation of an RC2014 using the RP2040 (PI PICO) processor. I don't think it would be impossible to extract that part and include it in the the Picomite code base
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 892
Posted: 06:31am 04 Jan 2023
Copy link to clipboard 
Print this post

Hi Frank,
the part
'Do
PlayWAV "hh2"
PlayWAV "aa"
PlayWAV "ll"
PlayWAV "ll"
PlayWAV "ow"
Pause 1000
Loop

wouldn't work as the .wav files are missing.
but nice idea  
cheers
Mart!n

Edit, works after I also added the Files from the linked Zip File

Reminds me to the "1 2 3 Techno" part of Alex Christensens "Das Boot"
Edited 2023-01-04 16:58 by Martin H.
'no comment
 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 813
Posted: 07:38am 04 Jan 2023
Copy link to clipboard 
Print this post

@scruss:
It looks like the WAV were just hardcoded into "allophones.c". I don't think this does anything - except that it ALWAYS takes up space...

It would be more interesting to emulate the CTS256 - then you wouldn't have to search for the matching phonemes every time...


@Martin H.:
Yes, you need the files from the linked ZIP. It was not my idea - ChipTalk (from the above link) works in the same way.

Frank
 
scruss
Regular Member

Joined: 20/09/2021
Location: Canada
Posts: 83
Posted: 05:01am 05 Jan 2023
Copy link to clipboard 
Print this post

  Frank N. Furter said  @scruss:
It looks like the WAV were just hardcoded into "allophones.c". I don't think this does anything - except that it ALWAYS takes up space...

There not exactly large, and the RP2040 can execute from flash, so they're not taking up RAM. To me, it's more useful to have them all available.

  Quote  It would be more interesting to emulate the CTS256 - then you wouldn't have to search for the matching phonemes every time...

That's true, even if it provides very mushy pronunciation. I think I used an online converter to generate the speech codes for RC2040
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3655
Posted: 07:37pm 06 Jan 2023
Copy link to clipboard 
Print this post

  scruss said  There not exactly large, and the RP2040 can execute from flash, so they're not taking up RAM. To me, it's more useful to have them all available.

But you'd be taking away flash that otherwise is available for any programs.

That way leads madness.

If you need speed, make a CSUB.

John
 
scruss
Regular Member

Joined: 20/09/2021
Location: Canada
Posts: 83
Posted: 04:38am 07 Jan 2023
Copy link to clipboard 
Print this post

They're only 268 K. We've got ~2 MB to play with, and we can store MMBasic programs on SD card
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3655
Posted: 01:08pm 07 Jan 2023
Copy link to clipboard 
Print this post

  scruss said  They're only 268 K. We've got ~2 MB to play with, and we can store MMBasic programs on SD card

That's a lot to waste for just about every program. It would reduce every flash slot (*). No thanks!!

Put it in a CSUB if you need it badly and to be fast.

edit: (*) As there are 5 slots I suppose each would reduce by 50+K, i.e. to roughly HALF of their current size.

John
Edited 2023-01-08 00:43 by JohnS
 
scruss
Regular Member

Joined: 20/09/2021
Location: Canada
Posts: 83
Posted: 08:05pm 07 Jan 2023
Copy link to clipboard 
Print this post

  JohnS said  
  scruss said  They're only 268 K. We've got ~2 MB to play with, and we can store MMBasic programs on SD card

That's a lot to waste for just about every program. It would reduce every flash slot (*)

Not every system uses flash slots. But we're not going to agree on this ever by the sound of things
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024