Dolphin Speech Synthesizer

User Guide

Series 2 Synthesizers

Copyright 1998:

Dolphin Computer Access, LLC

All Rights Reserved Worldwide.

Notice

Apollo and Juno are trademarks of Dolphin Oceanic Ltd. Windows and Windows NT are registered trademarks of Microsoft Corporation.  All other products are trademarks or registered trademarks of their respective owners.

 

Introduction

The Dolphin Series 2 Synthesizers have been developed in parallel with the Hal screen reader and other Dolphin special access products. They provide an affordable and powerful means of multilingual speech output, and can be used with a large variety of popular computer packages.

All of Dolphin's Series 2 Synthesizers have the following features:

Varieties

There are currently three Dolphin speech synthesizers:


All the synthesizers have the same features and command set, except that the Juno only has a software volume control.

Apollo 2

This is a mains-only desktop synthesizer with an integral loudspeaker. It is connected to your PC's serial port.

It is ideal for use in situations where an integral loudspeaker is required.

PC 2 card

This is essentially an Apollo 2, but mounted on a PC card. It has all the features of the Apollo 2, and is ideal for use in a sole stationary computer, where you want the speech synthesizer to be tucked away. Because it fits inside the PC you have no need for an external power supply, and will have no trailing wires.

Juno

The Juno is a battery-powered, serial-only portable synthesizer, with all the functions of the Apollo 2. Complete with a built-in loudspeaker, it is small enough to be attached to any laptop computer, has about 10 hours battery life, and can fit into your pocket when not in use.

Section One - The Apollo 2

This section contains a description of the Apollo 2 speech synthesizer.

Introduction

The Apollo 2 is a mains-powered text-to speech synthesizer which can be used with a wide range of computers. It can be used in conjunction with portable computers, as well as with desktop models. The Apollo 2 is one of the very few synthesizers which has a British English voice, and many non-English languages are also available. It is possible to have up to 4 languages resident in the Apollo 2 at any time. Language ROMs can also be updated or
changed as required.

The following is a description of the connectors and controls on the Apollo 2. (The description assumes that you have the Apollo 2 speaker facing you.) There are three connectors as follows.

Connectors

1. The 9 way D-Type connector at the back is a serial port. It is used to connect to the computer.

The connector is wired in a non-standard way so unless you have made you own cable as per the pin-out in Appendix 1, you should only use Dolphin serial cables.
       
If you plug a 'standard' serial cable into the socket you may blow up the communications port of the synthesizer. For connection to an IBM PC/AT or compatible you will receive a cable with 9 way female connectors at each end. The cable can be plugged in either way round.

2. The connector on the front is for a headphone set or extension speaker. It is a stereo 3.5mm socket (such as found on Walkman-type headphones), and will not work correctly if a mono jack is used.

3. The last connector is to the rear, and is for the mains adapter.

N.B. Please use only a Dolphin mains adapter as supplied.If using your own mains adapter ensure that the voltage, current capacity and polarity are correct. These details can be found in Appendix 1.

Controls

The only controls provided on the Apollo 2 are the on/off switch and the volume knob. The on/off switch is located to the rear, left hand side. Left is on, right is off. The volume control is located on top of the unit, to the left, just below the speaker grill.

On switching on the synthesizer, the synthesizer will self-test and issue a sound effect dependent on the result.

If the test is OK the synthesizer issues a short single buzz, but if it fails three longer hoots are sounded.

Section Two - The PC 2 Card


This section contains information on the PC 2 card, including guidelines on installation.

Introduction

The PC 2 Card is an IBM PC/AT compatible card that will fit inside both desktop PCs and portable PCs which have a standard card slot.

The card is capable of holding up to seven languages by way of the four on-board ROM sockets. The first ROM socket is a 256Kb ROM and can hold four languages. The other three ROM sockets are 64Kb and can hold one language. The first socket can also hold a normal 64Kb ROM. The physical size of the card is 20.3cm back to front by 9.9cm high, not including the edge connector.

