Recreate the Votrax Type & Talk?

Modding and Technical Issues

Moderator: Moderators

bills442
Vic 20 Amateur
Posts: 69
Joined: Mon Aug 07, 2006 5:12 pm

Post by bills442 »

cool! now we just need a talking castle wolfenstein
User avatar
orion70
VICtalian
Posts: 4342
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Post by orion70 »

Sounds great, though I can't understand how this result was accomplished. Can you explain it in simple steps to a complete hardware ingnorant? Also, how can it be that SA adventures don't talk? Thanks in advance :oops:
User avatar
rmelick
Vic 20 Hobbyist
Posts: 134
Joined: Sat Mar 26, 2005 7:29 pm
Website: http://www.geocities.ws/cbm/
Location: Bay Area
Occupation: IT

theory of operation

Post by rmelick »

orion70 wrote:Sounds great, though I can't understand how this result was accomplished. Can you explain it in simple steps to a complete hardware ingnorant? Also, how can it be that SA adventures don't talk? Thanks in advance :oops:
I'm a budding hardware engineer myself.  The theory behind the solution is that the communication is only one way.  Vic talks and Pi listens.  For serial communication out of the User Port only two wires are required: CB2 and GROUND.  The CB2 line flutters between +5v and 0v as bits of data flow down the wire one after another.  The rate is fixed at 1200 bits per second.  We set that rate when we open the channel:  OPEN2,2,1,CHR$(8).

For Pi to listen for the serial communication on its GPIO port only two wires are required: RXD and GROUND.  Pi looks for oscillation between +3v and 0v on the RXD pin to identify each bit.  The Pi has to know to listen at the same rate as the bits are flowing in, 1200 bits per second, so that it can reconstruct the data.  The data is framed as 8 data bits separated by 1 stop bit. So long as the sender and receiver know how the data is packaged, and the rate it flowing, the communication can happen.

The problem is the voltages, because we don't want to fry Pi by screaming at it with +5v.  It is designed for +3v instead.  That is where the line level converter comes in.  It lowers the line voltage out of Vic from +5v down to +3v by offering a step-down transformer between its RXI pin on the high voltage side and its RXO pin on its low voltage side.  (It could also offer the service of a step-up transformer for data flowing the other direction, but we don't need it.)

That's about it on the hardware.  All of the rest is software.
Rick
User avatar
rmelick
Vic 20 Hobbyist
Posts: 134
Joined: Sat Mar 26, 2005 7:29 pm
Website: http://www.geocities.ws/cbm/
Location: Bay Area
Occupation: IT

Post by rmelick »

orion70 wrote:Sounds great, though I can't understand how this result was accomplished. Can you explain it in simple steps to a complete hardware ingnorant? Also, how can it be that SA adventures don't talk? Thanks in advance :oops:
The adventure games don't work because Commodore is sending data preceeded by an escape code or a phoneme delimiter. Festival doesn't know how to resolve them because they were unique to Votrax Type-N-Talk. My hope (wish) was that Commodore had chosen to send only text (printable ASCII characters not preceeded by an escape code or phoneme delimiter).
Rick
User avatar
orion70
VICtalian
Posts: 4342
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Post by orion70 »

Ok Rick, thank you for your explanation. Now I can get most fof the stuff that's going on with your experiments. I'll follow their evolution with interest .
BTW... Will all this ever give a commercial product, i.e. something I will surely buy? :o
User avatar
rmelick
Vic 20 Hobbyist
Posts: 134
Joined: Sat Mar 26, 2005 7:29 pm
Website: http://www.geocities.ws/cbm/
Location: Bay Area
Occupation: IT

Post by rmelick »

rmelick wrote:
orion70 wrote:Sounds great, though I can't understand how this result was accomplished. Can you explain it in simple steps to a complete hardware ingnorant? Also, how can it be that SA adventures don't talk? Thanks in advance :oops:
The adventure games don't work because Commodore is sending data preceeded by an escape code or a phoneme delimiter. Festival doesn't know how to resolve them because they were unique to Votrax Type-N-Talk. My hope (wish) was that Commodore had chosen to send only text (printable ASCII characters not preceeded by an escape code or phoneme delimiter).
Of course, the Festival speech system is highly extensible. Its got an embedded Scheme interpreter, API's and all kinds of other cool stuff to define new modules and work with language. I put a link to the manual on the web page listed higher up in the thread. Check it out to see what I mean.

