Skip Navigation

You are here: Home > Projects > Dec Talk Information

Dec Talk Information

This page contains information for the DecTalk speech synthesizer. I hope that it will grow to be a useful resource. If you have any other information which you think may be helpful to others, or if you have suggestions, please send mail to ccn@chrisnestrud.com

Contents

Inline Commands

Inline commands are mixed with text which is sent to the synthesizer for speaking.

NameDescriptionSyntaxOptionsParametersDefaultExamplesNotes
Comma Pause This command increases or decreases the length of the comma pause. Comma pause can be increased and decreased. [:cp 0] resets the comma pause to its default state (approximately 160 ms). Comma pauses can be increased to 30,000 ms and decreased to -40 ms. All values outside legal range default to the nearest legal values. [:comma DDD] or [:cp DDD] NonePause time in milliseconds 160 ms [:comma 250]
ErrorThis command sets the error mode for the module. This command is useful for debugging an application. [:error XX YY] ignore Ignore all errors. speak Speak error string in current command. tone Generate tone if error. on Absolute mode off Enable mode set Disable Mode Off[:error ignore on]
LogThe in-line log command is used to log either text, phonemes, at a time. This command will not open a file if any other Text-To-Speech file is open or if the system is in speech-to-memory mode. In these cases, the in-line [:log XX on] command will be discarded and the in-line [:log XX off] command will cause an error. [:log xx yy] text Log all text except escape sequences (Earlier versions of DECtalk Software used escape sequences for control). syllable Log converted syllables. s phonemes Log converted phonemic text. on (Absolute mode) off (Enable mode) set (Disable Mode) Value = DD on Absolute mode off Enable mode set Disable Mode Off[:log text on][:log phonemes on] The phonemes for this sentence will be stored in a file named log.txt [:log phoneme off] named log.txt [:log text off]
MarkIndex marks are used to report the progress of the text as it is spoken. Index marks are position markers; they do not modify heuristics or word pronunciations in any way. The index mark sequence inserts a flag into the text stream. When DECtalk encounters an [:index mark 01] command, a message is sent to the user's callback function corresponding to the callback function passed in the TextToSpeechStartup() function. The LPARAM field of the message contains the index value. The index mark value can be any number between 00 and 99. If a callback function is not specified in the TextToSpeechStartup() call, index marks in the text are ignored. [:index mark DD] NoneValue = DD None[:index mark 01]
modeThis command changes the mode for all text processed after the mark. It remains until the end of the file is reached or until the next mode command is encountered. [:mode XX YY] math: Change interpretation of selected symbols europe: Select European cardinal pronunciation spell: Spell all words name: Pronounce all uppercase verbs as proper nouns (see also [:pronounce name]) homograph: Reserved for future use on Absolute mode off Enable mode set Disable Mode Off[:mode spell on] Europe Mode Example: When mode is set to Europe, a comma (,) is the separator between the integer and fraction part of a number. A period (.) is the separator between three- digit blocks. 1.255 (United States) = 1,255 (Europe) 125,873 (United States) = 125.873 (Europe) Math Mode Example: Math takes special symbols and characters and pronounces them with mathematical meanings. See next table for a list of characters with differring treatments.[:mode spell on] Europe Mode Example: When mode is set to Europe, a comma (,) is the separator between the integer and fraction part of a number. A period (.) is the separator between three- digit blocks. 1.255 (United States) = 1,255 (Europe) 125,873 (United States) = 125.873 (Europe) Math Mode Example: Math takes special symbols and characters and pronounces them with mathematical meanings. (See next table for a list of characters having differring treatments.) Mode Name Example: Mode name allows uppercase words that occur in non sentence initial position to be interpreted as special cases and pronounced as names. Do not enable [:mode name] except when pronouncing lists of names. Mode Name interprets any uppercase word as a name. When finished, make sure that this mode is set to OFF. For the occasional use of this utility, use the [:pronounce name] command. Mode commands are asynchronous.
pauseThis command pauses the audio output. Any pending but unspoken text is retained, including index marks that might have been sent by the application. All text that occurs after the pause is not processed until the pause time is exceeded. Unlike previous versions of DECtalk hardware products, the in-line pause command is a synchronous command. This means that all text which occurs after the pause is not processed until the pause time is exceeded. [:pause DDD] NonePause time in milliseconds; 0 = forever None[:pause 1000] Pause for one second.
Period Pause The length of the period pause can be increased and decreased with the Period Pause command. This command [:pp 0] resets the period pause to its default state (approximately 640 ms). Period pauses can be increased to 30,000 ms and decreased by -380 ms. All values outside the legal range default to the nearest legal values. [:period DDD] or [:pp 0] NonePause time in milliseconds 640 ms [:period 250]
Phoneme Interpretation When set, this command allows everything within brackets to be interpreted as phonemic text. When phonemicizing text, simply put legal phoneme strings in brackets. This allows for the preferred pronunciation of a word or phrase. This command is extremely important because it sets the left bracket ( [ ) and right bracket ( ] ) characters as phoneme delimiters. When this command is set, all text and characters that appear between brackets is interpreted as phonemic text and is pronounced as such. This is useful when you do not want to turn this command on but want to have something read phonetically. For example, to say the word associate, simply embed the phonemic string [axs'owshiyeyt] in the text string. Make sure that you use a right bracket after entering phonetic text when this command is set. If you do not, any normal text appearing after the right bracket will sound garbled. One right bracket is sufficient to close phonemic mode. It is sometimes useful to begin a text file with a right bracket (]) to ensure that text is not interpreted phonetically. Also, the command sequence consisting of a left bracket followed by a colon ([:) is always interpreted as the beginning of a voice command. Default for phoneme mode is Off, and it must be turned On by a special command.[:phoneme on] is an abbreviated version of the [:phoneme arpabet speak on] command. [:phoneme XX YY] or [:phoneme on] or [:phoneme arpabet on] ASCI: Reserved for future use. arpabet: Set phonetic interpretation to arpabet alphabet. speak: Speak encountered phonemes. silent: Do not speak encountered phonemes. on Set phoneme off [:phoneme arpabet speak on]
Play Wave Files This command plays any wave file that is supported by your computer's audio system. The command is synchronous. This command does not work if the Text-To-Speech system is writing a wave file or writing the speech samples to memory. [:play ] NoneA directory path and file name. None [:play bell.wav][:play /usr/examples/noise.wav]
Pronounce Alternate This command pronounces the alternate pronunciation for the word immediately following it. Use a [:pron alt] to obtain an alternative pronunciation for a word listed in the Homograph table in Chapter 6. For example, the primary pronunciation of the word wind is w'ihnd, as in 'the wind is blowing'. The secondary pronunciation, denoted by [:pron alt] wind, is w'aynd, as in 'wind up the top'. [:pron alt] NoneNoneOffHe played [:pron alt] bass in the band.
Pronounce Name This command pronounces the word immediately following it as a proper name. First names, last names, street names, and place names are all examples of proper names. This command can be used when DECtalk Software mispronounces a proper noun. [:pron name] None None Off Terry [:pron name] Aresenault
Resume Unlike previous versions of DECtalk hardware products the resume command is a synchronous command. Thus the Resume command will not restart the system after an in-line pause command. The in-line resume command may be used if the computer is not fast enough to run real time and the amount of text is not greater than approximately 256 characters. In this case the system would be paused by the TextToSpeechPause() function before queuing text by the TextToSpeechSpeak() function and the in-line resume command would be placed at the end of the text message. If the text is too long then the in-line resume command may never be processed. [:resume] NoneNoneN/A[:resume]
Say Mode In DECtalk each clause, word, or letter is spoken as it is queued. In word and letter mode, DECtalk does not need to wait for a clause terminator to begin speaking. This command interacts with the rate selection command so that you can set both rate selection and speak word or rate selection and letter mode for the optimal output. [:say XX] clause: Speak on end of clause. word: Speak on end of word. letter: Speak on end of letter. line: Speak on end of line. None[:say clause] [:say word]
Tonesystem. The command is synchronous. This command does not work if theThis command generates sounds of different frequencies and lengths based on the parameters you set. This command allows you to make a wide variety of sounds for purposes such as notification or warnings. Regular tones can also be used for a number of other purposes such as indications of margin bell, etc.
VolumeDECtalk changes the audio system gain in increments from 0 to 99. Increments or decrements of 10 to 20 provide a perceptual increase or decrease in volume. The volume command is an absolute command; [volume up] and [volume down] are relative commands and increase or decrease the original value. This does not affect the volume when writing wave files or using the speech-to- memory capability. Stereo Volume Control The following monaural volume commands were supported in DECtalk Software V4.1. [:volume set XX] Set left and right channel volume to XX [:volume up XX] Raise left and right channel volume by XX [:volume down XX] Lower left and right channel volume by XX where XX is always from 0 to 99. The following stereo commands have been added to DECtalk Software 4.2. [:volume lset XX] Set left channel volume to XX [:volume lup XX] Raise left channel volume by XX [:volume ldown XX] Lower left channel volume by XX [:volume rset XX] Set right channel volume to XX [:volume rup XX] Raise right channel volume by XX [:volume rdown XX] Lower right channel volume by XX "[:volume sset XX, YY] Set left channel volume to XX and right channel" volume to YY. The volume commands are synchronous commands. The volume may not be raised above 99 or lowered below 0. Any attempt to do so will result in limiting to these values. [:volume XX DD] Up: increases volume by the selected amount. Down: decreases volume by the selected amount. Volume or delta volume [:volume up 30]

Phonemic Alphabet

The table below lists the phonemic alphabet that DecTalk uses, along with an example of each sound. Some dictionaries put the stress symbol after the vowel nucleus or at the start of the syllable. However, DECtalk Software requires that the stress symbol appear immediately before the vowel.

SymbolWord (showing phoneme)Word (complete)
silencesilence
aab obbob
aeba tbat
ahb utbut
aobou ghtbought
awboutbout
axa boutabout
ayby tebyte
bb ottlebottle
chch inchin
dd ebtdebt
dhth isthis
dxrid errider
ehb etbet
elbottlebottle
enbuttonbutton
eyba kebake
ff infin
gguessguess
hxh eadhead
ihb itbit
ixkisseskisses
iybea tbeat
jhg ingin
kKenKen
ll etlet
lxel ectricelectric
mm etmet
nn etnet
nxsingsing
owboa tboat
oyb oyboy
pp etpet
qwe e atweeat
rr edred
rrb irdbird
rxor ationoration
ss itsit
shsh inshin
tt esttest
thth inthin
txLat inLatin
uhbo okbook
uwlu telute
vv estvest
ww etwet
yucu tecute
yxy etyet
zz oozoo
zhaz ureazure

Defining New Voices

Each voice can be defined to create thousands of other voices. ":DV" stands for "Define Voice", and must be used before any of the defining commands. A space must be placed between ":DV" and the definition command. Following are some of the options which can be used to create your very own voices.

Other Useful References

Here are other references which are useful.

Credits

Thanks to the following for providing additional information.