Jump to content
patrick99e99

Trying to generate some TI99 speech

Recommended Posts

Hi everyone,

 

I am trying to convert some 8000khz wav files to glorious TI99 speech, and I've been following this turtorial:

 

I'm running windows XP professional with VMWare fusion, and I've managed to *install* QBoxPro, as well as copied over the BWCC.DLL dependency. By install-- I mean when I originally ran the program, it told me that it depended on other archived files and gave me the option to unarchive everything-- so I did.. Then once running the exe, it complained the BWCC.DLL file was missing, so I copied it into the qboxpro directory and now when I launch the QBoxPro application, it gives me a warning "No coding table found in project".

 

I've inspected the config file, and it clearly shows:

 

[Coding_Tables]

coding_table0=d6

coding_table1=5220

 

And in my QBoxPro directory, I see the files "D6RAD.COD" and "QV5220.COD"... So I don't understand why I am getting this warning?

 

The readme file mentions that there is some sort of "qbprins.exe" installer, but that file does not seem to be anywhere in the zip file I downloaded from your resources.

 

Can anyone help me out with getting this up and running on my machine?

 

Thanks!

 

-patrick

Edited by patrick99e99
  • Like 1

Share this post


Link to post
Share on other sites

Oh my God... this could be the method used for the Parsec's Female Voice ? :-o :-o :-o

Edited by ti99userclub

Share this post


Link to post
Share on other sites

yes, sure it's not the same method :) ... but may be the same metodology with other programs or hardware ? ...

i am curious, how the Parsec's female voice was done ?

Share this post


Link to post
Share on other sites

i am curious, how the Parsec's female voice was done ?

 

With a TI portable speech lab, almost certainly.

 

I think I remember now, they set up a recording studio for her. I can't remember the woman's name now. Someone said that she became very good at it, and more or less wrote her own cheques at Texas Instruments!

Edited by Willsy
  • Like 2

Share this post


Link to post
Share on other sites

I'm the author of that video on youtube. I don't recall having that problem. The only thing I remember is that the program expected to be installed off of root on the C drive.

 

I'm not even sure if I have it installed anymore, as I now use Win7. I'll check.

Share this post


Link to post
Share on other sites

QBoxPro is Windows 3.1 or later (April 6, 1992).

 

I have Windows 3.11 in a VM. I have been meaning to give this a try since Mark was kind enough to put up the tutorial and accompanying information.

Share this post


Link to post
Share on other sites

I'm the author of that video on youtube. I don't recall having that problem. The only thing I remember is that the program expected to be installed off of root on the C drive.

 

I'm not even sure if I have it installed anymore, as I now use Win7. I'll check.

 

Yeah, I suspect this is the problem-- there is no installer in the QBoxPro zip file:

http://ftp.whtech.com/pc%20utilities/qboxpro.zip

 

I see that there is a install.log file which suspects this had already been installed prior to archival.

Share this post


Link to post
Share on other sites

I have Windows 3.11 in a VM. I have been meaning to give this a try since Mark was kind enough to put up the tutorial and accompanying information.

Talk about a blast from the past. About 3 years ago I got rid of them rest of my 3.5" floppy disks - and in that collection was MS DOS 6.0 and Windows for Workgroups 3.11.

 

I do have XP on a VM now (probably the best place for it, since support for that is ending in April ;)).

Share this post


Link to post
Share on other sites

 

Yeah, I suspect this is the problem-- there is no installer in the QBoxPro zip file:

http://ftp.whtech.com/pc%20utilities/qboxpro.zip

 

I see that there is a install.log file which suspects this had already been installed prior to archival.

 

Exactly. The only thing I can think of is that it needs to be installed in C:\QBOX\

 

Here's the contents of a read-me I have that may shed a little more light on it.

 

 

This is a copy of the emails replies from Larry Brantingham of Quadravox... there is a lot of good history in these emails, and I wished to preserve it...

 

===========================

 

[ I asked if they had a program to convert WAVe format files to LPC. I mis-identified the TMC0285 (TMS5200) as a TMC0610. ]

 

Hi Ben,

 