Fitting the Card

When fitting the card to your PC try not to touch the edge connector as you may damage the card. Select a spare slot and plug the card in firmly. You may have to bend the face plate slightly to enable securing of the locking screw. This will depend on the card cage of your PC. The card is almost ready for use as you need only plug in either your headphones or external speaker. If you wish to use the internal speaker of your PC the section 'Using the PC's Internal Speaker' has information on how to do this.

Controls and Connections

    The Edge Connector

The edge connector on the Card is the hardware communication path with the computer. It is a standard 8-bit, IBM PC slot connector but will work perfectly well in a 16-bit AT slot. The card will not work in a MCA type slot as found on certain IBM PS/2 machines.

    Sockets and Volume Control

The card has a volume control, 'spindle' type, to the rear of the machine and two 3.5mm stereo jacks on the face plate. This will appear on the back or side of your PC, dependent on the orientation of your card cage, once the card is fitted.

PC 2 Card Back plate

There are two stereo sockets on the card. The 'top' one (closest to the pot) is the normal output to connect headphones/speakers. The lower socket is a 'line' output that will be useful for active speakers, connecting to an external amplifier etc. If this socket is used, the
headphone socket is disabled. The card does not have a speaker on-board, however, you can connect the computer's internal speaker, see below. There are jumpers for selecting port addresses. These are discussed in detail in Appendix 4

Using the Card with Software

If you are using HAL5 you can drive the PC 2 card at the default address by using the following address:

    HAL5 card

If you have changed the card address to the secondary value (as per Appendix 4) then you can drive the card with the following command:

    HAL5 card792

If you are using a special address then include the address in the following command:

    HAL5 card*** (special address)

The On-Board ROMs

The PC 2 Card has four on-board ROM sockets, one can hold 4 languages. The other three ROMs can hold only 1 language. The default ROM socket, i.e. the language ROM the card will use when you first turn on the computer, is the one furthest from the volume control. The second ROM (ROM2) would normally be selected automatically, if you are using HAL5, when you changed language prompt files. To change ROMs outside of HAL5 (it actually does the same thing internally) you can use the '@=' command. '@=1' will start the default ROM and '@=2' will start ROM2 etc.

Using the PC's Internal Speaker

It is possible to use the internal speaker of your computer for both speech and computer audio output. This will not work successfully with small piezo speakers sometimes found on portables and some desktops, it should really be a standard moving cone type.

This facility has two advantages in that you do not need an external speaker with its associated cable, and when using headphones you can hear both speech and computer beeps without disturbing colleagues. (A talking beeping PC can be quite a distraction in a busy office environment!).

The method of connecting the PC beeps/speaker is different now, you can connect the 4 pin socket from the PC speaker directly to the 4 pin plug on the card (J6), and then a single wire connects between J3 on the card and the output on the PC motherboard.

Section Three - The Juno

This section contains a description of the Juno portable speech synthesizer.

Introduction

The Juno has been designed by Dolphin as a battery powered synthesizer that can be used in portable applications where the desktop Apollo 2 or the PC 2 card may not be suitable. The Juno has built in rechargeable batteries, has all the features of the Apollo 2, and is totally software controlled. (This means you must use a program such as the HAL5 screen reader to alter the volume.) -This version of the Juno, has a built-in loudspeaker.

N.B The Juno automatically powers on when the PC or laptop's serial port has been initialized and a speaker or headphones have been plugged in. It will power off when the PC is powered off, or the serial connector is unplugged.

The On-Board ROMs

The Juno has a single ROM slot, and can accommodate up to four languages on a single ROM. Language switching and audio volume changes are made under software control from the PC.

Section Four - Trouble Shooting

This section contains information on common problems people find with their Dolphin speech synthesizers. Read this section if you are having difficulty.

Introduction

If your synthesizer does not function please check the following points.

1. With an Apollo check that your mains adapter is plugged all the way into the synthesizer and that it is plugged into the mains and turned on.

