Discussion:
VecVoice utility
(too old to reply)
Richard Hutchinson
2003-07-20 19:40:34 UTC
Permalink
Boring Sunday, so I made this -


www.vectrex.biz/WordMaker.zip

(unzip and place the folder in C:)


You simply put allophones in the boxes, and press speak to hear the result.

(eg 'robots' = rr1 ow pa2 bb2 aa pa3 tt1 ss)


I thought it might be useful to VecVoice coders, because you can play around
with words before testing on the real thing (i.e. it doesn't require the
hardware).





Richard H.
Richard Hutchinson
2003-07-21 11:58:01 UTC
Permalink
...........one thing I have noticed, is that although the samples were taken
straight from the SPO256, speech sounds better on the hardware (i.e. there's
no 'rough edges' between certain combinations of allophones).

I'm guessing the chip must have some sort of filter to smooth the transition
between allophones.


BTW, you can put an Intellivoice chip (SPO256-12) into the VecVoice.

These are the sample addresses -

$6 - "Mattel Electronics Presents"
$7 - "Zero"
$8 - "One"
$9 - "Two"
$A - "Three"
$B - "Four"
$C - "Five"
$D - "Six"
$E - "Seven"
$F - "Eight"
$10 - "Nine"
$11 - "Ten"
$12 - "Eleven"
$13 - "Twelve"
$14 - "Thirteen"
$15 - "Fourteen"
$16 - "Fifteen"
$17 - "Sixteen"
$18 - "Seventeen"
$19 - "Eighteen"
$1A - "Nineteen"
$1B - "Twenty"
$1C - "Thirty"
$1D - "Forty"
$1E - "Fifty"
$1F - "Sixty"
$20 - "Seventy"
$21 - "Eighty"
$22 - "Ninety"
$23 - "Hundred"
$24 - "Thousand"
$25 - "Teen"
$26 - "Ty"
$27 - "Press"
$28 - "Enter"
$29 - "Or"
$2A - "N"

I'm trying to get hold of an Odyssey 2 'The Voice' chip (SPO256-19) as
apparently, this contains all 64 allophones as well as a large set of
phrases - too cool !



Richard H.
Richard Hutchinson
2003-07-23 14:55:52 UTC
Permalink
I've improved it a bit, by adding more space for allophones + a speed
control (which is in milliseconds).


Overwrite the program in the 'WordMaker' folder with this :-


www.vectrex.biz/VecVoice.exe (32K)



Richard H.
Milan Pollé
2003-07-23 19:45:56 UTC
Permalink
Post by Richard Hutchinson
I've improved it a bit, by adding more space for allophones + a speed
control (which is in milliseconds).
Overwrite the program in the 'WordMaker' folder with this :-
www.vectrex.biz/VecVoice.exe (32K)
Dread, it doesn't work on my laptop with Realtek audiochip :^(

I wonder why that could be.
Richard Hutchinson
2003-07-24 10:24:34 UTC
Permalink
Post by Milan Pollé
Dread, it doesn't work on my laptop with Realtek audiochip :^(
I wonder why that could be.
Hmm...very strange, the software uses the Window's wav player api, so if
your sound card works with Windows, it should also work with the util.




Richard H.
Milan Pollé
2003-07-25 13:10:29 UTC
Permalink
Did you put the 'WordMaker' folder directly in C: ?
I heard something :^)

That was the trick, I had put it in a vectrex emu folder :^)

Very cool utility... off to make it say 'Greetings professor Falken' :^p
Hmmm... wargames... an idea for a Vectrex game ;^)
Milan Pollé
2003-07-25 13:49:29 UTC
Permalink
Post by Milan Pollé
Very cool utility... off to make it say 'Greetings professor Falken' :^p
Hey presto:

gg2 er2 iy tt2 ih ng hh ss
pp rr1 ow ff eh ss ao er1
ff aa ll kk1 eh nn1

Feel free to improve :^)

It might be easier to use if the list was sorted by allophone instead of
command number.
And then a few of those allophone input rows to make longer sentences.

Maybe the possibility of clicking on an allophone in the list to hear it
seperately.

