DISTRIBUTION This version of the SofTalk speech synthesizer is released by the author as "shareware" and may be distributed via any media under the provision that no charge be made for SofTalk beyond the costs associated with copying and distribution. SofTalk is copyrighted by the author; modification of the code or documentation are prohibited. Inclusion of SofTalk within commercially marketed products requires license. If you find that after installation you regularly use SofTalk on your system, please send $7.50 to Parth Galen Software for a registered version of the program. New versions are introduced as modifications are made. SofTalk is intended for home computer users who wish to work with aspects of computer synthesized speech. If you are interested in this field, please call or write Parth Galen to obtain specifications for the various programs that utilize the SofTalk synthesizer. Parth Galen Software 24475 158th Avenue Cold Spring, Minnesota U.S.A. 56320 Telephone: (320)685-8871 e-mail : parthg@cloudnet.com DESCRIPTION Files that accompany this document provide elements of SofTalk, a software voice synthesizer for the Amiga computer. In addition to this document, SofTalk includes: 1. SofTalkInstall - a program to back up pre-existing Amiga speech synthesizer files and then install the SofTalk modules on your system, 2. SofTalkRestore - a program to remove SofTalk modules from your system and restore original speech synthesizer files, if they existed, 3. Narrator.device - an Amiga device driver that performs the speech synthesis, 4. Translator.library - an Amiga library of routines to translate ASCII script into the form required by the narrator.device, and 5. Narrator and translator files with binary data required to process basic English speech. 6. SofTalker - A simple demonstration program to show features of the SofTalk synthesizer. SofTalk duplicates the capabilities of the speech synthesizer included with the Amiga operating system for software versions 1.0 thru 2.0 (1985 to February of 1993). Programs that accessed the original speech devices and libraries, and followed the rules documented by the Amiga ROM Kernel Manual, should work with SofTalk. The quality of the resultant voice synthesis will be quite different. When SofTalk is installed on Amiga Version 2.1-3.x systems (which were shipped without any speech software), those programs that require voice synthesis, and were written to work with the original Amiga synthesizer, will have that capability. SofTalk provides a number of features not available in the original synthesizer software. Most significantly, both the Translator and Narrator can accomodate different languages. The translator.library can convert non-English ASCII text to phonemic codons by following rules different from those of English grammer, and the narrator.device can reproduce phonemes that are not usually found in spoken English. This same capability allows the SofTalk synthesizer to generate unique vocal characteristics, such as a child's voice, or a melodic voice. In addition, SofTalk provides up to four simultaneous independent voice outputs, and a large set of vocal modifications which can be superimposed on the basic phonemes that constitute any one voice. New SofTalk features will not be evident in programs that used the originalAmiga voice synthesis software, and the default files accompanying this archive only provide for a basic English translation with limited "character". If you are interested in language translation, please contact Parth Galen and inquire about the TransMaker language definition program. TransMaker allows you to define both the rules for parsing a language (code) and tables for the pronunciation of text in that language (data). If you have an interest in speech synthesis, inquire about the PhonMaker program. PhonMaker allows you to create unique vocal phoneme sets, thus opening speech synthesis to personal computer users in the same way that font design programs have opened the heart of the printing process to desktop publishers. Both TransMaker and PhonMaker were developed in compliance with standard Amiga programming practice, as defined in the Amiga User Interface Style Guide, and fully utilize the Amiga Intuition operating system to provide a user-friendly interface to the task of artificial speech production. If you would like to write application programs that use SofTalk to its full capability, please contact Parth Galen and ask about the SofTalk Programmer's Package. INSTALLATION The most straight-forward way to install SofTalk is to unarchive the SofTalk.lha file (preserving the archive directory structure) to a dedicated diskette having the volume name "SofTalk:". If you wish to unarchive SofTalk.lha to a hard drive directory, that directory will have to be ASSIGNed the logical volume name "SofTalk:" at the time you run the SofTalkInstall (or SofTalkRestore) programs. Boot your Amiga computer, insert a back-up copy of your "SofTalk:" diskette in any drive, double-click on the diskette icon, and then double-click on the SofTalkInstall icon, which will be displayed in the diskette window. SofTalkInstall will perform all necessary file saving and replacement operations, prompting you for any actions that cannot be taken care of automatically. Basically, SofTalkInstall does the following: 1. Checks that room is available on your system disk to install the new files. SofTalk requires slightly more disk space than the Amiga version 2.0 synthesizer software. 2. Makes copies of original "translator.library" and "narrator.device" files (if your system has them) onto the SofTalk: diskette, so you can recover these files if you should want to use them in the future. This back-up operation is performed only at first-time use of SofTalkInstall, and future installations will not over-write the backups once they are in place. Therefore, it is important that all future recovery and installation operations use the same copy of the SofTalk: diskette. You should make a new back-up copy of this diskette after performing the installation, so that you maintain two backup sets of your orginal speech synthesis software. 3. Copies the new SofTalk "translator.library" into the LIBS: directory of your system, and the new "narrator.device" into the DEVS: directory of your system, thus replacing any existing files of these names which may have been present. 4. Creates a Translator sub-directory in your system LIBS: directory, and a Narrator sub-directory in your system DEVS: directory. Copies the English language translation and phoneme data files into these sub- directories. 5. On first-time use, tests the newly-installed speech synthesizer. Messages are provided as the installation progresses. If some error condition is encountered during installation, SofTalkInstall will restore your original translator library and narrator device to your system. RESTORATION SofTalk should be a transparent change to your operating system. Programs that used the original Amiga translator library and/or narrator device should work with SofTalk. It always is possible that some programs accessed the original library or device using un-documented or non-standard methods. Such programs may not work with SofTalk. And in all programs you will note that the voice synthesized by SofTalk is quite different from that of the original Amiga synthesizer. If for any reason you wish to restore the original speech system to your Amiga, insert your SofTalk: diskette in any drive and double-click on the SofTalkRestore icon. Your original translator and narrator files will be copied back to your system (if they were present before installing SofTalk). Note that SofTalkRestore does not delete SofTalk files from your system, but only exchanges the "narrator.device" and "translator.library" for their original versions. The various data files used by the device and the library, any SofTalk application programs, and any project files from application programs, are left in your system. On systems with marginal disk storage space, it may not be possible for SofTalkRestore to make the exchange unless you provide room by deleting these (or some other) files. Such a condition is not likely to occur unless your system operates entirely from floppy drive diskettes. Neither SofTalkInstall nor SofTalkRestore ever delete files in the course of their operation. The actions of these programs are limited to backing up existing files, adding new files, and thereafter exchanging files. You can switch the SofTalk speech system back into use by running the SofTalkInstall program after a SofTalkRestore. Switching operations do not take as long as initial installation. If you find yourself switching between speech systems quite often, and your system has a hard drive, consider making a SofTalk drawer on your system disk. Copy the entire contents of the SofTalk: diskette into that drawer, assign the volume name "SofTalk:" to that drawer, and thereafter perform the switches from that hard drive drawer. HOW SOFTALK WORKS SofTalk voice synthesis involves two steps. First, a text string is converted into symbols, called codons, each of which represents one basic sound, or phoneme, of a spoken language. This procedure is accomplished by routines in the translator.library, which in turn use a language file found in the LIBS:Translator/ directory (or drawer) of your system. Unlike the original Amiga translator, SofTalk can load language files specified by an application program, and thus can accomodate any text that can be entered from a computer keyboard, including non-standard keyboard characters. Language files can be created and modified by the Parth Galen TransMaker program. A basic English language translation file, stored under the name "default", is provided with SofTalk. If an application does not specify a particular language when it accesses the translator library, the default file will be used. Thus, older programs (which were written for a translator library that did not have this capability) always will use the default language file. Note that the default file does not necessarily have to handle English; it could translate any language. A "LIBS:Translator/default" file must exist when SofTalk is load by your system. Some older application programs (such as word processors and spread sheets) load the translator.library, even though you may not use their speech capabilities; such programs will fail unless SofTalk can find the default language file. Once a text string has been converted to codons, each codon must be associated with a set of audio data, and then the entire sequence of audio data must be "sounded" by the computer. This is the task of the narrator.device, which acquires its data from a file in the DEVS:Narrator/ directory of your system. Because these data are file based, a program can instruct the SofTalk narrator device to use sets of sounds that are designed to have specific vocal characteristics, such as a child's voice, or sounds that are designed for specific languages (French consonants, for example, can "sound" quite different from their English counterparts). Basic sounds in any language are called "phonemes", and the Parth Galen PhonMaker program can be used to create or modify the sound data for a SofTalk narrator device file. As in the case of the translator.library, a default file must be present to accomodate older programs that accessed the narrator without specifying any particular set of phonemes. A basic English masculine adult voice is provided in the "DEVS:Narrator/default" file that accompanies SofTalk. The DEVS/Narrator directory of this SofTalk distribution disk contains three phoneme sets. The "default" set will be copied to your system during installation, and represents a male adult voice. You may wish to try the pg_female_adult or pg_male_adult phonemes. These voices can be used by copying the desired file into your DEVS:Narrator/ directory in place of the "default" file with a Shell (CLI) command such as: Copy SofTalk:Devs/Narrator/pg_female_adult to DEVS:Narrator/default OR Copy SofTalk:Devs/Narrator/pg_male_adult to DEVS:Narrator/default The speech rate of the pg_female_adult voice cannot be changed, and that of the pg_male_adult voice can only be changed slightly. These two phoneme sets are based on sampled sounds, rather than algorithms. They represent the kinds of variations that can be constructed with the Parth Galen PhonMaker program. In fact, it is not necessary to translate a text string into codons to produce spoken sounds. Codons really are just keyboard entries in a phonetic alphabet, and a string of codons can be directly entered into the narrator device. Many programs that generate fixed voice messages simply store the string of codons. Programs that cannot know ahead of time what strings are to be spoken must first translate the text into codons, and then pass the codon string to the narrator. The SofTalker program allows you to perform simple translations and speech output using the default language and phonemes. You can run SofTalker from any directory (drawer) by clicking on its icon twice (or by a Run SofTalker command from the CLI or Shell). Simply enter English text in the upper gadget; the lower gadget will display the translated codons, and the narrator.device will sound the result. If you wish, you can enter codons directly into the lower string gadget. You may be able to "figure out" the relationship of codons-to-sounds without formal study. SofTalk uses the same notation system employed by the original Amiga synthesizer, which was based on a phonetic alphabet suitable for standard keyboards called the ARPABET. You can change various characteristics of the voice by changing values in the four columns of gadgets provided in the SofTalker window. These vocal effects represent only a sample of the features supported by the SofTalk speech system. Programmers who wish to incorporate synthesized voice into their products should ask about Parth Galen's Programmers Package, which fully documents all the capabilities of SofTalk. Both the translator.library and the narrator.device are only as "good" as the instructions and data stored in their files. The default files provided with SofTalk are intended for basic English voice synthesis, but many shortcomings will be noticed. A major problem lies in the translation of English, a language in which it is notoriously difficult to relate spelling with spoken sounds. Equally challenging is the reproduction of intelligible words by joining basic speech elements together. These two aspects of speech synthesis are, fundamentally, the subjects of grammar and phonetics. If you think you can do better (and you probably could, if you tried) you should consider creating your own language files with Parth Galen's TransMaker or PhonMaker programs.