What's New in DECtalk V4.4 Programming?

DECtalk Software V4.4 contains the following new features with regard to programming. Where text is highlighted, you can jump directly to the help on the feature.

Support for multiple instances of the text-to-speech objects in a single process.

A new startup function, TextToSpeechStartupEx(), has been added to compliment the platform specific TextToSpeechStartup() function for Windows. The Windows startup function supports windowing messages, while the new extended startup function supports callbacks. On UNIX, both startup functions work similar to the Windows extended startup function, in other words, they support callbacks not window messages.

A new document, the DECtalk™ Software Reference Guide, has been added. This guide provides an overview and reference listings of the DECtalk Software in-line commands. It also contains a listing of all reference tables for phonemic symbols, stress and syntactic symbols, tone tables, and homographs.

Changes have been made to the UNIX code to allow for posix thread changes.

Implementation of the TextToSpeechReset() function has been changed.

The TextToSpeechPause() function has been made asynchronous.

New license specific return values have been added to the startup functions, TextToSpeechStartup() (Windows) , TextToSpeechStartup() (UNIX) , and TextToSpeechStartupEx(). They are MMSYSERR_ALLOCATED and MMSYSERR_NOTENABLED.

The ttsapi header file (ttsapi.h) was modified for 4.4. The following is a list of changes that were made.

Symbol in TTSAPI.H | Old Value | New Value
OUTPUT_TO_AF_DEVICE | 01000000 | no longer exists
OUTPUT_TO_MME_DEVICE | 80000000 | no longer exists
OWN_AUDIO_DEVICE | 10000000 | 00000001
REPORT_OPEN_ERROR | 20000000 | 00000002
DO_NOT_USE_AUDIO_DEVICE | 40000000 | 80000000

For compatibility reasons, the INDEX_MARK and MESSAGE_BUFFER symbols were changed. The variables were renamed to force a recompile of any code that uses the old names since the values were not guaranteed to mean the same thing between 4.2A and 4.4.

Old Symbol | Value | New Symbol | Value
INDEX_MARK | 0 | TTS_MSG_INDEX_MARK | 1
MESSAGE_BUFFER | 1 | TTS_MSG_BUFFER | 0
|  | TTS_MSG_STATUS | 2

The callback routines defined in both the TextToSpeechStartup() and the TextToSpeechStartupEx() functions have been changed.

The old callback routine, defined in DECtalk Software 4.2A was defined as:

Callback (DWORD param1, LONG param2, LONG userDefined)

param1: | Type of callback (INDEX_MARK or MEMORY_BUFFER) or error
param2: | For INDEX_MARK, this would be the index mark value
| For MEMORY_BUFFER, this would be a pointer to the memory buffer
userDefined: | Pointer to user-defined data that was passed in TextToSpeechStartup()

The new callback routine, defined in DECtalk Software 4.4 is defined as:

Callback (DWORD param1, LONG param2, LONG userDefined, UINT uiMsg)

param1: | For TTS_MSG_STATUS, this will indicate the error/status code
param2: | For TTS_MSG_BUFFER, this will be a pointer to the memory buffer
| For TTS_MSG_INDEX_MARK, this will be the index mark value
| For TTS_MSG_STATUS, this is additional information for the error/status.
userDefined: | Pointer to user-defined data that was passed in TextToSpeechStartup()
uiMsg: | TTS_MSG_BUFFER for memory buffers
| TTS_MSG_STATUS for error and status information
| TTS_MSG_INDEX_MARK for index marks

DECtalk.lib has been placed in \Program Files\DECtalk\li b.

The 8 khz, 16 bit mono output is now supported in the functions

TextToSpeechOpenInMemory() and TextToSpeechOpenWaveOutFile().