Speech
Summary
The TI99/4 and /4a allowed the use of synthesized speech by means of a small add on which plugged into the right hand side of the console. This contained a pre specified vocabulary and the means for programs to create their own words. The original design included a flip up front to allow additional small modules to be fitted to expand the vocabulary but this was not followed through. The console and speech synthesiser alone could not speak, suitable software had to be added with an additional module.
Extended Basic allowed use of the built in vocabulary and a limited means of extending it.
Speech Synthesizer
The TI Speech Synthesizer was the only device that remained in side-car position and did not move into the Periperal Expansion Box (PEB). This allowed users who did not want to expand their system with a PEB to enjoy speech synthesis. Moreover, the synthesizer is comparatively small. The Speech Synthesizer always has to be the closest peripheral device to the console because it draws power through the computer's expansion port.
The synthesizer device provided a lid which could be opened. Earlier designs of the Speech Synthesizer included an extension port which allowed speech cartridges to be plugged into the device to extend the vocabulary, just like the cartridges for the console, but much smaller. The flip lid remained but there was no socket inside and no vocabulary modules produced.
The option to extend the vocabulary by modules never materialized, as TI found an easier solution using the Speech Editor cartridge, the Terminal Emulator II cartridge, or the Text-to-Speech disk. All three of these methods allowed nearly unlimited vocabulary.
Near the end of Texas Instruments' engagement in the Home computer market, the Speech Synthesizer was packed with cartridges making use of the synthesizer hardware, making it probably one of the most popular pieces of hardware. Many people rushed out to purchase as many modules they could while they still had the free speech synthesizer offer available.
Third Party Speech Synthesiser Adaptors
From third parties, speech synthesizer adaptor cards were offered which allowed users to move the synthesizer into the PEB, using, for example, a CorComp Triple-Tech card or a Rave Speech Adapter. This is also mandatory for Geneve or TI-99/4P users as they do not have any console to attach the Synthesizer to. The circuit board had to be removed from the chassis of the Synthesizer.
More information about the processor used by the Speech synthesizer can be found in the internals section.
Extended Basic Use of Speech
Also found in the Speech Editor module comes CALL SAY and CALL SPGET, which enable your Extended Basic program to use the speech synthesiser.Although TI provide a vocabulary list with the Extended Basic module, full instructions are not provided.
CALL SAY allows you to SAY a word from the vocabulary. Words NOT in the list will be spelt.
Saying the phrases
Some 'words' are really phrases, but if you use CALL SAY("READY TO START"), the computer will SPELL the words! This is because the space is treated as a word separator. For the computer to recognise that these three words are one unit in the vocabulary, you need to enclose them in hash marks: CALL SAY("#READY TO START#")
Length of pauses
The standard punctuation marks are also word separators and provide differing degrees of pause between words.
In order of length of pause, the separators are: + (space) - , ; : .
The + is zero pause and the full stop is a one second pause. The separators may be repeated to build up any pause,eg:
CALL SAY("I---KNOW") or CALL SAY("I-,,KNOW")
CALL SPGET
CALL SPGET is used to fill a string variable with the data used by the speech synthesiser. This can increase the speed of execution if you fill some string variables at the start of your program, and then use them when you wish to speak. It takes a little while to fill the variables, as each string is 255 characters long (many of them are nul or zero value).
eg CALL SPGET("WORKING",WK$) then
CALL SAY(,WK$) will say the word.
Note the comma in front of WK$. If two strings are used,in addition to the leading comma, they must be separated by TWO commas: CALL SAY(,A$,,B$)
In addition, you may use SEG$ to curtail the string you have returned. You can then separate the initial sounds of each word, and use these to create your own vocabulary. You are NOT limited to the preprogrammed list: you just have to work a little to expand it.
For example, having loaded WK$ as above, try:
WK$=SEG$(WK$,1,60)
CALL SAY(,WK$)
Notice any change? Try using different lengths in the SEG$ command. This is an area for experimentation.