And an export to wav function would be really cool. And possibly export to
command list text for developers.

At any rate it's a really cool utility.
Richard Hutchinson
2003-07-25 19:32:12 UTC
Permalink
www.vectrex.biz/VecVoice.exe
Post by Milan Pollé
It might be easier to use if the list was sorted by allophone instead of
command number.
Done
Post by Milan Pollé
And then a few of those allophone input rows to make longer sentences.
Done
Post by Milan Pollé
Maybe the possibility of clicking on an allophone in the list to hear it
seperately.
Done
Post by Milan Pollé
And an export to wav function would be really cool. And possibly export to
command list text for developers.
Working on it




Richard H.
Brett Walach
2003-07-27 15:39:33 UTC
Permalink
"Richard Hutchinson"
Here's the latest version -
www.vectrex.biz/VecVoice.exe
I've put in the allophone to command code converter.
What is that?

Also, here my suggestions:

Instead of TAB'ing, make the allophone (AP) entry line a string or text box,
and just have the user separate AP's with a delimiter from a list like ( - ,
* . and space). The program would just look for any of these, and check it
as you type. So if I type "ay,ay,ay,ay", everything's fine. Maybe you could
even hear it as you type it (option selectable with check box). But if I
type "ay,ay,ay,tr", the "tr" gets highlighted red to let me know I'm an
idiot.

Also, you could mirror the AP's with the code like you've done, but do it so
the user can copy and paste the box right into their source code.

If you want to add another option selectable check box dimension, you could
have the program auto enter or auto compose the string of AP's as you click
on the individual AP's (which the wav sound from just clicking on those
should also be option selectable). And if you can hear it when you type it
and hear it when you click it, obviously you need to provide some
coordination with the two option check boxes.

Could also drag and drop AP's, but I like clicking better.

Maybe right click deletes the last AP. The right click right now doesn't
look like something you personally added...but rather something that comes
with the text field or something.

And I see you have the hardware option there..very cool if that works.
Haven't plugged in my VecVoice and VecRam yet to see.

Very nice utility...should save a lot of VV coders time.

Brett
Richard Hutchinson
2003-07-27 19:11:08 UTC
Permalink
I've put in the allophone to command code converter.
What is that?
I meant to say allophone address codes (too much 'War Games' !)


I've implemented some of your suggestions -

'Clear' - clears all the allophone boxes
'Copy' - copies the address codes to the clipboard
'Type 'n' Talk' - speaks the allophones as typed (I like this one)


The 'hardware' option should allow you to hook up an actual VecVoice to the
PC's serial port (also need a 5V PSU). This is mainly to fine tune the
speech (as the hardware behaves a bit differently).








Richard H.
Milan Pollé
2003-07-28 20:24:04 UTC
Permalink
Post by Richard Hutchinson
I meant to say allophone address codes (too much 'War Games' !)
How about a nice game of chess?
Post by Richard Hutchinson
I've implemented some of your suggestions -
'Clear' - clears all the allophone boxes
'Copy' - copies the address codes to the clipboard
'Type 'n' Talk' - speaks the allophones as typed (I like this one)
I have another function that shouldn't be hard to implement but would be
handy. An 'insert' button. Select one of the allophone input boxes, click
insert to shift all the allophone boxes on the behind it one place to the
right, creating an empty space in the current box to insert an extra
allophone into.

This because words sometimes sound better with some extra allophones in
them.

Though using a single box to type a whole sentence in would already add this
automatically.
Post by Richard Hutchinson
The 'hardware' option should allow you to hook up an actual VecVoice to the
PC's serial port (also need a 5V PSU). This is mainly to fine tune the
speech (as the hardware behaves a bit differently).
That's really awesome. I must look into getting/making one of these some
time.