We might be able to help, but we'll need to see what coding/decoding table you need. I don't recall a TMC0610, though it might have come about after I left CPD in 1980. The TMS5200 was the Consumer group's TMC0285 - the only difference was the name. The more common S/C part was the TMS5220 and it had a slightly different coding table than the original. The bit allocations were the same and you can swap data, but it sounds a bit odd. There was also the original Speak & Spell TMC0280/281, the TMS5100 and the TMS5110. These parts had a different interface; if the one you have is set up for parallel transfers, then it's likely a 5220 derivative or the very rare bare player that was done in the early '80's. I wasn't aware any of those were ever sold. Do you know where the chip came from, or the era?

 

When we started Quadravox, our first product (not a roaring success...) was a development system for TI LPC synthesizers, aimed mainly at the 50P11. Michel later did another pass for our last chip at TI, which is amazingly still alive as a Sensory Inc. device, and I believe one of the requirements for the tools was compatibility with the old 5220 coding. I've found the old QBoxPro executable software. It requires the P11 programmer to be attached, but I found the schematic and faked it; if you put the attached qbox.ini into the Windows directory after the installation, it will think it's already found the port. There are no options for coding, but I found a ".cod" file that is a template for tables - give it the method and parameter ranges and it will make one internal to the program. That would probably be only an approximation, but it might be close enough if I can find the appropriate table's coefficient ranges.

 

I was digging around in old records (for tax, not technical reasons!) and found some very early speech chip data which probably includes the coding tables. For that matter, I think we put them into the patents, too, so the information to get the boundaries right should be available, though in storage in a nearby town.

 

I've attached an install package for QboxPro. To use the .ini file I sent you'll need to let it install in the default directory. This old code has more than a few quirks - e.g. File/Exit instead of the built-in form close box. It codes speech but I'm not sure where it puts it so as-is it may not be very useful. I'll see what Michel remembers tomorrow.

 

Best regards,

Larry

 

------------------------

 

