![]() |
Forum Index : Microcontroller and PC projects : SPO256 emulation with the PicoMite
Author | Message | ||||
Frank N. Furter Guru ![]() Joined: 28/05/2012 Location: GermanyPosts: 936 |
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: CanadaPosts: 88 |
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: GermanyPosts: 1192 |
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: GermanyPosts: 936 |
@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: CanadaPosts: 88 |
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. 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 KingdomPosts: 3996 |
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: CanadaPosts: 88 |
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 KingdomPosts: 3996 |
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: CanadaPosts: 88 |
Not every system uses flash slots. But we're not going to agree on this ever by the sound of things |
||||
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |