Jump to content
  • entries
    945
  • comments
    4,956
  • views
    1,221,299

Roll over! Sit! Speak!


Nathan Strum

2,645 views

So here's the dillyo (word up)...

 

Since several of you regular readers (yes, you) just so happen to be 2600 programmers (who, I might add, are some of the most talented, creative, and staggeringly intelligent people on the face of the planet), I thought I'd ask for some programming help. And I figured it would be more appropriate to do it here, than clutter up the homebrew forums.

 

Now, by "help" I actually mean "do (most of) the programming for me". But I figured you already saw that coming - what with the staggering intelligence and all. I'm not operating under any delusions here of programming something entirely by myself. But, the goal of this little endeavor is to actually try and help programmers, by doing some drudge work for them (you).

 

Specifically, for the AtariVox.

 

avox-pic.jpg

 

My understanding of this little box is, that it takes quite a bit of trial-and-error to come up with decent sounding voices for it. And I'd like to see more homebrew games use it. It's a cool piece of gear. So I'd like to take a shot at doing some of that trial and error.

 

I've downloaded the AtariVox Programming Guide, the SpeakJet User Manual, and the PhraseALator Dictionary, and have a reasonable understanding of what you need to enter in as far as the voice data goes.

 

What I need, is a template.

 

Basically, a simple chunk of code (if there is such a thing) where I can just drop in the appropriate lines of code to create voices (and other AtariVox sounds), so I can then build a working binary, and load it into my Krokodile Cart, and test them. Then go back, modify and refine them, and eventually pass the results on to homebrew authors to use in their games.

 

Think of it as audible sprite drawing. :)

 

If anyone's interested (or even thinks this is a workable idea) let me know. For that matter, if it's not a workable idea, you should let me know that, too. ;)

33 Comments


Recommended Comments



Nathan, I can send you a USB interface, it works with PhraseALator and will make your task a LOT easier / quicker.

 

BTW when I'm making new words, I start with the standard dictionary and tweak / copy until I have something which sounds right. It's pretty easy, and once you have your custom library it's then just a case of inserting the codes into your program.

Link to comment

That would be cool. But from the info I've been able to find, PhraseALator only runs on Windows. I use a Mac. :ponder:

 

 

(Note: I should point out that the ;) is because PhraseALator only runs on Windows, not because I use a Mac. :D )

Link to comment
Anyone care to write a Mac (or cross-platform) version of it?

It's written in Visual Basic. However, I wouldn't know how to port a VB app to the Mac ?

 

The good news is the USB interface has a Mac driver and will work (like the PC) by creating a virtual comport for a Mac PhraseALator to use.

Link to comment

I wrote a program a while back that tries to use the PhraseAlator dictionary first and a text-to-speech algorithm if the word is not in the dictionary.

 

 

 

It is command-line only, but there is a Mac binary too.

Link to comment

Interesting!

 

It claims to not be able to open the dictionary, but yet it spits out results.

 

...Documents/Downloads/Avox_text2speech/talk2me; exit
Welcome to Darwin!
fv-22-0-189: ...Documents/Downloads/Avox_text2speech/talk2me; exit
Cannot open Phrasealator.Dic for reading
chunky
182 134 144 195 128 6 
chocolate
182 136 195 136 145 130 191 6 
chicken
182 129 195 131 142 6 
fingers
186 129 144 179 151 167 6

Link to comment
Interesting!

 

It claims to not be able to open the dictionary, but yet it spits out results.

 

...Documents/Downloads/Avox_text2speech/talk2me; exit
Welcome to Darwin!
fv-22-0-189: ...Documents/Downloads/Avox_text2speech/talk2me; exit
Cannot open Phrasealator.Dic for reading
chunky
182 134 144 195 128 6 
chocolate
182 136 195 136 145 130 191 6 
chicken
182 129 195 131 142 6 
fingers
186 129 144 179 151 167 6

Yes, it will work without Phrasealator.Dic, but since the words in the dictionary file are hand-optimized and presumably sound better, it would probably be worthwhile to try and get it working right.

 

Are you running it from the terminal app?

Link to comment
Yes, it will work without Phrasealator.Dic, but since the words in the dictionary file are hand-optimized and presumably sound better, it would probably be worthwhile to try and get it working right.

 

Are you running it from the terminal app?

Yep, and the .dic file is in the same directory as talk2me.

Link to comment
Yes, it will work without Phrasealator.Dic, but since the words in the dictionary file are hand-optimized and presumably sound better, it would probably be worthwhile to try and get it working right.

 

Are you running it from the terminal app?

Yep, and the .dic file is in the same directory as talk2me.

Try copying Phrasealator.Dic to your home directory.

Link to comment
Okay, it's done. I'll PM it to you, Nathan, let me know if it works.

Does it use Thomas's latest drivers? If so can you post it?

Link to comment
Okay, it's done. I'll PM it to you, Nathan, let me know if it works.

Hi Bob, thanks!

 

It does indeed work. :)

 

I can see why, if people don't have PhraseALator and a USB interface, they'd be reluctant to add any significant voice support to a game. The trial-and-error required is extremely time-consuming (and admittedly, a little addictive).

 

I probably went through a dozen iterations of a very simple phrase, and it still sounds more like "I Bob, things" than what it should sound like. :)

 

Of course, I'm coming at this from a non-programmer standpoint, so maybe this is actually the easiest part of 2600 programming. :)

 

Anyway... I can see how this is probably the most difficult route to go. Usable, and interesting, but difficult. (At least I was able to figure out how to build a binary using DASM again.) So I guess the next thing for me to do is investigate what it takes to port a Visual Basic app to OS X (I suspect it will involve begging and/or bribing). To be even remotely productive with this, it's going to require a different path. But thanks for the code! That's exactly what I was looking for. I'm sure I'll continue to play around with it, if for no other reason, than to get my 2600 to say some really stupid things. ;)

Link to comment
It does indeed work. :)

Good!

I can see why, if people don't have PhraseALator and a USB interface, they'd be reluctant to add any significant voice support to a game. The trial-and-error required is extremely time-consuming (and admittedly, a little addictive).

 

I probably went through a dozen iterations of a very simple phrase, and it still sounds more like "I Bob, things" than what it should sound like. :)

 

Of course, I'm coming at this from a non-programmer standpoint, so maybe this is actually the easiest part of 2600 programming. :)

 

Anyway... I can see how this is probably the most difficult route to go. Usable, and interesting, but difficult. (At least I was able to figure out how to build a binary using DASM again.) So I guess the next thing for me to do is investigate what it takes to port a Visual Basic app to OS X (I suspect it will involve begging and/or bribing). To be even remotely productive with this, it's going to require a different path. But thanks for the code! That's exactly what I was looking for. I'm sure I'll continue to play around with it, if for no other reason, than to get my 2600 to say some really stupid things. ;)

For these reasons, I've always been impressed by the amount of speech in Man Goes Down.

Link to comment
Okay, it's done. I'll PM it to you, Nathan, let me know if it works.

Does it use Thomas's latest drivers? If so can you post it?

I will post it in my blog soon, I wanted to wait until I was sure it would work before I made it public.

 

And it doesn't use Thomas' updated drivers, I think those are only for the EEPROM access?

Link to comment

Hey Fred,

 

Ran into something odd with text2speech. It doesn't like the words "be" or "bet":

 

be
Invalid code: ast
logout
[Process completed]

 

bet
Invalid code: a
logout
[Process completed]

 

Edit: or "pickle":

 

pickle
Invalid code: d
logout
[Process completed]

 

But... it does like "pickles".

Link to comment
Hey Fred,

 

Ran into something odd with text2speech. It doesn't like the words "be" or "bet":

Found the bug. I posted a fixed version here.

Link to comment
And it doesn't use Thomas' updated drivers, I think those are only for the EEPROM access?

Dunno. I only optimized the i2c.inc file. If that's one of the drivers you need for AtariVox, then the optimized version should work too.

Link to comment

I had started doing that a year ago, but wasn't that impressed with REALbasic. I did, however, use RB to create the fireball direction/speed tables for MM.

 

I'm getting back into hacking Cannonfire after some real-life. If you'd like, I could look into a GUI app for the AtariVox next instead of GUIfying KrokCom. Probably as a Cocoa app as I need to learn that for some stuff coming up next year.

Link to comment

Guest
Add a comment...

×   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...