I noticed one thing; 'AY' sounds like 'I', but if you add a pause behind it,
it gets cut off. If you add an empty box behind it, it doesn't get cut off.
I guess empty boxes indicate the end of a single word.
I assume pause commands should really behave the same and not cut off the
allophones?
Milan Pollé
2003-07-28 20:29:45 UTC
Permalink
Post by Milan Pollé
I noticed one thing; 'AY' sounds like 'I', but if you add a pause behind it,
it gets cut off. If you add an empty box behind it, it doesn't get cut off.
I guess empty boxes indicate the end of a single word.
I assume pause commands should really behave the same and not cut off the
allophones?
Hmm, now I notice you actually sometimes do want the pause to cut off an
allophone, so I guess it's just a matter of adding an empty box before a
pause.
Milan Pollé
2003-07-28 20:05:45 UTC
Permalink
Post by Richard Hutchinson
www.vectrex.biz/VecVoice.exe
Post by Milan Pollé
It might be easier to use if the list was sorted by allophone instead of
command number.
Done
Post by Milan Pollé
And then a few of those allophone input rows to make longer sentences.
Done
Post by Milan Pollé
Maybe the possibility of clicking on an allophone in the list to hear it
seperately.
Done
Post by Milan Pollé
And an export to wav function would be really cool. And possibly export to
command list text for developers.
Working on it
Wow, awesome! I've never experienced such a fast reaction to my suggestions
before. :^)

I'm going to try it out right away!
Milan Pollé
2003-07-28 23:31:24 UTC
Permalink
I've made a basic game orientated dictionary to get the developers started
on adding VecVoice support :^)

Feel free to improve/extend.

* = empty box

and = ae nn1 dd1 pa1

base = bb2 ey * ss
button = bb2 ax * tt2 ax nn1

computer = kk2 ao mm * pp yy2 uh * tt2 er2

destroyed = dh2 ih ss * tt2 rr2 oy *** dd1
down = dd1 aw * nn1

enter = eh nn1 tt2 er2

fire = ff ay yy2 er1
for = ff oy rr2

galaxy = gg2 ae ll ae kk2 ss iy
game over = gg2 ey (yy1) mm * ow ww vv er2
good luck = gg2 uw2 dd1 * ll hh2 uh kk3 pa1

have = hh1 ae vv
hello = hh1 ae ll ow
high = hh2 ay
highscore = hh2 ay * ss kk2 or er1
human = yy2 uh * mm aa nn1
hurry up = hh2 er1 * iy * ax * pp

in = ih nn1
insert coin = ih nn1 ss er2 * tt2 * kk2 oy * iy nn1

joystick = yy2 oy ** ss tt2 ih kk2 pa1

laser = ll ey * ss er2
left = ll ae ff tt2
level = ll ae vv el
lives = ll ay * vv ss
lose = ll hh2 uh zz
lost = ll ao ss tt2
low = ll ow

name = nn1 ey * mm

or = or

pilot = pp ay * ll ax hh2 tt2
planet = pp ll ae nn1 ax tt2
play = pp ll ey
player = pp ll ey yy2 er2
playing = pp ll ey yy2 ih ng
please = pp ll iy * zz
points = pp oy *** nn1 tt1 ss
presents = pp rr2 iy ss ae nn1 tt2 ss
press = pp rr2 ae ss

right = rr2 ay * tt2
robot = rr2 ow bb2 ao tt2

score = ss kk2 or er1
ship = ss y2 ih pp
shoot = ss yy2 uw2 tt2
start = ss tt2 ar * tt2

thank you = th ae nn1 kk2 pa1 yy1 uh ww
to = tt2 uh ww

up = ax * pp

vectrex = vv ae kk2 pa1 tt2 rr2 ae kk2 ss

weapon = ww ae * pp ax nn1
welcome = ww ae ll * kk2 aa mm
win = ww ih nn1
with = ww ih th

you = yy2 uw2
your = yy1 or


this is the vectrex speaking = dh2 ih ss * ih ss * dh2 ax * vv ae kk2 pa1
tt2 rr2 ae kk2 ss * ss pp iy kk2 ih ng


one = ww ao nn1
two = tt2 ww uh
three = th rr2 iy
four = ff or
five = ff iy * vv
six = ss ih kk2 ss
seven = ss ae vv ax hh2 nn1
eight = ey * tt2
nine = nn1 ay nn1
ten = tt2 ae nn1