[ I thanked Larry for the software, and told him of the Echo card for the Apple II. I had come across some LPC strings from this board, and they were TI compatible... I wrote about this some time ago on the OLUG. Most of the strings were too long for XB, but not assembly. Turns out the first software he sent me did not run - it still wanted the hardware plugged in, even though he said he'd edited the ini file to fix that. Ok, as he sent something better... ]

 

Hi Ben,

 

We've found more stuff to send you. Michel had a different version that uses fixed value coding tables, and he showed me how to reach the output formatting (via concatenations/format), so now all that's missing is the original 5200/0285 coding table, which I am pretty sure is in a box in storage. Our storage area is in another town near here, but it may be a couple of days before I get over there. You'll have to make a copy of the TMS5220.cod file (ascii text) and manually enter the 0285 values, but it should not be difficult, just tedious. Better yet, put the new values into the defunct "D6" table file and retain the 5220 as an option.

 

I didn't even know about the Echo product. If it works with the 0285, it must be a very early external application of the 5200. The first external sale was for the Byron Talking Typewriter toy (5100) and it wasn't too long afterwards that S/C moved to the 5220, so there wasn't much of a window for 5200 sales. However, at the time I was living in Nice, France, so I wasn't paying too much attention! I used to have lots of modules for the home computer, but I gave them all away some years ago. The speech group at TI got kicked around for some years, but finally disappeared entirely a year or two ago (which is why Sensory owns the "Ronco" now), so it's very unlikely anyone there has any of the old data. Still, what you want is to create new data, so on to that...

 

I need to get a DLL from Michel and then I'll send you the better version. You can at least play around with it to generate some speech until we get the right tables. The original coding didn't have any particular problems, but the tables were based on statistics from our first voice talent and he had an unusually deep voice, which skewed the coefficients as well as the pitch table. We found the distribution wasn't very good for general usage, so when S/C started selling the parts they wanted to tweak the tables.

 

The version I'm sending doesn't look very different, but I think it's a much better starting point. It even does voice modifications for fun - like converting voiced to unvoiced so you can make Darth Vader....

 

I'll send it along later today, then the coding tables the next time I'm in beautiful downtown Rowlett.

 

BRs,

Larry

 

-------------------------

 

[ I sent an email about the problem with the original code just before I read this one. ]

 

Hi Ben,

 

OK - here it is. This is just a zip of the install directory plus the sample subdirectory. I've included the qboxpro.ini file, but you will have to copy this to the windows directory or it will complain about not having a coding table in the project. The dll can be left in this directory. Since this is not a sophisticated install package, you'll have to make a directory in the root called qbox and unzip this file, using subdirectory names, into that one. That way all the references will work.

When you format data, use the LPC10, 4UV option to match the 0285. I haven't actually looked at the formatted data - I think the 52xx just accepted the packed data even though it crossed byte boundaries, but it's been a long time since I saw the part. I designed the original 0280/5100, but the home computer group guys added the fifo interface to make the 0285.

 

When I find the right coding tables, I'll pass them on, but you should be able to get it squeaking with this. You will definitely want to do some

 

WARNING: The remainder of this message has not been transferred.

[ rest of message missing, but that was about the end of the text ]

 

----------------------------

 

[ I asked about the output files from the application ]

 

Looks like this one arrived before the other, so no problem. I haven't used this stuff in ages, and for that matter, neither has Michel, so I hope I get this right. There is a help file, but I don't know how good it is.

 

The *.w* files are wav files, created so that you can hear the results. They're generated by "an exact simulation" so it says. I have vague recollections of writing that part. In any event, they're necessary for editing the data. WLP is (I think) the raw LPC, WCL is the coded LPC (quantized by the coding table), WXL is the compressed, coded data (if successive frames are near enough, the coefficient data is just repeated frame-to-frame to save data), and WHE is the modified "helium" speech.

 

To get the formatted data, you have to ensure that all the files you want are included in a concatenation. Use Edit/Concatenations to get to that dialog. If there are no concatenations already, use add/concatenation to create at least one. Select a phrase in the main window, select a concatenation in the concatenation dialog, and say add/phrase to add the phrase to the concatenation. There are some options, but I'm not sure how many will work with the 0285. The voicing might, assuming the modification is made to the data itself, but these were for a version of the 50P11 synthesis routine we did specifically to offer sound modifications.

 

When you have everything included somewhere (yes, it's tedious..), then inside the concatenation window, use Format/LPC10, 4UV to create the output as a binary file. The listing file will show the coded levels used for each frame, so if for some reason the binary file isn't usable (or the flipped byte version), you could write a routine to read these and pack the data as needed. I really don't recall enough about the 52xx to remember in what order it takes the data, but I'd be willing to bet that just feeding it either the flipped or unflipped binary file byte-by-byte will work. It wasn't anything tricky.

 

It is important to realize that old pitch-excited LPC made a lot of mistakes, usually in pitch and voicing decisions. For that reason, editing of the data was always essential to get decent sound. If you select a file and press "edit", you'll get the parameter editor. The editor allows you to change pitch (and voicing - 0 is unvoiced), gain, and all 10 coefficients. Most of the time all you will need or want to do is to patch pitch (it sometimes is doubled) or voicing, especially at the boundaries. Tweaking coefficients isn't something I'd want to do for fun, but sometimes it's useful, especially if you want to copy in a good sound from somewhere else in the word. Don't worry - it isn't that bad often.

 

You can optimize the pitch tracking by setting the pitch range during the original analysis. The defaults are ok for general use, but if you're using a deep or high pitched voice, it helps to squeeze the range. BTW, though it may not be politically correct, it happens to be true that low-pitched voices work better with LPC analysis. Since the only data available to estimate the resonances is the amplitude of the pitch harmonics, having a low pitch and therefore many harmonics makes the math work better. With high-pitched voices and few harmonics, the analysis is often fooled into seeing a harmonic as the resonance of the vocal tract.

 

Good luck. I'll pass on the right coding table when I find it.

 

BRs,

Larry

 

----------------------------

 

[ I made some comments about my experience with converting some wave files, and how the original had to be very clean to synthesize - with no background noise or music... And the help file has a walk-through tutorial inside of it, very helpful... ]

 

You're right, and some people underestimate the importance of a having a clean file to begin with. For LPC you don't want any reverb or equalization - that just confuses the analysis. We used to have a tough time getting recording engineers to stop jazzing up the signal like they were used to!

Editing can be tedious, although after a while you begin to see what's needed. You will need files at 8kHz sampling rate and there's a downsampling function available in the tool, but any modern recorder (including the Windows Recorder) will do it too.

 

Don't be surprised if the speech sounds odd - I remember thinking that swapping one of the directions made it sound Australian (or not - I might have been to the pub with Raj and it just sounded that way). When I can get you the correct tables it should sound more natural.

 

BRs,

Larry

 

--------------------

 

[ I finally got it to work. Found the *.sfm file (under the Project name) and found it to be compatible with the assembler, IF you shorten the BYTE lines so it won't truncate the very last nybble of the last byte on the line. Also, a *.bin file with the project name that contains the binary, directly usable on the TI in Basic, except it may be longer than 255 bytes, the Basic string limitation. Found the 5220 manual says to end Speak External by an all "ones" nybble, so I guess ending the speech with ">Fx" should do it - yet to test. Also, the synthesizer is supposed to reset itself upon buffer underflow as well ]

 

Great!

 

We never had a need to try it - the 5220 was passe if not dead by the time we were making our little widget.

 

Does it sound like the simulation or slightly different (maybe more hollow or more muffled?) If the coding table is wrong, you should hear some difference. I wasn't sure what you meant about a limit of 255 bytes. I just tried a file of about 10 seconds and created a binary output 2833 bytes long covering 560 frames. Is this a limitation of the 5220?

 

In any event, I'll be nosing around this weekend for the original 5200 tables and will let you know what I find.

 

BRs,

Larry

 

-------------------

 

[ I mentioned that sound recorder couldn't do 10khz ]

 

There's not much benefit in going to 10kHz. We originally designed the chips for that, but decided that using 10 coefficients to model 4kHz bandwidth was a better compromise. The rule of thumb of the day was two per kHz (to get the formants) plus two for the overall shape, and 10 / 4 fits. The 50P11 could do LPC12, so we ran it at 10kHz sampling rate.

 

Speaking of editing - there was only one person (OK, maybe two) who worked on the S&S who ever got rich from it and she did it as an independent speech editor. It was seen as "magic" so she pretty much wrote her own checks. Ironically, she has a PhD (in something unrelated), which might have helped. A big part of the art was to push that magical aura. I had an editor in my Nice group who would take customer suggestions, busy himself with tweaks on the screen, then play exactly the same file again. Since they thought they'd had an influence, the customers went away happy!

 

Michel wrote QBoxPro to go with a P11 programmer as a kit - we sold the whole thing for $90 when TI had been selling PSL analysis tools for $10k! Too bad nobody seemed to care by the time we got started - I think we sold 13 systems total....

 

I understand now what you meant about the size limit - I had thought you meant something in the chip itself. If I can find a chip spec in those old papers I'll make a copy for you.

 

BRs,

Larry

 

-------------------

 

Hi Ben,

Well, I didn't find the coding tables in the old files, though ironically I found the 5220 tables. There are a couple other places I can dig into - I'll let you know what I find.

 

BRs.

Larry

 

--------------------

 

[ As he couldn't find the 5200 table, I told him that basically the way it sounded in their software, it sounded the same (or better) on the TI.

 

I asked him about the status of the software... and about his history with LPC...]

 

Hi Ben,

 

OK - good thing; at this point the best I'm likely to find are tables for the 0280/5100 and the pitch table (I think) is half the size, so you would still be guessing a little. I'll keep my eyes open, though.

 

You can distribute the software as long as no one expects support. We can barely remember it, let alone support it!

 

To be honest, Richard, Gene and I got assigned to the "Spelling Bee" (before it became Speak & Spell) mainly because we we didn't have enough seniority to grab onto the hot projects.. Paul Breedlove had the insight to connect some obscure speech research in TI's Central Research Labs with the particular problem of teaching spelling in English, and he got internal seed money to get started. Richard Wiggins had just arrived from BBN to CRL, Gene Frantz was a project manager between projects, and I'd just finished off my last processor design, so we got elected to work on what, at the time, was considered to be a long-shot. I had a design group by then, so I was able to pass off the ROM and the control processor tweaks to a couple of other guys, but it was still a pretty small group. I designed most of the 0280/5100 in a laundromat to get away from the noise in the office! We didn't have software simulations in '77 (we could check a few circuit things - by carrying a big deck of cards to the computer center and waiting a day), so designing the thing at the laundry worked just as well as doing it at the office.

 

Have fun - if I can find more info I'll send it along.

 

BRs,

Larry

 

---------------

 

I will pass the zip file along to WHT...

 

I don't have a clue how this will compare to what others have found...

 

But I've never found anyone else willing to share!

 

Merry Christmas!

 

 

NB: Name of correspondent removed as I believe he does not frequent this forum.

Share this post


Link to post
Share on other sites

I could not make QBox work correctly in Windows XP. But, I installed Windows 3.11 in DOSBox and have it running in there, not even any need for a VM. :)

Share this post


Link to post
Share on other sites

I could not make QBox work correctly in Windows XP. But, I installed Windows 3.11 in DOSBox and have it running in there, not even any need for a VM. :)

 

Hrmmmm... makes me wonder if I could install Windows 3.11 in DOSBox on my TouchPad... of course, that would have to be after I get the battery replaced.

Share this post


Link to post
Share on other sites

I had it running on my old 3.2 P4-HT AGP system with Windows XP Pro. Also had VDMsound installed on the system (XP32 only) which may of helped. Converted a couple of sound clips from the Simspons and South Park with it using Mark's tutorial.

Share this post


Link to post
Share on other sites

 

Exactly. The only thing I can think of is that it needs to be installed in C:\QBOX\

 

Here's the contents of a read-me I have that may shed a little more light on it.

 

 

Sigh... I just spent about an hour trying to get it working, with no success. I moved everything to C:\QBOX... It still complains that there is no coding table. When I try to open one of the samplepro projects "sample.spf", it says "Error - Could Not Find Kit Synthesis File".

 

I tried experimenting with changing the paths in the .ini file, but nothing seems to make a difference.

 

I am currently in the process of creating a game, and want to honor the old Atari system 1 & 2 by having similar TI speech in my game-- so it's really important that I try to get this resolved and working. Ideally, I'd rather not have to resort to buying a junky 286/386 w/ windows 3.1 off ebay just for this project-- I'd rather handle this via a VM if possible. I remember trying to get windows 3.1 working on VMWare a few years ago, and I could not get audio to work at all.

 

Anyone have any suggestions? Or anyone willing to convert a bunch of 8khz wav files for me?

Share this post


Link to post
Share on other sites

I checked on my Win7 system and I'm getting exactly the same symptoms as you. :_(

 

I have an XP netbook that I will try it on. If I can get it to run I'll convert your files for you with pleasure.

 

Mark

Share this post


Link to post
Share on other sites

I do have XP on a VM now (probably the best place for it, since support for that is ending in April ;)).

 

I will run XP forever, with *NO* desire to 'DOWNgrade' to 7 or 8 (yuck). Here is the link for XP support after 2014. http://redmondmag.com/articles/2013/08/21/arkoon-windows-xp-security.aspx

 

I bought a (really nice and fast) ASUS laptop i7 quad hyperthread that came with 8 on it, Wiped the HD clean, and installed XP. It works FLAWLESSLY!

 

Don't let M$ or anyone try to scare you about security, viruses, or anything. I would MUCH rather run a tested, tried, and true OS rather than some new, buggy crap that almost looks like it belongs on a phone, but is easily bested in every way by Android on my HTC One, and Sammy Galaxy S4.

 

I don't want dumbed down goofy looking tiles on my phone or computer.

 

Now, that that is out of the way, Back in the day, when I was FORCED to go to a religious school, that had 99/4a's...

 

I don't remember all the details, but it involved Extended BASIC, and the SPGET function. I was still limited to the built-in words, but I found I could chop up the words into pieces.

 

I used the phrase "go to hello", chopped off the end of it, and made it say "go to hell". That was loads of fun, one of my many pranks directed at that school :)

 

