DECtalk USB Extended Commands Overview - The DECtalk USB is a text to speech synthesizer specially designed to convert ASCII text into natural sounding intelligable speech. Text is sent to the DECtalk USB via a USB port or a standard RS232 serial port operating at 9600,n,8,1. Text or software commands may be sent to the DECtalk USB in an ASCII (8 bit) character format. All data sent to the DECtalk USB is first passed through an embedded command interpreter before reaching its internal text to speech engine. The internal text to speech engine of the DECtalk USB is based on DECtalk text-to-speech(TTS) synthesis technology from Fonix Corporation, Inc. For more information on DECttalk TTS, see the DECtalk_USB_Commands.txt file. The purpose of the embedded command interpreter is to provide additional control and functionality to the DECtalk TTS engine. Command strings that are parsed by the command interpreter begin with a control character. These command strings, composed of a control character or a control character followed by a letter, are refered to as "Extended commands". Features such as changing languages, forcing speech output, storing a user dictionary etc. are all handled via the extended commands. Extended Commands - Extended Commands are one to four character commands that are primarily used to control hardware and specialized software features of the DECtalk USB. All Extended commands first begin with a control character (ASCII value 1 through 26) and are sometimes followed by an additional command character. Extended commands that are made up of only one control character are refered to as a "Single Character Extended Command". Extended commands made up of more than one character are refered to as "Double Character Extended Commands". All double character extended commands first begin with a CTRL-A character followed by a letter or another control character. For example, sending the string "\x01@\x01\x02v" would reset the internal DECtalk TTS engine and return the firmware version number. The following table is a list of supported "Double Character Extended Commands". Table 1.1 - Double Character Commands Command Character Function -------------------------------- '@' Reset DECtalk TTS engine. 'l' Select language. "ls" Select language and save as default. 'm' Mute audio amp or codec. 'u' Load user dictionary. 'v' Set codec volume level. 'Ctrl-B' Boot monitor command. (\x01\x02B = Boot monitor mode) (\x01\x02N = Normal mode) (\x01\x02v = Product version string) (\x01\x02? = Firmware version info.) Table 1.2 - Single Character Commands Control Character ASCII Value Function -------------------------------------------------- Ctrl-C 3 Stop speech and flush buffers. Ctrl-K 11 Speak command. Ctrl-N 14 Pause speech. Ctrl-O 15 Resume speech. Double Character Extended Command Descriptions - Note: All double character extended commands must first begin with a Ctrl-A followed by one or more characters. Name: Reset command. Command Character: '@' The reset command causes the DECtalk TTS engine to be reset. All buffers are cleared and speech is halted. Name: Language Select command. Command Character: 'l' This command selects one of the 6 predefined languages that reside in flash memory on the DECtalk USB board. After issuing the Language Select command, send an ascii character between '0' and '5' to change to the desired language. This language will remain the active language until a reset occurs or the board loses power. Refer to Table 1.3 for a list of supported languages. Example: \x01l\x35 (selects German) Table 1.3 Supported Languages ------------------- 0 - U.S. English 1 - U.K. English 2 - Castilian Spanish 3 - Latin-American Spanish 4 - French 5 - German Name: Language Select and Save command. Command Character sequence: "ls" This command sequence, selects and saves as the default language, one of the 6 predefined languages that reside in flash memory on the DECtalk USB board. After issuing the Language Select and Save command sequence, send an ascii character between '0' and '5' to change to the desired language and save it as the default. This language will remain the default language until this command sequence is issued again. Refer to Table 1.3 for a list of supported languages. Example: \x01ls\x35 (selects German and saves it as the default) Name: Mute command. Command Character: 'm' This command mutes speech output from either the output audio amplifier or the onboard codec. Following this command, send an ascii character '0' through '3' to select the source and functionality of the mute command. Consider the following list of source and functionality selections: '0' - Disable output audio amplifier mute feature. (default) '1' - Enable output audio amplifier mute feature. '2' - Disable CODEC mute feature. (default) '3' - Enable CODEC mute feature. Example: \x01m\x31 Will mute the output audio amplifier and no speech will be heard. Keep in mind that when you mute either the output audio amplifier or the onboard CODEC, text is still processed by the text to speech engine. Name: Load User Dictionary command. Command Character: 'u' ***Important: Only ".dic" files generated from the windic.exe utility located on your DECtalk USB installation cd may be downloaded to your DECtalk USB. Attempting to download files that are not in the correct dictionary format may damage your unit. This command loads a user dictionary into flash memory. When a system reset or software reset occurs, the user dictionary becomes functional. After sending this command, send a 16bit word describing the size of the user dictionary in bytes, followed by the user dictionary itself. The 16bit word describing the size of the user dictionary should be sent least significant byte (LSB) first. Once the user dictionary is received, a 16bit CRC is sent back least significant byte first (LSB) to validate the transfer of the file. If the 16bit CRC comes back correctly, you may now send an 'p' to program the dictionary into flash. Sending an 'e' will abort the user dictionary download process. Upon completion of the download and flash programming process, an 'f' is sent back to indicate that you are finished. Just reset the DECtalk USB and your user dictionary should now function. Name: Codec volume command. Command Character: 'v' This command sets the volume level of audio produced by the codec. After issuing the Codec volume command, send an ascii character between '0' and '9' to set the volume level. A value of '0' will result in a decrease in audio output while a value of '9' will result in maximum audio output. The default value is set to '9'. It is strongly recommended that you use the DECtalk command [:vol att dd] to adjust audio volume levels. Adjusting codec volume levels may affect speech quality. Name: Boot monitor command. Command Character: 'Ctrl-B' The boot monitor command is a special command that may be used to change the devices' mode of operation or query the device for version information. Sending the boot monitor command followed by an 'B' will place the unit in "Boot Monitor" mode. This is a special mode used for debugging purposes as well as flash downloading. Example: Send the string "\x01\x02B" to place the DECtalk USB in boot monitor mode. Sending the boot monitor command followed by an 'N' will place the unit in "Normal Mode". When in normal mode, commands are parced by the command interpreter and ascii text may be converted into speech. The default mode is normal mode. Example: Send the string "\x01\x02N" to place the DECtalk USB in normal mode. Sending the boot monitor command followed by an 'v' will retreive the product version of the DECtalk USB. For example, sending \x01\x02v will cause the DECtalk USB to send back "[:dtu200]". Sending the boot monitor command followed by an '?' will retreive version information. A total of six bytes are sent back containing the version of the DECtalk engine as well as the version of the DECtalk USB firmware. The first four bytes, sent LSB first, contain the DECtalk engine version in a hexadecimal format. The last two bytes, sent LSB first, contain the DECtalk USB firmware version in a hexadecimal format. Example: 32 46 00 00 03 01 DECtalk Engine = 0x00004632 DECtalk Firmware = 0x0103 Single Character Extended Command Descriptions - Note: Single character extended commands are control characters that are processed immediately. Name: Stop speech command. Command Character: 'Ctrl-C' ASCII Value: 3 This command will stop speech output and flush all internal buffers of the DECtalk USB. Name: Speak command. Command Character: 'Ctrl-K' ASCII Value: 11 This command will force all text in the internal buffers of the DECtalk USB to be spoken. Index marks are returned as they are encountered within the audio output stream. Name: Pause command. Command Character: 'Ctrl-N' ASCII Value: 14 The Pause command forces speech output to be paused. Text buffers are NOT cleared. Use the Resume command to continue speaking remaining text in text buffers. The last index mark processed is returned. Name: Resume command. Command Character: 'Ctrl-O' ASCII Value: 15 The Resume command will resume speech output. Use this command after a Pause command has been issued to start speech up again.