So it is theoretically possible that if someone invested enough time in understanding their framework, the Type-N-Talk might be able to be re-created in software with lookup tables for the escape codes and phonemes to be translated.

There is no info on the web to suggest this has been done alredy, but we could reach out to them and see if they know anything. It might be rather trivial to someone well versed in their system. Research and innovation is always about what is next rather than what once was, so maybe nobody has thought about it.

An argument could be made that the effort is worthwhile because it helps to preserve historical software artifacts. The Computer History museum in Mountain View has a number of volunteers and supporters in Computer Science and research fields, such as Gordon Bell, who might me inclined to take up the challenge.
Rick
User avatar
rmelick
Vic 20 Hobbyist
Posts: 134
Joined: Sat Mar 26, 2005 7:29 pm
Website: http://www.geocities.ws/cbm/
Location: Bay Area
Occupation: IT

Post by rmelick »

orion70 wrote:Ok Rick, thank you for your explanation. Now I can get most fof the stuff that's going on with your experiments. I'll follow their evolution with interest .
BTW... Will all this ever give a commercial product, i.e. something I will surely buy? :o
I've ordered some parts today for a prototype. I'm striving for a simple, classic white, all-in-one design, with built-in speaker and volume control, that attaches directly to the User Port on the VIC/64/128. Driven by the $25 Raspberry Pi, it needs to also be reliable, upgradable and open.
Rick
User avatar
orion70
VICtalian
Posts: 4342
Joined: Thu Feb 02, 2006 4:45 am
Location: Piacenza, Italy
Occupation: Biologist

Post by orion70 »

Excellent! I already have a pi... :wink:
RJBowman
Vic 20 Enthusiast
Posts: 198
Joined: Tue Oct 25, 2011 7:50 pm

Post by RJBowman »

Why not just digitize the sounds from the original device, save them to an SD card, and build a device with a microcontroller that emulates the original unit using the digitized samples?
Z0rb
Vic 20 Amateur
Posts: 41
Joined: Mon Apr 29, 2013 5:45 pm

Got the Speakjet hooked up to the Vic

Post by Z0rb »

Hello All,

I figure I would throw my hat into the Type N Talk ring and see what I could get working.

Below is a small you tube video I just threw together that shows the basic setup.

Really I am using an Arduino as a baud rate converter to pass serial data from the Vic to the text to speech chip at 9600 baud. I might alter this programming a bit to strip out any crazy characters that the Scott Adams games might send.

The signal comes out of the Arduino and into the TTS chip, this chip runs the text through one of its six hundred encoding formulas and then provides the speakjet with the sound information to form words.

The output of the speakjet then goes into a small lm386 amplifier hooked up to a speaker.

This is all in prototype mode and I need to work on operating everything from one power supply and add some filtering. I run into an issue from time to time where the speakjet will reset itself, so I would like to create a stable reset circuit.

Please watch this video and comment, it's all a work in progress.

http://m.youtube.com/watch?v=dcm0nkXBqPQ

I am waiting on getting a Scott Adams cart in the mail.

Thank You
Z0rb
Vic 20 Amateur
Posts: 41
Joined: Mon Apr 29, 2013 5:45 pm

Post by Z0rb »

Just got my Adventure Land cart in the mail. I see a bunch of garbage coming out of the user-port when I enable speech in the game.

Can anyone out there confirm the come port settings for the games. I read 1200, but is it 1200 8,N,1?

Also the games are designed for text to speech correct? In that I mean it will send legible words or is it sending phonemes?

Please advise
Thanks
User avatar
rmelick
Vic 20 Hobbyist
Posts: 134
Joined: Sat Mar 26, 2005 7:29 pm
Website: http://www.geocities.ws/cbm/
Location: Bay Area
Occupation: IT

Post by rmelick »

Z0rbVIC wrote:Just got my Adventure Land cart in the mail. I see a bunch of garbage coming out of the user-port when I enable speech in the game.

Can anyone out there confirm the come port settings for the games. I read 1200, but is it 1200 8,N,1?