twenty = tt2 ww ae nn1 * tt2 iy
thirty = th er2 * tt2 iy
fifty = ff ih ff * tt2 iy
ty = tt2 iy

eleven = iy ll ae vv ax nn1
twelve = tt2 ww ae ll * vv
thirteen = th er2 * tt2 iy * nn1
fifteen = ff ih ff * tt2 iy nn1
teen = tt2 iy * nn1

hundred = hh2 ax nn1 * dd2 rr2 er2 pa1 dd1
thousand = th ow * ss ax nn1 * dd1
million = mm ih hh2 ll yy1 ax nn1
Brett Walach
2003-07-29 01:20:31 UTC
Permalink
Cool!

Richard, maybe you could add this to a text file dictionary that accompanies
the VecVoice.exe that can be viewed/added to from the GUI. Maybe there's a
drop down box that auto-completes your entry if you start typing in there. A
LOAD or SAVE button will either create new, overwrite, or read the
allophone.

Users could send their dictionary files in to you, and maybe you could write
a utility that merges their dictionary with yours. If the entry does not
exist, add. If the entry is there, maybe the utility can play both versions
and you pick the best...or maybe it just increments a number after the word
to give everyone an alternate version. I think the later would be better,
everyone has different tastes.

By the time you're done adding all of these cool features, the utility will
make programming for the VecVoice a snap.

Brett



"Milan Pollé" wrote in message
Post by Milan Pollé
I've made a basic game orientated dictionary to get the developers started
on adding VecVoice support :^)
Feel free to improve/extend.
* = empty box
and = ae nn1 dd1 pa1
base = bb2 ey * ss
button = bb2 ax * tt2 ax nn1
computer = kk2 ao mm * pp yy2 uh * tt2 er2
destroyed = dh2 ih ss * tt2 rr2 oy *** dd1
down = dd1 aw * nn1
enter = eh nn1 tt2 er2
fire = ff ay yy2 er1
for = ff oy rr2
galaxy = gg2 ae ll ae kk2 ss iy
game over = gg2 ey (yy1) mm * ow ww vv er2
good luck = gg2 uw2 dd1 * ll hh2 uh kk3 pa1
have = hh1 ae vv
hello = hh1 ae ll ow
high = hh2 ay
highscore = hh2 ay * ss kk2 or er1
human = yy2 uh * mm aa nn1
hurry up = hh2 er1 * iy * ax * pp
in = ih nn1
insert coin = ih nn1 ss er2 * tt2 * kk2 oy * iy nn1
joystick = yy2 oy ** ss tt2 ih kk2 pa1
laser = ll ey * ss er2
left = ll ae ff tt2
level = ll ae vv el
lives = ll ay * vv ss
lose = ll hh2 uh zz
lost = ll ao ss tt2
low = ll ow
name = nn1 ey * mm
or = or
pilot = pp ay * ll ax hh2 tt2
planet = pp ll ae nn1 ax tt2
play = pp ll ey
player = pp ll ey yy2 er2
playing = pp ll ey yy2 ih ng
please = pp ll iy * zz
points = pp oy *** nn1 tt1 ss
presents = pp rr2 iy ss ae nn1 tt2 ss
press = pp rr2 ae ss
right = rr2 ay * tt2
robot = rr2 ow bb2 ao tt2
score = ss kk2 or er1
ship = ss y2 ih pp
shoot = ss yy2 uw2 tt2
start = ss tt2 ar * tt2
thank you = th ae nn1 kk2 pa1 yy1 uh ww
to = tt2 uh ww
up = ax * pp
vectrex = vv ae kk2 pa1 tt2 rr2 ae kk2 ss
weapon = ww ae * pp ax nn1
welcome = ww ae ll * kk2 aa mm
win = ww ih nn1
with = ww ih th
you = yy2 uw2
your = yy1 or
this is the vectrex speaking = dh2 ih ss * ih ss * dh2 ax * vv ae kk2 pa1
tt2 rr2 ae kk2 ss * ss pp iy kk2 ih ng
one = ww ao nn1
two = tt2 ww uh
three = th rr2 iy
four = ff or
five = ff iy * vv
six = ss ih kk2 ss
seven = ss ae vv ax hh2 nn1
eight = ey * tt2
nine = nn1 ay nn1
ten = tt2 ae nn1
twenty = tt2 ww ae nn1 * tt2 iy
thirty = th er2 * tt2 iy
fifty = ff ih ff * tt2 iy
ty = tt2 iy
eleven = iy ll ae vv ax nn1
twelve = tt2 ww ae ll * vv
thirteen = th er2 * tt2 iy * nn1
fifteen = ff ih ff * tt2 iy nn1
teen = tt2 iy * nn1
hundred = hh2 ax nn1 * dd2 rr2 er2 pa1 dd1
thousand = th ow * ss ax nn1 * dd1
million = mm ih hh2 ll yy1 ax nn1
Richard Hutchinson
2003-07-30 18:52:08 UTC
Permalink
I've updated it again, got it so it ignores blank boxes instead of treating
them as pauses.