2. The synthesizer should issue a `healthy' sound effect when powered up.

3. With an Apollo 2 or Juno you should check that the data cable is plugged in correctly and into the right communication port on your computer.

4. With cards, you must ensure that the card is fitted into its slot correctly and that a speaker or headphone set is attached.

5. If using the HAL5 screen reader, have you used the correct command line parameter for your synthesizer? Check with the following list:

HAL5 com1 ENTER speech output to COM1:

HAL5 com2 ENTER speech output to COM2:

HAL5 card ENTER speech output to a PC 2 Card

HAL5 card760 ENTER speech output to a PC 2 Card secondary address

6. If when using cards, you still have no speech output after checking point 3, then you may already have a card installed that is using the same address as the PC3 card. (See Appendix 3, "Address Selection", for further details.)

If all else fails, phone the Dolphin distributor in your country, or in the U.S. phone Dolphin Computer Access on 650 348 7402.

Section Five - Complete Command Set

This section contains a complete command set for the Apollo/PC 2 Card and Juno speech synthesizers. These commands tell you how to control your synthesizer.

Introduction

This guide covers ROM types from version 2A onwards. Most of the ROM commands start with an '@' (at sign) and are followed by an ASCII character or Hex, Decimal, Octal or Binary number as indicated by c, h, d, o or b. When a Binary number is indicated you will generally find this is a toggle switch where '0' turns the command off and '1' turns the command on.

N.B. The default settings shown below are for UK English. ENTER stands for carriage return.

General Commands

@Wd
Controls the speed of the speech. Default = 3, and the range of values is 1 to 9, giving speeds of approximately 80 to 580 words per minute.

@Fh
Sets the center point of the voice pitch. Default = 8

@Fc
'c' must be either '+' or '-'. This causes the pitch to be raised or lowered slightly.

@Ro
Sets the level of prosody or excitability of the voice. Default = 3

@Sb
Toggles spell mode on or off. Default = 0

@Pb
Toggles punctuation on or off. Default = 0

@Qd
Sets the length of pause between words. Default = 0

@Bd
This is used to set the degree of voicing. 1 is a whisper (very breathy) and 8 is full voicing. Default = 8

@Dh
Sets the pause for end of phrase, breath group or sentence. Default = b

@Vd
One of the six preset voices may be selected with this command. The first three voices (1 to 3) are based on a male voice and the last three voices (4 to 6) are based on a non-male voice. Many more voices can be obtained by using the commands below. N.B. '@V0' will turn the voice off.

@Kb
Selects the male or non-male speaker table.0 for male, 1 for non-male.

Control X
This is the mute command. The speech buffer is flushed and speech stops immediately.

@Ah
The command @Ah where h is a hexadecimal digit '0' to 'F', will set the volume control to the selected level. That level, h, is a proportion of the level set by the physical volume control.

The action of the @A command is synchronized with the speech so that the loudness of the parts of an utterance can be controlled. For example:

    Quietest @ A 0
    Normal @ A A
    Loudest @ A F

@?
Speaks the ROM version number.

@J
'Soft' Reset - This command resets the current language speech parameters to their power on defaults. This is primarily intended for HAL5 and programmers use.

@=d,
This command will switch from one internal language ROM to another.

@=1, Selects ROM 1 (default ROM)
@=2, Selects ROM 2
@=3, Selects ROM 3
@=4, Selects ROM 4
       
As standard the Apollo 2 has only one ROM of 64k. Additional languages can be ordered.

The comma is not really part of the command, but should be included, otherwise any text between the @=d and the end of the current phrase will be lost.

When switching between ROMs of the same version number the Apollo 2 will do this without having to reset any communications circuitry.

However, if the ROM versions are different, the switch will still occur, but by the synthesizer resetting itself.

@Gb
This command has no effect for Apollo 2 ROMs from version 2 on. In earlier versions it turned the greeting on or off when switching languages.

@Th This command can be inserted in your text to produce sound effects. The sound effects available are:

hex followed by duration followed by type of effect

0 very short whoosh

1 short whoosh

2 medium whoosh

3 long whoosh

4 very short buzzer

5 short buzzer

6 medium buzzer

7 long buzzer

8 very short warble 1

9 short warble 1

A medium warble 1

B long warble 1

C very short warble 2

D short warble 2

E medium warble 2

F long warble 2

Advanced Commands

Please note that you will probably not need to use the following commands during day-to-day use of your synthesizer.

@Hb
Toggles Hypermode on or off. With Hypermode on only content words are spoken, as in a telegram. Default = 0

@+c
This command has no effect for Apollo 2 ROMs from version 2 on. In earlier versions it sets 'c' to be the new command start character (i.e. 'c' is used as the new start character for a command string instead of @).

@Ec
Echoes back a character, where c is an alphanumeric character. See Appendix 4 for details of the communications protocols required.

@L
Asks for a list of its languages. The reply message sent to the PC is:

L, n, s, data <ENTER>

where:
'L' is a reply identifier, n gives the number of records in the message in hexadecimal, and s gives the size of each record. The n records then follow in slot number order. Both n and s are transmitted low nibble first. The format of each record is:

language code, extn, eng_ver, lang_ver

where: lang_code is the country code for the language, e.g. 00044 for UK. The first character is used where more than one language is used in that country, so Welsh will
be 10044.ext will be used in the future to indicate a language extension slot. Some languages will require more than one slot. ext is '0' for all languages now.eng_ver and lang_ver are four bytes each giving the engine and language version number for the slot. The message is terminated with a carriage return,
ENTER.

@Mhh
This sets the mark-space ratio which can be described as having an effect on the depth of the voice. The valid range is 0 to 3F, the default is 16.

@Tx
A `silent' sound effect giving a short pause of about 100ms.