Also the games are designed for text to speech correct? In that I mean it will send legible words or is it sending phonemes?

Please advise
Thanks
1200,N,8,1 is correct. There is more there than printable ASCII. Escape and phoneme codes are made more complicated by PETSCII.
Rick
User avatar
rmelick
Vic 20 Hobbyist
Posts: 134
Joined: Sat Mar 26, 2005 7:29 pm
Website: http://www.geocities.ws/cbm/
Location: Bay Area
Occupation: IT

Re: Got the Speakjet hooked up to the Vic

Post by rmelick »

Z0rbVIC wrote: Please watch this video and comment, it's all a work in progress.

http://m.youtube.com/watch?v=dcm0nkXBqPQ

I am waiting on getting a Scott Adams cart in the mail.

Thank You
Awesome work! I'm excited by your progress and inspired by your skills. Good job!! (Fingers crossed you can chip away at the adventure game issues.)
Rick
Z0rb
Vic 20 Amateur
Posts: 41
Joined: Mon Apr 29, 2013 5:45 pm

Post by Z0rb »

rmelick wrote:
1200,N,8,1 is correct. There is more there than printable ASCII. Escape and phoneme codes are made more complicated by PETSCII.
Hmmm I suppose I can try and get the Arduino to take whatever is coming out of the user port and then display the ASCII decimal values on my serial monitor.

I read the user manual for the Votrax Type N Talk and it lists all the Esc codes and phoneme values. If I can verify that the data looks the same as what is stated in the manual I suppose I can create a lookup table in the Arduino to convert Votrax to Speakjet phonemes.

Also I read that phoneme delimiters are started with a "~" and end with a "?", I was wondering if I searched the ROM of a Scott Adams cartridge for these patterns if I could find a block of data on the ROM that has all the speech data it sends?

Just a thought
Z0rb
Vic 20 Amateur
Posts: 41
Joined: Mon Apr 29, 2013 5:45 pm

Post by Z0rb »

rmelick wrote:1200,N,8,1 is correct. There is more there than printable ASCII. Escape and phoneme codes are made more complicated by PETSCII.
Hello All,

I combed through a copy of the ROM for Pirate's Cove and could not find any standard use of Votrax phoneme delimiters( "~" and "?"). My hex viewer counted twenty-four "?"s and only three "~"s. So I was not able to determine the use of phonemes in the ROM. I managed to find reference to the addresses 029D (RS-232 Xmit Pointer) and 0294 (RS-232 Command Register) but I could not determine any sort of information from these. Does anyone have any suggestions?

I also reprogrammed the Arduino to display all information coming from the user-port at 1200,8,N,1 in decimal values. Once I got a few samples of these I attempted to compare these values to the values in the phoneme chart of the Type N Talk manual which can be found here.

https://sites.google.com/site/analogvoc ... tnt-manual

I could not find anything that lined up properly, I even tried to look at these values in PETSCII using this chart found here. But could not find any sort of correlation.

http://en.wikipedia.org/wiki/PETSCII

Does anyone have the ability to monitor the data coming out of their user-port while running the game Adventure Land? I see consistency in the commands I run in the game with the data coming out of the port but I would like to know if these are consistent with another persons attempt. Below are the strings of data in decimal format for four different commands I am running in the game.

Code: Select all

Start screen after tape input
131 16 255 164 27 204 8 72 78 73 200 160 21 239 57 132 113 238 134 125 31 12 116 20 195 33 241 66 132 126 57 11 242 140 140 118 57 247 67 191 166 123 27 252 16 107 33 250 41 134 67 141 173 134 21 10 181 151 251 9 214 22 12 135 89 80 140 9 176 20 107 35 217 98 253 169 133 126 80 204 8 14 57 231 0 192 134 82 216 191 132 208 120 12 242 137 14 160 31 246 111 193 126 41 214 67 190 165 124 80 142 78 72 137 14 98 133 230 14

Go North Command
131 112 200 225 193 217 72 12 140 136 161 28 234 254 224 254

Turn Voice On
193 217 72 12 140 136 161 28 234 254 225 254

Turn Voice Off
241 132 255
Also does anyone know where I can find a detailed list of Type and Talk commands?

Please review and advise
Thank You
Post Reply