SPEECH ON THE ATARI ST by Richard Karsmakers
I faintly seem to remember the 'good' old Commodore 64 times,
when an acquaintance of mine proudly demonstrated a speech
recognition module called "Voice Master". It was actually a sound
digitizer that allowed speech recognition as well. The quality
was like crying out loud, but it gave ideas for later. This guy,
Onno Verschuuren, later built a sound-digitizer himself with
which he won the Micro Masters Holland last year. He even had
Rowan from Centerfold speak eight seconds into his '64 - "One,
two, three, lllllooooovvvveee".
But I'm afraid I'm straying a bit. I was gonnan write an article
about speech on the ST, not speech on the Commodore 64.
There are two ways in which you can produce speech on the ST: The
hardware way and the software way. The hardware way is the most
difficult and the most expensive. In order to use it, you must
purchase a sound module (like that from Schlegel Datentechnik,
Schwarzachstr. 3, 7940 Riedlingen, West Germany, that costs
DM 298,-) that plugs in e.g. the printer port. You simply 'print'
a document containing phonemes to the module that then converts
it to sounds that sound like human speech.
The most interesting way, however, is the software way. In this
case, people don't need to have more or less expensive hardware
expansions to use it. An example of software speech is the
programs "SPMOD.PRG" in our Public Domain, as well as the PD demo
from "Smoothtalker". The latter sounds really impressive, but in
this article I'd like to have a look at speech programming in GfA
Basic using the SPMOD program.
Lucky enough, I received a program demonstrating the ST's speech
capabilities some time ago from my friend Rüdiger Eichin in
Germany. The program is added on the ST NEWS disk, and is
explained here as well:
' Program to use speech in GfA Basic
' Research by Rüdiger Eichin, West Germany
'
Cls
A$="\spmod.prg"
Reserve Fre(0)-30000
A=Exec(3,A$,"","") !Load in SPMOD program
If A<0 Then !Load error?
Print "Load error!"
Stop
Endif
A=A+256 !Leap over Basepage
Dpoke A+&HE,&H4E75 !Dpoke code for RTS in MCode
Dpoke A+&H6C,&H4E75 !Idem
Buffer=A+&H6EEE !The speech buffer is located at
' &H6EEE after module start
Adr1=A+&H32 !Address text->phonemes routine
Adr2=A+&H88 !Actual speech routine
Speech=1
'
@Print("Hello! Have you ever heard software speech on")
@Print("the Atari before? Well, this is it!")
End
'
Procedure Print(Txt$) !Get text into Txt$
If Speech=1 Then !Flag set?
Poke Buffer,Len(Txt$)+3
Poke Buffer+1,Len(Txt$)
For I=1 To Len(Txt$)
Poke Buffer+1+I,Asc(Mid$(Txt$,I,1))
Print Mid$(Txt$,I,1);
Next I
Print
Void C:Adr1() !Make phonemes
Void C:Adr2() !Speak
Else
Print Txt$
Endif
Return
This program has one disadvantage: SAVEing from GfA Basic won't
work correctly anymore after executing: The file selector does
not appear and the program is SAVEd as 8 spaces. I hope that we
have hereby supplied you with some tips that will prove to be
useful in your software developments!
Disclaimer
The text of the articles is identical to the originals like they appeared
in old ST NEWS issues. Please take into consideration that the author(s)
was (were) a lot younger and less responsible back then. So bad jokes,
bad English, youthful arrogance, insults, bravura, over-crediting and
tastelessness should be taken with at least a grain of salt. Any contact
and/or payment information, as well as deadlines/release dates of any
kind should be regarded as outdated. Due to the fact that these pages are
not actually contained in an Atari executable here, references to scroll
texts, featured demo screens and hidden articles may also be irrelevant.