Jump to content

Photo

TI 99/4A Speech Synth Browser/Editor Thingy


7 replies to this topic

#1 pixelpedant OFFLINE  

pixelpedant

    Star Raider

  • 62 posts
  • Location:Canada

Posted Tue Jun 19, 2018 7:21 PM

Hey folks.  I've been toying around with TI 99/4A speech synth lately, and decided it would be fun to write a TI LPC speech pattern exploration and editing app in the spirit of the venerable Speecoder, but for use on modern PC, and with some more comprehensive and user friendly spreadsheet-style editing options.  At this point, I figure it's worth sharing, in case anyone else wants to poke around a few speech patterns, or mess around with modifying/editing/combining them, using this tool.  It's a quick way to, e.g., get your TI 99/4A talking like Max Headroom, if you feel like it.  Or to subsample a pattern to make new words.  Or to combine portions of two patterns.  You can see what the app looks like here:

 

FVl3tbN.png

 

The app is a Windows executable and comes packaged with the standard speech synth vocabulary listed in the Extended BASIC manual (consisting of 370 words, it appears to me).  Use on Linux will be achievable via included source on your Python installation of choice, provided necessary module dependencies. 

 

Included patterns were fetched via XB CALL SPGET on real iron, and transferred via Ti99Hdx.  As a consequence, they're in individual V9T9 format files, and the program will save in this format as well.  Sound patterns are saved in 255 byte fixed length records. This does impose a (255 byte) limitation on output.  However, no built-in vocabulary (not even "THAT IS INCORRECT") exceeds this limit, as the pattern duration itself must be recorded as a one byte value.  So this is in keeping with normal (and unavoidable) parameters.  

 

The program does not in all respects enforce the entry of, or modifications resulting in, valid pattern data.  Warnings are provided for values which are out of bounds for a field (e.g., "16" would be an invalid value for a frame's "Energy" nibble), but the user is not, for example, prevented from failing to terminate a pattern with the value '15' (i.e., 1111) as will be found in all provided patterns.  
 
Note that simple Copy/Paste functionality is implemented using the clipboard, so patterns can be copied and pasted between two separate instances of the program, when combining patterns (or within a single instance, of course).  This is particularly important when creating new sounds from phonetic components. 
 
BE ADVISED: Results when feeding these patterns to emulators are likely to be inconsistent.  But you should have good luck (as I have) on real iron.  
 
UPDATES:
06/24/2018 - Many bugfixes, cleaned up source somewhat, added source to package,
07/02/2018 - More bugfixes, overhaul of decoding process and cleanup of source. 
07/05/2018 - Ported to QT5.  Packaging moved to cx_Freeze.  High-DPI scaling implemented.
 
TO DO:
- GUI pitch adjustment control for selected ranges?
- GUI energy adjustment control for selected ranges?
 
The app may be found here:
 
Current Version: v1.3:
 
Attached File  TI-Synth-Editor-v1.3.zip   32.04MB   10 downloads
 
Previous Version: v1.2:
 
Attached File  TI-Synth-Editor.zip   15.2MB   7 downloads
 
Previous Version: v1.1:
 
Attached File  TI-Synth-Editor.zip   15.2MB   11 downloads
 
 
 

 

Edited by pixelpedant, Fri Jul 20, 2018 10:24 AM.


#2 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • 239 posts
  • RUN "CS1"

Posted Tue Jun 19, 2018 7:51 PM

Only other improvement i would like to see is a open-source linux version.

Thanks for this pixelpedant!



#3 pixelpedant OFFLINE  

pixelpedant

    Star Raider

  • Topic Starter
  • 62 posts
  • Location:Canada

Posted Tue Jun 19, 2018 8:12 PM

Yeah, I would have included the code, but it's still a complete bloody mess as a result of the project just kind of having begun as "hey, I bet it'd be fun to decode a speech pattern" and grown willy-nilly from there in all sorts of random directions until it ended up as this.  Now that all the basic problems are solved, I'll likely clean it up - maybe do a full rewrite - and release the code once there's something sufficiently readable that it might be of use to someone.  



#4 HOME AUTOMATION OFFLINE  

HOME AUTOMATION

    Moonsweeper

  • 307 posts
  • Location:"trapped in interspace"

Posted Tue Jun 19, 2018 8:30 PM

Can your software find where (what addresses) exactly in a module the individual words or phrases are located. Do you know a simple method to accomplish this?



#5 pixelpedant OFFLINE  

pixelpedant

    Star Raider

  • Topic Starter
  • 62 posts
  • Location:Canada

Posted Tue Jun 19, 2018 9:31 PM

Can your software find where (what addresses) exactly in a module the individual words or phrases are located. Do you know a simple method to accomplish this?

 

Nah, but you could certainly do a probabilistic analysis which returns likely candidates I figure, based on the fairly consistent structure of the speech samples.  Always must begin with "01100000 00000000 ????????? ???0????" for example (where the first unknown byte is pattern length, and in the next byte, energy is unknown, but the repeat bit must be zero).



#6 mizapf OFFLINE  

mizapf

    River Patroller

  • 3,505 posts
  • Location:Germany

Posted Tue Jun 19, 2018 11:50 PM

Only other improvement i would like to see is a open-source linux version.
Thanks for this pixelpedant!


Or at least a Java version, so it runs across platforms (as I did for TIImageTool).

#7 pixelpedant OFFLINE  

pixelpedant

    Star Raider

  • Topic Starter
  • 62 posts
  • Location:Canada

Posted Sun Jun 24, 2018 6:35 PM

UPDATES:

 

The package linked in the initial post has now been updated to include source.  Source has been cleaned up somewhat.  A lot of bugfixes have been implemented. 

 

If anyone would like to see an example of what custom speech made by phonetic recombination and pitch/energy editing using this tool looks like, you can see an example in this video here

 

If you'd prefer not to watch the whole video, a demo of the TI speaking an invented phrase with custom intonation created using the tool ("Hehehehe...wipeout!") can be seen precisely here.


Edited by pixelpedant, Sun Jun 24, 2018 6:39 PM.


#8 acadiel OFFLINE  

acadiel

    Stargunner

  • 1,479 posts
  • www.hexbus.com
  • Location:USA

Posted Fri Jul 20, 2018 9:18 AM

Nice job!






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users