I think I'll need to extend the allophone samples list, for when there's
2 the same together like - 'er1 er1' .

Where as the hardware will speak it as an unbroken sound, with the software
you can hear a gap between samples.


BTW Milan, nice work with the 'game words' (I'll eventually put them all in
a drop down list).


There's some other words here -

http://www.physics.brandeis.edu/phys32b_2002/SP056-Tandy.pdf

(pages 5-10)




Richard H.
Graham Toal
2003-07-31 01:53:32 UTC
Permalink
Post by Richard Hutchinson
There's some other words here -
http://www.physics.brandeis.edu/phys32b_2002/SP056-Tandy.pdf
(pages 5-10)
I hadn't been following this vecvoice thing but I looked at that just
now and realised what you've all been doing.

How come you're working out words by hand and not using a program
or one of the existing (huge) dictionaries - all that's needed
will be small tweaks to match your phoneme set. (You're not
really using allophones are you???) And even if the program or
lookup isn't perfect, it would surely give you a good starting
point to start tweaking from.

I've written some text to speech myself including one for Dutch.
I'll have a look for it and see if it's suitable for your project.
Did I hear you say something about a web page where you can test
the encodings? Or was that a PC program you have to run?

Point me at the background for this stuff, I'ld like to catch up...

Graham
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Richard Hutchinson
2003-08-01 20:17:09 UTC
Permalink
Okay, so blank spaces weren't supposed to work like that.
Yes, it works just like the hardware now.

To make allophones sustain more in a word, just add an identical one
to it -

YES - YY2 EH EH SS SS
They won't work properly though if spaces don't pause
They do - check out some of your words I've put in, they sound great !




Richard H.
Manu
2003-08-05 11:58:14 UTC
Permalink
The Tandy word list has alot of errors in it .. but it is a good place
to start .. with Manu's list too! I'll look at both lists today for
comparison.
Rob Mitchell, Atlanta, GA
(back from Vacation!)
Mmm... my list? :) I doubt it was me..

Manu
Rob Mitchell
2003-08-05 14:25:45 UTC
Permalink
Mmm... my list? :) I doubt it was me..<<
Milan! Milan! He's the one with the list!

Rob Mitchell, Atlanta, GA

baron vr
2003-07-26 08:18:30 UTC
Permalink
Argh! I made the same mistake and now it works for me too... And thanks for
the professor Falken instructions :)...
Post by Milan Pollé
Did you put the 'WordMaker' folder directly in C: ?
I heard something :^)
That was the trick, I had put it in a vectrex emu folder :^)
Very cool utility... off to make it say 'Greetings professor Falken' :^p
Hmmm... wargames... an idea for a Vectrex game ;^)
Brett Walach
2003-07-27 15:23:10 UTC
Permalink
Did you put the 'WordMaker' folder directly in C: ?
You should put this in a readme.txt file....or help file. I ran into the
same problem even though I previously read your posts...

Brett
GeoFury
2003-07-25 01:39:59 UTC
Permalink
Post by Richard Hutchinson
Boring Sunday, so I made this -
www.vectrex.biz/WordMaker.zip
Very nice...looking forward to working with VecVoice.

George
Loading...