-K

Edited by Kyle22
  • Like 1

Share this post


Link to post
Share on other sites

 

 

Now, that that is out of the way, Back in the day, when I was FORCED to go to a religious school, that had 99/4a's...

 

 

 

It sounds like the school found the light :D

Share this post


Link to post
Share on other sites

any luck?

Sorry I haven't had a chance to try it. I'm away from home until tomorrow. I'll give it a shot then.

Share this post


Link to post
Share on other sites

I tried it today on my netbook. Exactly the same. Really strange. I'll keep trying. The help file says it means that it can't find the two .cod files, but they are clearly right there. Strange. If I can no longer run QBOX I'll be distraught.

 

Does anyone have win 3.1 in some format that I could try?

Share this post


Link to post
Share on other sites

Just looking at the first post in this thread... I just wanted to point out: the directory that the files live in should be called qbox (not qboxpro) and it must be off of the C drive root. Examining the executable in notepad++ I can see lots of hard-coded paths.

Share this post


Link to post
Share on other sites

I tried it today on my netbook. Exactly the same. Really strange. I'll keep trying. The help file says it means that it can't find the two .cod files, but they are clearly right there. Strange. If I can no longer run QBOX I'll be distraught.

 

Does anyone have win 3.1 in some format that I could try?

Just a thought ... have you tried adding the C:\Qbox directory to the Path environment variable?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...