Difference between revisions of "Speech"

From Ninerpedia
Jump to navigation Jump to search
(Main new article on Speech, extracted from "Sidecar expansion" plus added "Extended Basic" section.)
 
(Added examples of other speech enabling modules (TE2, Speech Editor))
Line 65: Line 65:


Notice any change? Try using different lengths in the SEG$ command. This is an area for experimentation.
Notice any change? Try using different lengths in the SEG$ command. This is an area for experimentation.
==Using Extended Basic and Text to Speech disk==
The Text to Speech disk added to Extended Basic the means to say almost any work, first by loading a machine coade program and then passing the word or phrase to it with a CALL. The disadvantage to this approach was the need to have a disk drive and expanded memory.  The form was (1 CALL INIT :: CALL TALKLOAD :: A$="PHRASE TO SAY" :: CALL TALK(A$) )
==Using the Speech Editor Module==
This allowed the use of the words built into the Speech Synthesiser by using CALL SAY("WORD"), a form that was also usedin Extended Basic.
==Using [[Terminal Emulator II]] module==
This module allowed full Text to Speech by means of opening a file (OPEN #1:"SPEECH",OUTPUT) and then PRINTing to it eg (PRINT #1:A$). It was also possible to adjust the voice pitch by passing direct variables in the form (PRINT #1:"//50 40")


[[Category:Programming]]
[[Category:Programming]]

Revision as of 10:53, 21 September 2014

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.

Synth attached.jpg

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.

Synth lid open.jpg

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.

Synth board.jpg

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.

Synth adapter.jpg


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.

Using Extended Basic and Text to Speech disk

The Text to Speech disk added to Extended Basic the means to say almost any work, first by loading a machine coade program and then passing the word or phrase to it with a CALL. The disadvantage to this approach was the need to have a disk drive and expanded memory. The form was (1 CALL INIT :: CALL TALKLOAD :: A$="PHRASE TO SAY" :: CALL TALK(A$) )

Using the Speech Editor Module

This allowed the use of the words built into the Speech Synthesiser by using CALL SAY("WORD"), a form that was also usedin Extended Basic.

Using Terminal Emulator II module

This module allowed full Text to Speech by means of opening a file (OPEN #1:"SPEECH",OUTPUT) and then PRINTing to it eg (PRINT #1:A$). It was also possible to adjust the voice pitch by passing direct variables in the form (PRINT #1:"//50 40")