@Xb
Toggles the phonetic mode on or off. Default = 0

@Y m r p b
Changes the synthesizer serial communications settings, where:
   
m selects the communication mode and is:
H for half-duplex
F for full-duplex

r selects the baud rate:
1 300
2 1200
3 9600 (Power up default)
4 19200
5 28800
6 57600

p selects the parity:
E for Even
O for Odd
N for None (Power up default)

b selects the number of data bits:
7 7 data bits
8 8 data bits(power up default)

For example, in order to set the synthesizer communications to 19.2 Kbits/sec, odd parity, 7 data bits, and to use full-duplex communications, the command would be: @Y f 4 0 7

The next five characters are synchronization bytes and are not spoken. Any communication error during synchronization causes the synthesizer to revert to the default settings.

@c ?
Where c is one of A, B, C, D, F, H, K, M, P, Q, R, S, V, W, X, Z, =, or $

These are the characters used above in the `at' commands to adjust the synthesizers' settings.
Sending the @c? command to the synthesizer will produce a reply consisting of three characters. The first of these is the setting identifier, such as B for breathiness, followed by two characters (bytes) representing the hexadecimal value of that setting, which are sent in the order low-nibble then high-nibble.

For example, to ask the synthesizer for its current volume setting, send @A?. The synthesizer will reply with the message A60, where 6 is the current volume level.

@A?
Return the current volume setting.
   
@B?
Returns the current breathiness level.

@C?
Checks the battery level and charging state in a Juno. The reply is Cab where a is 1 if the
battery is low or b is 1 if a charger is connected. If b is 0 then the charge state is unknown and if b is 2 no charger is connected

@D?
Returns the current end of phrase pause setting.

@F?
Returns the current pitch center point setting.

@H?
Returns the current Hypermode setting.

@K?
Returns the current speaker table setting.

@M?
Returns the current mark-space ratio setting.

@P?
Returns the current punctuation setting.

@Q?
Returns the current inter-word pause setting.

@R?
Returns the current prosody setting.

@S?
Returns the current spell mode setting.

@V?
Returns the current voice setting.

@W?
Returns the current speed setting.

@X?
Returns the current phonetic mode setting.

@=?
Returns the slot number of the selected ROM.

@$?
Returns the current voice source and filter setting.

@I?
This feature is available on serial Apollo 2, Juno, and PC 2 card synthesizers. On receipt of @I?, the synthesizer will respond with a 4 byte message:

I a b T/M

Where I indicates the message is an index message, and a and b are two ASCII characters representing the one byte hexadecimal text unit counter.

The final character T/M represents whether the synthesizer is Talking or Mute, e.g. the synthesizer may have 10 text units in its text buffer but is not talking as it has not yet received a comma, full stop etc.

On receipt of a mute command, the normal muting operations take place, and the current values of the indexing flag and unit count are preserved.

If the screen reader needs to know the index status, it must send @I? before issuing another @I+ which will clear the index flag and counter.

@I+
To enable indexing, words or text units must be counted up as they are received.

The synthesizer detects that indexing is on by the presence of the first @I+ command after a mute when it zeros a text-unit count. The text-unit counter is a single byte representing the number of units remaining to be spoken by the synthesizer. When indexing is on, the synthesizer will increment the unit count whenever it receives an @I+.

Whenever one of these marks is due to be spoken it is not sent to the synthesizer chip but causes the unit counter to be decremented. So, the Apollo 2 will keep track of how far the communications with the PC, and hence the application, are ahead of the speech synthesizer.

Special Voice Commands

These commands have been provided for you to experiment with the sounds of the synthesizer. Most users will never need them.

Commands to modify Formants

@ u d h h+ Here 'd' is used to select one of the ten
@ u d h h - parameters in the table below. h - or h+ can be
used to add or subtract the hex value (h) from the
selected parameter (d). The fourth formant is fixed.

Parameter followed by Value of d

0. Fn frequency of nasal formant.
1. F1 frequency of first formant.
2. F2 frequency of second formant.
3. F3 frequency of third formant.
4. A L F low frequency amplitude.
5. A1 amplitude of first formant.
6. A2 amplitude of second formant.
7. A3 amplitude of third formant.
8. A4 amplitude of fourth formant.
9. IV degree of voicing. Same command as @B

Voice Source & Filter

@$o This command selects the voice source and filter as per the table below. Default = 0

Value of o followed by Voice Filter followed by Voicing Source

0.male.default
1.female.default
2.male.spike
3.female.spike
4.male.cut-down default
5.female.cut-down default
6.male.reduced high frequency filter
7.female.reduced high frequency filter

Section Six - Using an Apollo 2 with a BBC or BBC Master System

Introduction

The Apollo 2 speech synthesizer can be connected to a BBC computer serial port and used only at a baud rate of 9600.

The serial port is located at the back of the computer and is labeled 'RS423'. The actual position of this port varies slightly depending on which model of BBC computer you have. The plug which fits this socket is a domino plug. This means that it is symmetrical and can therefore be fitted either way round. However, the synthesizer will not work unless it is fitted correctly. The correct way is when the head of the screw in the plug casing faces to the right, as viewed from the back of the computer.

It is possible to add speech to BBC basic programs by incorporating one of the following procedures.

Serial Port Procedure

    20000 DEFPROCSAY (Q$)
    20010 *FX3,7
    20020 PRINT Q$ ''
    20030 *FX3,0
    20040 ENDPROC

After adding the above procedure it is necessary to call this up at the appropriate part of the program. For example, if a program prints the message "Very Good" on the screen, locate the point in the program where this is generated, and add an additional line. In the example below line 3000 is in the original program, line 3005 will make the synthesizer say the same.

    3000 PRINT TAB (5,20) "Very Good"
    3005 PROCSAY ("Very Good")

The same procedure could be used to make a program which checks the ROM version.

    10 PROCSAY ("@?")
    20 DEFPROCSAY (Q$)
    30 *FX3,7
    40 PRINT Q$ ''
    50 *FX3,0
    60 ENDPROC

Software is available for the BBC and the BBC Master System. For more Information contact the Dolphin Technical Support Department.

BBC Master Settings

The BBC Master series can cause confusion as it has a default protocol that is battery backed (as with time and date) and does not match the synthesizer. This default can be changed in the following way noting that all entries are in upper case.

*CO. BAUD 7 <ENTER> followed by hard break
*CO. DATA 4 <ENTER> followed by hard break

'Hard break' means hold the control key down and tap the break key. The two commands above should set the protocol to 9600 baud, 8 data bits and one stop bit.

Appendix One - Apollo 2 Physical Characteristics

Weight 325 grams

Size 11.5cm (l) x 13cm (b) x 7cm (h)

Power Source

The DC supply should be 13 volts, 300 milliamps, 2.1mm barrel. The polarity is negative tip, positive barrel.

Connector

Serial with default of 9600 baud, 8 data bits and 1 stop bit.
   
Pin-outs

Serial port

pin number followed by designation

2. TX
3. RX
4. DSR
5. GND
6. DTR
7. CTS
8. RTS

Baud Rate

The Baud rate is now software selectable.

Headphone 3.5mm stereo jack, left and right lines shorted.

Controls On/Off switch, Volume control.

Appendix Two - Juno with Nickel Metal Hydride Batteries Physical Characteristics

Weight 450 grams

Size 15.0cm (l), 7.5cm (b), 5.0cm (h)

Power Source

Battery Type
The Juno contains a Nickel Metal Hydride battery pack with a maximum voltage of 7.2 volts and a capacity of 900mAhr.

Current Consumption
The current drawn by the Juno is dependent on volume and also whether it is speaking. The circuit draws about 60mA when silent and about 110mA when talking at maximum volume.

Battery Life
A battery life of 10 hours, continuous speaking, is achievable. The batteries can be recharged in three and a half hours and 800 charge/recharge cycles are possible at 100% depth of discharge. For optimum battery life, it is recommended that the battery pack should be fully discharged before the next recharge cycle.

Mains Adapter
For optimum life, the Juno should not be used with the mains adapter connected. It should be fully charged, then used on batteries until they run flat, when it can be recharged again. There is circuitry to protect the Juno from reverse mains adapter connection and also to prevent the batteries from being over-charged and over-discharged.

The mains adapter requirements are as follows -

Voltage - 13V DC
Maximum current - 300mA
Connection - 2.1mm (Negative tip)

Supplying Power from your Own Equipment

To charge the batteries and drive the circuit properly, you need to supply a voltage of at least 13V.

If the batteries are not fitted then the 8.4V regulator can be removed and the circuit can be supplied with a voltage of between 5.5V and 9V.

If the 5V regulator is removed then the circuit will just about run off 5V. (The audio will clip at maximum volume.)

Connections

Data
The data connection between the Juno and the PC is made with a flying 500mm lead terminated in a 9-way D-type socket. This socket connects to the serial port (RS232) of the host device.

Power
The power connection is made through a 2.1mm connector to a mains adapter.

Audio Output
The audio output is made via a 3.5mm stereo socket. Both channels are connected together. Stereo Walkman-style headphones or loudspeakers can be used.

BEWARE: Damage will be caused to the Juno if a mono plug is used.

Appendix Three - Juno with Lithium Ion Batteries Physical Characteristics

Weight 420 grams
           
Size 15.0cm (l), 7.5cm (b), 5.0cm (h)

Power Source

Battery Type
The Juno contains two rechargeable Lithium-Ion Batteries with a maximum voltage of 8.4volts and a capacity of 1Ahr.

Current Consumption
The current drawn by the Juno is dependent on volume and also whether it is speaking. The circuit draws about 60mA when silent and about 110mA when talking at maximum volume.

Battery Life
A battery life of 10 hours, continuous speaking, is achievable. The batteries can be recharged to 95% capacity in 2.5 hours and over 1000 charge/recharge cycles are possible at 100% depth of discharge.

Mains Adapter
The Juno can be used with a mains adapter connected. There is circuitry to protect the Juno from reverse mains adapter connection and also to prevent the batteries from being over-charged and over-discharged.

The mains adapter requirements are as follows -

Voltage - 13V DC
Maximum current - 300mA
Connection - 2.1mm (Negative tip)

Supplying Power from your Own Equipment

To charge the batteries and drive the circuit properly, you need to supply a voltage of between 13V. (There is an 8.4V regulator.)

If the batteries are not fitted then the 8.4V regulator can be removed and the circuit can be supplied with a voltage of between 5.5V and 9V.

If the 5V regulator is removed then the circuit will just about run off 5V. (The audio will clip at maximum volume.)

Connections

Data
The data connection between the Juno and the PC is made with a flying 500mm lead terminated in a 9-way D-type socket. This socket connects to the serial port (RS232) of the host device.

Power
The power connection is made through a 2.1mm connector to a mains adapter.

Audio Output
The audio output is made via a 3.5mm stereo socket. Both channels are connected together. Stereo Walkman-style headphones or loudspeakers can be used.

BEWARE: Damage will be caused to the Juno if a mono plug is used.

Appendix Four - PC2 Card Physical Characteristics

This section is for PC 2 card users who find that their card does not work at the default address. The majority of users will probably never need to read this section.

The PC2 Card is an IBM PC/AT compatible card that will fit inside both desktop PCs and portable PCs which have a standard card slot.

The card is capable of holding up to seven languages by way of the four on-board ROM sockets. The first ROM socket is a 256Kb ROM and can hold four languages. The other three ROM sockets are 64Kb and can hold one language. The first socket can also hold a normal 64Kb ROM.

The physical size of the card is 20.3cm back to front by 9.9cm high, not including the edge connector.

Address Selection

The valid address of the PC card is selected by arranging links on seven of the address lines, these lines are A1 to A6 inclusive and A8, each link can be set to either 0 or 1.

The default address of the card will still be decimal 776 (308 hex), this will correspond to the links as follows.

Address line followed by values

A11. hex 3, binary 0.
A10. binary 0.
A9. binary 1.
A8. binary 1, link number L K 4, Link position 1.
A7. hex 0, binary 0.
A6. binary 0, link number L K 5, link position 0.
A5. binary 0, link number L K 6, link position 0.
A4. binary 0, link number L K 7, link position 0.
A3. hex 8, binary 1, link number L K 8, link position 1.
A2. binary 0, link number L K 9, link position 0.
A1. binary 0.
A0. binary 0.

To change this from decimal 776 to decimal 792 (318 hex), LK7 would have to be moved from 0 to 1. As with the old PC 2 card, the two default addresses would work in 99% of applications so not many people will need to change more than one link.

The method of connecting the PC beeps/speaker is different now, you can now connect the 4 pin socket from the PC speaker directly to the 4 pin plug on the card (J6), and then a single wire connects between J3 on the card and the output on the PC motherboard.

Most functions of the PC 2 Card can be controlled by HAL5 but if you are using your own software or wish to drive the card directly please see Appendix 6 for a description of communication to the card.

Appendix Five - Description of UK English Phonemes

This section describes the Apollo 2s phonemes. Read this if you want to change the way that words are pronounced.

Introduction

The following phonemes can be embedded in ASCII text to correct the pronunciation of the Apollo 2. This can be done using your own software, by sending phonemes only using the @X command or in the exceptions dictionary in the Dolphin screen reader (currently HAL5) when misspelling proves difficult. To tell the synthesizer that the letters are to be interpreted as a phoneme when mixing text and phonemes you must prefix them with an underline (_).

Examples

    cat = _K_AE_T
    again = _A_GP_E_N
    zoo = _Z_OO


Dolphin Representation followed by Example of Use.

_AA s<A>t
_AI m<A>ke
_AR f<A>ther
_AW w<A>ter
_A <A>bout
_B <B>at
_CH <CH>oose
_D <D>og
_DH <TH>is
_EE h<EE>d
_EI th<EI>r
_ER b<IR>d
_E b<E>d
_F <F>ar
_G <G>ap
_H <H>ood
_IA f<EA>r
_IE t<IE>
_I kn<I>t
_J <J>ug
_KK s<CH>ool
_K <C>at
_L <L>ong
_M <M>ap
_NG lo<NG>
_N <N>ap
_OA b<OA>t
_OO g<OO>d
_OR p<OR>e
_OW p<OU>nd
_OY j<OY>
_O sh<O>t
_PP s<P>eech
_P <P>at
_QQ <a slight pause>
_Q <QU>ick
_R <R>ip
_SH <SH>ut
_S <S>it
_TH <TH>in
_TT s<T>eel
_T <T>ap
_UU t<OO>
_U b<U>t
_V <V>an
_W <W>et
_X e<x>pel
_Y <Y>oung
_ZH plea<S>ure
_Z <Z>ip

You could experiment with the phoneme set for your own languages.

Appendix Six - Communications

This section contains information on how the Apollo/PC 2 card speech synthesizers communicate with a PC or Toshiba computer. You should read this only if you are going to write your own software to drive the Apollo/PC 2 card synthesizers.

Introduction

The new features for the Apollo 2 require two way (half duplex) communications, in order for the speech and commands to be sent to the Apollo/PC 2 card and for the indexing, language, settings data, and echo back information to be returned.

Serial Communications

The communication uses RS232 with RTS/CTS hardware handshaking in both directions. The PC is 'master' over the link and initiates all transactions. (Appendix 1 specifies the baud rate selection and cabling).

To talk to the Apollo 2, the PC raises its RTS line and waits for the Apollo to respond with 'ready to receive data', which it does by raising the PC's CTS line. A data byte is then transmitted to the Apollo 2's UART with framing:

1 start bit
8 data bits
no parity bit
1 stop bit

The Apollo 2 drops the PC's CTS for a short time while accepting each character. Another data byte may be sent when CTS is raised again.

To read data from the Apollo 2 the PC drops its RTS line and waits or idles (under higher level control) until the character(s) are received. The Apollo 2 raises the PC's CTS line in order to indicate that it is about to send data to the PC. The Apollo 2 drops the PC's CTS line when the transmission has finished.

If the PC tries to read data when none is available, the Apollo 2 will return with a NAK character (ASCII 21).

PC 2 card and Communications

The protocol is intended to make the operation of the PC to card communications independent of the bus and processor speed.

The Apollo/PC 2 card series synthesizers require robust 2-way communications for use by functions such as continuous document read. This system relies on a software handshaking   method.

To send a character, c:

tries = 0
do
    1. Read until NULL returned
    2. Send char, c, to card
    3. Read until ACK(c) or NULL is returned
    4. increment tries
until ACK(c) or too many tries

A NULL (0) read from the card indicates that it is in the quiescent state, i.e. awaiting input (it must have missed the char c being sent). An SOH (1) means that the card has received a character at some point and is still processing it. ACK(c) is a status byte; it is the character, c, with

bit 0 flipped if the character was received OK
bit 1 flipped if bit 0 flipped and the card has data to send

To read the data from the card:

tries = 0
do
    1. Read until NULL returned
    2. Send ENQ (5) to card
    3. Read until byte > 7, or a NULL is returned
    4. increment tries
until too many tries or a byte > 7 is returned

A request for data can be made at any time by sending ENQ to the card using the above protocol. If no data is available, NAK (ASCII 21) is returned.

The maximum number of retries is typically a large number, say 1000. If you get this many then the card is probably dead. The PC or Toshiba will be much faster than the card processor, so each of the read and write operations above must include a little delay, (say, executing a 100 iteration loop in 'C' code).

A synthesizer driver library for DOS and Windows 3.1, including 'C' source code, is available on request from Dolphin Systems for programmers who wish to integrate Dolphin synthesizer access into their own programs.