Socket
Socket
Sign inDemoInstall

node-dectalk

Package Overview
Dependencies
2
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.3 to 0.1.0

docs/classes/TTSBuffer.html

609

build/src/index.d.ts

@@ -0,15 +1,32 @@

/// <reference types="node" />
declare const addon: any;
export type TTSCallback = (msg: Message, param: any) => void;
export interface LanguageParams {
language: number;
languageAttributes: number;
readonly language: number;
readonly languageAttributes: number;
}
export interface TTSPhoneme {
readonly phoneme: number;
readonly duration: number;
readonly sampleNumber: number;
}
export interface TTSIndex {
readonly index: number;
readonly sampleNumber: number;
}
export declare enum Message {
Buffer = 9,
IndexMark = 1,
Status = 2,
Visual = 3
}
export interface TTSCaps {
numberOfLanguages: number;
languageParams: LanguageParams[];
sampleRate: number;
minimumSpeakingRate: number;
maximumSpeakingRate: number;
numberOfPredefinedSpeakers: number;
characterSet: number;
version: number;
readonly numberOfLanguages: number;
readonly languageParams: LanguageParams[];
readonly sampleRate: number;
readonly minimumSpeakingRate: number;
readonly maximumSpeakingRate: number;
readonly numberOfPredefinedSpeakers: number;
readonly characterSet: number;
readonly version: number;
}

@@ -33,36 +50,36 @@ export declare enum LogType {

export declare enum MMSysError {
/** no error */
/** No error */
NoError = 0,
/** unspecified error */
/** Unspecified error */
Error = 1,
/** device ID out of range */
/** Device ID out of range */
BadDeviceID = 2,
/** driver failed enable */
/** Driver failed enable */
NotEnabled = 3,
/** device already allocated */
/** Device already allocated */
Allocated = 4,
/** device handle is invalid */
/** Device handle is invalid */
InvalHandle = 5,
/** no device driver present */
/** No device driver present */
NoDriver = 6,
/** memory allocation error */
/** Memory allocation error */
NoMem = 7,
/** function isn't supported */
/** Function isn't supported */
NotSupported = 8,
/** error value out of range */
/** Error value out of range */
BadErrNum = 9,
/** invalid flag passed */
/** Invalid flag passed */
InvalFlag = 10,
/** invalid parameter passed */
/** Invalid parameter passed */
InvalParam = 11,
/** handle being used */
/** Handle being used */
HandleBusy = 12,
/** "Specified alias not found in WIN.INI */
InvalidAlias = 13,
/** last error in range */
/** Last error in range */
LastError = 13
}
/** defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */
/** Defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */
export declare enum WaveFormat {
/** invalid format */
/** Invalid format */
InvalidFormat = 0,

@@ -100,2 +117,5 @@ /** 11.025 kHz, Mono, 8-bit */

}
/**
* The DECtalk Text-To-Speech system supports the following predefined speaking voices.
*/
export declare enum Speaker {

@@ -118,3 +138,3 @@ Paul = 0,

export declare enum DeviceID {
/** device ID for wave device mapper */
/** Device ID for wave device mapper */
Mapper = 4294967295,

@@ -124,94 +144,114 @@ /** Open device as shareable */

}
/**
* The main class for the DECtalk Text-To-Speech system.
*/
export declare class DecTalk extends addon.DecTalk {
/**
* Create a new instance of the DECtalk Text-To-Speech system.
*/
constructor();
/**
* DECtalk initialization function.
* Initializes the text-to-speech system; defines the callback routine; and loads the main and user pronunciation dictionaries.
* @param {(DeviceID | number)} [deviceID] - Wave out device ID number. `WaveMapper` may be used here if the device ID number is unknown.
* @param {DeviceManagement} [deviceManagement=DeviceManagement.OwnAudioDevice] - Specifies how the wave output device is managed.
* @return {MMSysError} This value is zero if initialization was successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoDriver` - No wave out device driver present <br/>
* `BadDeviceID` - Device ID out of range <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Error` - Dictionary not found <br/>
* `InvalParam` - Invalid param for th eload dictionary <br/>
* @memberof DecTalk
* @return {MMSysError} This value is zero if initialization was successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero).
* - {@link MMSysError.NoDriver | NoDriver} - No wave out device driver present.
* - {@link MMSysError.BadDeviceID | BadDeviceID} - Device ID out of range.
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory.
* - {@link MMSysError.Error | Error} - Dictionary not found.
* - {@link MMSysError.InvalParam | InvalParam} - Invalid param for the load dictionary.
* @comment If the callback procedure is defined, then the calling application will be called via the callback routine when a buffer is filled while in speech-to-memory mode, an error occurs, or an index mark is encountered. <br/>
* The default parameters are: <br/>
* * Language: American English.
* * Speaking rate: 200 words per minute.
* * Speaker: Paul.
* @see {@link shutdown}
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link speak}
*/
startup(deviceID?: DeviceID | number, deviceManagement?: DeviceManagement): MMSysError;
startup(deviceID?: DeviceID | number, deviceManagement?: DeviceManagement, cb?: TTSCallback): MMSysError;
/**
* DECtalk shutdown function.
* @returns {MMSysError} This value is zero if shutdown was successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* Shuts down the text-to-speech system and frees all system resources used by the text-to-speech system.
* @returns {MMSysError} This value is zero if shutdown was successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero).
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid.
* @comment This call is called when you close an application. Any user-defined dictionaries, which were previously loaded, are automatically unloaded. All previously queued text is discarded and the text-to-speech system will immediately stop speaking.
* @see {@link startup}
*/
shutdown(): MMSysError;
/**
* This function queues to the Text-To-Speech system.
* Qqueues to the text-to-speech system. While in startup state, speech samples are routed to the audio device or ignored, depending on whether the {@link DeviceManagement.DoNotUseAudioDevice | DoNotUseAudioDevice} flag is set in the `deviceOptions` parameter of the startup function. If the text-to-speech system is in one of its special modes (wave-file, log-file, or speech-to-memory modes), the speech samples are handled accordingly.
* @async
* @param { ( string | string[] ) } text - The text to be spoken.
* @param { boolean } [ force = false ] - Specifies if the text is to be pushed through the Text-To-Speech system even if it is not on a clause boundary.
* @return {Promise<MMSysError>} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {Promise<MMSysError>} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The speaker, speaking rate, and volume can also be changed in the text string by inserting in-line commands as shown in the following example: <br/>
* `[:name paul] I am Paul. [:nb] I am Betty. [:volume set 50] The volume has been set to 50% of the maximum level. [:ra 120] I am speaking at 120 words per minute.`
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link startup}
*/
speak(text: string | string[], force?: boolean): Promise<MMSysError>;
/**
* This function queues to the Text-To-Speech system.
* Qqueues to the text-to-speech system. While in startup state, speech samples are routed to the audio device or ignored, depending on whether the {@link DeviceManagement.DoNotUseAudioDevice | DoNotUseAudioDevice} flag is set in the `deviceOptions` parameter of the startup function. If the text-to-speech system is in one of its special modes (wave-file, log-file, or speech-to-memory modes), the speech samples are handled accordingly.
* @param { ( string | string[] ) } text - The text to be spoken.
* @param { boolean } [ force = false ] - Specifies if the text is to be pushed through the Text-To-Speech system even if it is not on a clause boundary.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The speaker, speaking rate, and volume can also be changed in the text string by inserting in-line commands as shown in the following example: <br/>
* `[:name paul] I am Paul. [:nb] I am Betty. [:volume set 50] The volume has been set to 50% of the maximum level. [:ra 120] I am speaking at 120 words per minute.`
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link startup}
*/
speakSync(text: string | string[], force?: boolean): MMSysError;
/**
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the `pause()` function.
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the {@link pause()} function.
* @async
* @return {Promise<MMSysError>} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Unable to complete queued text <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {Promise<MMSysError>} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Unable to complete queued text. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link pause}
*/
sync(): Promise<MMSysError>;
/**
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the `pause()` function.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Unable to complete queued text <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text-To-Speech system has been paused by the {@link pause()} function.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Unable to complete queued text. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link pause}
*/
syncSync(): MMSysError;
/**
* Creates a wave file. All subsequent calls to the `speak()` function cause the audio to be written to the specified file until the `closeWaveFile()` function is called.
*
* Causes the specified wave file to be opened and the text-to-speech system to enter into wave-file mode. This mode indicates that the speech samples are to be written in wave format into the wave file each time {@link speak()} is called. The text-to-speech system remains in the wave-file mode until {@link closeWaveFile()} is called.
* @param {string} filename - The name of the wave file to be created.
* @param {WaveFormat} format - Ddetermines the wave file audio sample format.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalParam` - An invalid parameter was passed (An illegal wave output format value.) <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Allocated` - A wave output file is already open <br/>
* `Error` - Unable to open the wave output file or unable to write to the wave output file <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @param {WaveFormat} format - Determines one or more of the wave file audio sample format.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter or an illegal wave output format was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Memory allocation error. <br/>
* - {@link MMSysError.Allocated | Allocated} - A wave file is already open. <br/>
* - {@link MMSysError.Error | Error} - Unable to open the wave file or unable to write to the wave file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call. <br/>
* The startup function must be called to start the text-to-speech system before calling {@link openWaveFile()}.
* @see {@link closeWaveFile}
* @see {@link pause}
* @see {@link reset}
* @see {@link speak}
* @see {@link startup}
*/

@@ -221,116 +261,353 @@ openWaveFile(filename: string, format: WaveFormat): MMSysError;

* Close the Text-To-Speech Wave File.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Failure to wait for pending speech. <br/>
* OR Unable to update the wave output file header <br/>
* OR Unable to close the wave output file. <br/>
* OR No wave output file is open <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Failure to wait for pending speech, unable to update wave file header, or unable to close the wave file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The application must call {@link openWaveFile()} before calling {@link closeWaveFile()}.
* @see {@link openWaveFile}
*/
closeWaveFile(): MMSysError;
/**
* Creates a file which contains either text, phonemes, or syllables. The phonemes and syllables are written using the arpabet alphabet. After calling this function, all subsequent calls to the `speak()` function cause the log data to be written to specified file until the `closeLogFile()` function is called.
* Causes the specified log file to be opened and the text-to-speech sytem to enter into the log-file mode. This mode indicates that the speech samples are to be written as text, phonemes, or syllables into the log file each time {@link speak()} is called. The phonemes and syllables are written using the arpabet alphabet. The text-to-speech system remains in the log-file mode until {@link closeLogFile()} is called.
* @param {string} filename - The name of the log file to be created.
* @param {LogType=} [logType] - Specifies the type of log file to be created.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalParam` - An invalid parameter was passed <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Allocated` - A log file is already open <br/>
* `Error` - Unable to open the log file. <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @param {LogType=} [logType] - Specifies one or more of the type of output.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Allocated | Allocated} - A log file is already open. <br/>
* - {@link MMSysError.Error | Error} - Unable to open the output file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment If more than one of the dwFlags are passed, then the logged output is mixed in an unpredictable fashion. If there is already a log file open, this call returns an error. The Log command has no effect when a log file is already open. <br/>
* The startup function must be called to start the text-to-speech system before calling this function. <br/>
* {@link openLogFile()} automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link closeLogFile}
* @see {@link pause}
* @see {@link reset}
* @see {@link speak}
* @see {@link startup}
*/
openLogFile(filename: string, logType?: LogType): MMSysError;
/**
* Closes the log file opened by the `openLogFile()` function.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Failure to wait for pending speech <br/>
* OR Unable to close the output file <br/>
* OR No output file is open <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Closes the log file opened by the {@link openLogFile()} function.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Failure to wait for pending speech, unable to close the output file, or no output file is open. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call closes an open log file, even if it was opened with the Log in-line command. <br/>
* The application must call {@link openLogFile()} before calling {@link closeLogFile()}.
* @see {@link openLogFile}
*/
closeLogFile(): MMSysError;
/**
* Pauses the Text-To-Speech system.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The specified device handle is invalid (The system is NOT speaking), or the Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Pauses text-to-speech audio output.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The specified device handle is invalid. The system is not speaking or the text-to-speech handle is invalid. <br/>
* @comment This call only affects the audio output and has no effect when writing log files, wave files, or when using the speech-to-memory capability of the text-to-speech system. <br/>
* If the text-to-speech system owns the audio device (i.e. {@link DeviceManagement.OwnAudioDevice | OwnAudioDevice} was specified in the startup function), then it remains paused until one of the following is called: <br/>
* * openInMemory
* * openLogFile
* * ppenWaveFile
* * resume
* * sync
* If the text-to-speech system does not own the audio device (i.e. {@link DeviceManagement.OwnAudioDevice | OwnAudioDevice} was NOT specified in the startup function) and {@link pause()} is called while the system is speaking, it will remain paused until the system has completed speaking. <br/>
* In this case, the wave output device is released when {@link reset()} is called. It will also be released if {@link sync()}, {@link openInMemory()}, {@link openLogFile()}, or {@link openWaveFile()} is called AND the system has completed speaking. <br/>
* Note that the {@link pause()} call will NOT resume audio output if the text-to-speech system has been paused by the {@link pause()} call.
* @see {@link resume}
* @see {@link reset}
* @see {@link speak}
* @see {@link sync}
*/
pause(): MMSysError;
/**
* Resumes the Text-To-Speech system.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The specified device handle is invalid (The system is NOT speaking), or the Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Resumes text-to-speech output after it was paused by calling {@link pause()}.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The system was not paused or the text-to-speech handle was invalid. <br/>
* @comment This call only affects the audio output and has no effect when writing log files, writing wave files, or when writing speech samples to memory.
* @see {@link pause}
*/
resume(): MMSysError;
/**
* cancels all audio output and deletes any text from the Text-To-Speech systems text queue. All pending index marks are discarded.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Error` - Unable to flush the system <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Cancels all audio output and deletes any text from the Text-To-Speech systems text queue. All pending index marks are discarded.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Error | Error} - Unable to flush the system. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The {@link reset()} call flushes all previously queued text and stops all audio output. If the {@link openInMemory()} call has enabled outputting the speech samples to memory, then all queued memory buffers will be returned to the calling application. If the `reset` flag is on and the text-to-speech system is in one of its special modes (log-file, wave-file or speech-to-memory mode), then all files will be closed and the text-to-speech system is returned to the startup state. <br/>
* {@link reset()} should be called before {@link closeInMemory()}. Failing to do this in a situation where the synthesizer is busy may result in a deadlock.
* @see {@link pause}
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
*/
reset(): MMSysError;
get sampleRate(): number;
set sampleRate(value: number);
/**
* Returns the current setting of the volume.
* @type {number} The current setting of the volume. Valid values range from 0 to 100.
* @comment The current setting of the volume is returned even if the volume change has not yet occurred. This may occur while setting {@link volume} without the {@link sync()} call. The volume change occurs on clause boundaries.
*/
get volume(): number;
/**
* Sets the volume of the text-to-speech system.
* @comment The volume change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set volume(value: number);
/**
* Returns the current setting of the attenuation volume.
* @type {number} The current setting of the attenuation volume. Valid values range from 0 to 100.
* @comment The current setting of the attenuation volume is returned even if the attenuation volume change has not yet occurred. This may occur while setting {@link attenuationVolume} without the {@link sync()} call. The attenuation volume change occurs on clause boundaries.
*/
get attenuationVolume(): number;
/**
* Sets the attenuation volume of the text-to-speech system.
* @comment The attenuation volume change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set attenuationVolume(value: number);
/**
* Returns the current setting of the speaking rate.
* @type {number} The current setting of the speaking rate. Valid values range from 75 to 600 words per minute.
* @comment The current setting of the speaking rate is returned even if the speaking rate change has not yet occurred. This may occur while setting {@link rate} without the {@link sync()} call. The speaking-rate change occurs on clause boundaries.
*/
get rate(): number;
/**
* Sets the text-to-speech speaking rate.
* @comment The speaking rate change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set rate(value: number);
/**
* Returns the value of the identifier for the last voice that has spoken.
* @type {Speaker} The current speaker.
* @comment Note that even after a setting {@link speaker}, {@link speaker} returns the value for the previous speaking voice until the new voice actually has spoken.
*/
get speaker(): Speaker;
/**
* Sets the voice of the speaker the text-to-speech system will use.
* @comment The change in speaking voice is not effective until the next phrase boundary. All queued audio encountered before the phrase boundary is unaffected.
*/
set speaker(value: Speaker);
/**
* Returns if the Text-To-Speech system is currently speaking.
* @type {boolean} value is `true` if audio samples are playing and `false` if no audio sample is playing.
* @comment Has no meaning if the application is sending speech to a wave file or sending speech to memory.
*/
get isSpeaking(): boolean;
/**
* Returns a count of characters that the text-to-speech system is currently processing.
* @type {number} The number of characters that the text-to-speech system is currently processing.
*/
get inputCharacterCount(): number;
/**
* Returns the current wave output device ID.
* @type {number} The current wave output device ID.
*/
get waveOutDeviceID(): number;
get language(): number;
set language(value: number);
/**
* Lists the current capabilities of the DECtalk Software by returning the class {@link TTSCaps}.
* @static
* @returns {TTSCaps} The capabilities of the DECtalk Software.
* @comment Information returned in the {@link TTSCaps} class includes languages and proper-name pronunciation support, sample rate, minimum and maximum speaking rate, number of predefined speaking voices, character-set supported, and version number.
*/
static getCapabilities(): TTSCaps;
/**
* Load a user dictionary. If a user dictionary is already loaded then it must be unloaded by the `unloadUserDictionary()` function before the new dictionary can be loaded.
* Loads a user-defined pronunciation dictionary into the text-to-speech system.
* @param {string} filename - The name of the user dictionary file to be loaded.
* @returns {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalParam` - Dictory file not found. (invalid dictionary file name) <br/>
* `Error` - Illegal dictionary format, or a dictionary is already loaded <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory for dictionary. <br/>
* - {@link MMSysError.InvalParam | InvalParam} - Dictionary file not found or an invalid dictionary file name. <br/>
* - {@link MMSysError.Error | Error} - Illegal dictionary format or a dictionary is already loaded. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call loads a dictionary created by the windict or userdict applet. Any previously loaded user dictionary must be unloaded before loading a new user dictionary. Note that the text-to-speech system will automatically load a user dictionary, user.dic, at startup if it exists in the home directory.
* @see {@link unloadUserDictionary}
*/
loadUserDictionary(filename: string): MMSysError;
/**
* Unloads the currently loaded user dictionary
* @returns {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Unloads the currently loaded user dictionary.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment A user dictionary is created using the User Dictionary Build tool.
* @see {@link loadUserDictionary}
*/
unloadUserDictionary(): MMSysError;
/**
* Returns information about the currently running version of DECtalk Software.
* @readonly
* @static
*/
static get version(): {
readonly dllVersion: number;
readonly dTalkVersion: number;
readonly structVersion: number;
readonly language: string;
readonly version: string;
readonly versionString: string;
readonly dtMajor: number;
readonly dtMinor: number;
readonly dapiMajor: number;
readonly dapiMinor: number;
};
/**
* Causes the text-to-speech system to enter into the speech-to-memory mode. This mode indicates that the speech samples are to be written into memory buffers rather than sent to an audio device each time {@link speak()} is called. The {@link addBuffer()} call supplies the text-to-speech system with the memory buffers that it needs. The text-to-speech system remains in the speech-to-memory mode until {@link closeInMemory()} is called.
* @param {WaveFormat} format - Determines the wave file audio sample format
* @return {MMSysError} The value will be zero if the function is successful. return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter or illegal wave output format was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Error | Error} - Illegal output state. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The text-to-speech system is in the speech-to-memory mode after successfully invoking this call. The memory buffer is passed using the class {@link TTSBuffer}. <br/>
* The text-to-speech system returns the buffer to the application when the memory buffer, phoneme array, or index mark array is full or when force was used in the {@link speak()} call. <br/>
* The startup function must be called to start the text-to-speech system before calling this function. <br/>
* {@link openInMemory()} automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link closeInMemory}
* @see {@link addBuffer}
* @see {@link startup}
* @see {@link TTSBuffer}
* @see {@link speak}
* @see {@link pause}
* @see {@link reset}
* @see {@link returnBuffer}
*/
openInMemory(format: WaveFormat): MMSysError;
/**
* Return the Text-To-Speech system to it's normal state. Speech samples will be routed to the audio device (if audio output was enabled at startup).
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Output to memory not enabled or unable to create a system object. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment {@link openInMemory()} must be called before calling {@link closeInMemory()}.
* @see {@link openInMemory}
*/
closeInMemory(): MMSysError;
/**
* Add a buffer to the memory list.
* @param {TTSBuffer} buf - The buffer to be added to the memory list.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - Invalid parameter. <br/>
* - {@link MMSysError.Error | Error} - Output to memory not enabled or unable to create a system object. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The application must call {@link openInMemory()} before calling {@link addBuffer()}. The memory buffer is passed using the {@link TTSBuffer} class. <br/>
* The text-to-speech system returns the buffer to the application when the memory buffer, phoneme array, or index mark array is full or when force was used in the {@link speak()} call.
* @see {@link openInMemory}
* @see {@link returnBuffer}
* @see {@link startup}
* @see {@link TTSBuffer}
*/
addBuffer(buf: TTSBuffer): MMSysError;
/**
* Cause the current buffer to be returned even if it not yet full. The buffer may in fact be empty.
* @returns {TTSBuffer} The buffer returned by the Text-To-Speech system.
*/
returnBuffer(): TTSBuffer;
/**
* Speaks a single letter as quickly as possible, aborting any previously queued speech. This will be somewhat slower if {@link speak()} has been called since the last {@link typing()} or {@link reset()} call.
* @param {string} text - The character to be spoken.
* @comment This function should only be called only when the application is synthesizing directly to an audio device (not to memory or to a file).
` */
typing(text: string): void;
/**
* Checks for an installed language and loads it into the DecTalk Multi-Language (ML) engine.
* @static
* @param {string} lang - The language to be loaded.
* @returns {number} A handle to the loaded language on success or sets the bit `TTSLangError` on failure. If the `TTSLangError` bit is set, the return can equal one of two values: `TTSNotSupported` for the application is not running DECtalk ML and `TTSNotAvailable` for the language selected is not installed.
* @comments This call must be called before a language may be selected and opened in a multi-language application.
*/
static startLang(lang: string): number;
/**
* Selects a loaded language for a program thread.
* @static
* @param {number} lang - The language header to be selected.
* @returns {boolean} True if the language was selected successfully.
*/
static selectLang(lang: number): boolean;
/**
* Closes an instance for an installed language and attempts to unload it from the DecTalk Multi-Language (ML) engine.
* @static
* @param {string} lang - The language to be closed.
* @returns {boolean} True if the language was closed successfully.
* @comments Call this application per thread using the selected language. When a thread returns `true`, the language is freed and can be uninstalled or upgraded. A return of `true` may be a bad pass of the lang variable or more instances. If there are more instances, the call frees the current instance and returns a `false` flag. After calling {@link closeLang()}, assume the language handle is no longer valid.
* @see {@link enumLangs}
* @see {@link startLang}
* @see {@link selectLang}
*/
static closeLang(lang: string): boolean;
/**
* Retrieves information about what languages are available.
* @static
* @returns {{ multiLang: boolean, languages: { code: string, name: string }[] }} An object contains language data, and zero on error
* @comment {@link enumLangs()} returns the default language in the registry as the first language of the array of entries returned by langs.
* @see {@link startLang}
* @see {@link selectLang}
* @see {@link closeLang}
*/
static enumLangs(): {
multiLang: boolean;
languages: {
code: string;
name: string;
}[];
} | 0;
}
/**
* Contains information about the current state of the Text-To-Speech system.
* @comment When the memory buffer is completed, the memory buffer is returned to the calling application. A memory buffer is considered completed when any one of the following occur: <br/>
* * The memory buffer ( the data field ) is filled.
* * The phoneme array is filled.
* * The index mark array is filled.
* * A `TTSForce` argument is used in the call to {@link DecTalk.speak | speak()}.
* @see {@link DecTalk.addBuffer}
* @see {@link DecTalk.returnBuffer}
*/
export declare class TTSBuffer extends addon.TTSBuffer {
/**
* Creates an instance of TTSBuffer.
* @param { { data?: number, phoneme?: number, index?: number } } options - The maximum lengths of each list.
*/
constructor(options: {
data?: number;
phoneme?: number;
index?: number;
});
/**
* The audio sample data buffer.
* @readonly
* @type {Buffer}
*/
readonly data: Buffer;
/**
* The list of phonemes in the buffer.
* @readonly
* @type {TTSPhoneme[]}
*/
readonly phoneme: TTSPhoneme[];
/**
* The list of index marks in the buffer.
* @readonly
* @type {TTSIndex[]}
*/
readonly index: TTSIndex[];
/**
* The maximum number of bytes in the data buffer.
* @readonly
* @type {number}
*/
readonly maxBufferLength: number;
/**
* The maximum number of classes in the phoneme array.
* @readonly
* @type {number}
*/
readonly maxPhonemeLength: number;
/**
* The maximum number of classes in the index array.
* @readonly
* @type {number}
*/
readonly maxIndexLength: number;
}
export {};

@@ -15,5 +15,12 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.DecTalk = exports.DeviceID = exports.DeviceManagement = exports.Speaker = exports.WaveFormat = exports.MMSysError = exports.LogType = void 0;
exports.TTSBuffer = exports.DecTalk = exports.DeviceID = exports.DeviceManagement = exports.Speaker = exports.WaveFormat = exports.MMSysError = exports.LogType = exports.Message = void 0;
const bindings_1 = __importDefault(require("bindings"));
const addon = (0, bindings_1.default)('node-dectalk.node');
var Message;
(function (Message) {
Message[Message["Buffer"] = 9] = "Buffer";
Message[Message["IndexMark"] = 1] = "IndexMark";
Message[Message["Status"] = 2] = "Status";
Message[Message["Visual"] = 3] = "Visual";
})(Message || (exports.Message = Message = {}));
var LogType;

@@ -38,38 +45,38 @@ (function (LogType) {

(function (MMSysError) {
/** no error */
/** No error */
MMSysError[MMSysError["NoError"] = 0] = "NoError";
/** unspecified error */
/** Unspecified error */
MMSysError[MMSysError["Error"] = 1] = "Error";
/** device ID out of range */
/** Device ID out of range */
MMSysError[MMSysError["BadDeviceID"] = 2] = "BadDeviceID";
/** driver failed enable */
/** Driver failed enable */
MMSysError[MMSysError["NotEnabled"] = 3] = "NotEnabled";
/** device already allocated */
/** Device already allocated */
MMSysError[MMSysError["Allocated"] = 4] = "Allocated";
/** device handle is invalid */
/** Device handle is invalid */
MMSysError[MMSysError["InvalHandle"] = 5] = "InvalHandle";
/** no device driver present */
/** No device driver present */
MMSysError[MMSysError["NoDriver"] = 6] = "NoDriver";
/** memory allocation error */
/** Memory allocation error */
MMSysError[MMSysError["NoMem"] = 7] = "NoMem";
/** function isn't supported */
/** Function isn't supported */
MMSysError[MMSysError["NotSupported"] = 8] = "NotSupported";
/** error value out of range */
/** Error value out of range */
MMSysError[MMSysError["BadErrNum"] = 9] = "BadErrNum";
/** invalid flag passed */
/** Invalid flag passed */
MMSysError[MMSysError["InvalFlag"] = 10] = "InvalFlag";
/** invalid parameter passed */
/** Invalid parameter passed */
MMSysError[MMSysError["InvalParam"] = 11] = "InvalParam";
/** handle being used */
/** Handle being used */
MMSysError[MMSysError["HandleBusy"] = 12] = "HandleBusy";
/** "Specified alias not found in WIN.INI */
MMSysError[MMSysError["InvalidAlias"] = 13] = "InvalidAlias";
/** last error in range */
/** Last error in range */
MMSysError[MMSysError["LastError"] = 13] = "LastError";
})(MMSysError || (exports.MMSysError = MMSysError = {}));
;
/** defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */
/** Defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */
var WaveFormat;
(function (WaveFormat) {
/** invalid format */
/** Invalid format */
WaveFormat[WaveFormat["InvalidFormat"] = 0] = "InvalidFormat";

@@ -107,2 +114,5 @@ /** 11.025 kHz, Mono, 8-bit */

})(WaveFormat || (exports.WaveFormat = WaveFormat = {}));
/**
* The DECtalk Text-To-Speech system supports the following predefined speaking voices.
*/
var Speaker;

@@ -129,3 +139,3 @@ (function (Speaker) {

(function (DeviceID) {
/** device ID for wave device mapper */
/** Device ID for wave device mapper */
DeviceID[DeviceID["Mapper"] = 4294967295] = "Mapper";

@@ -136,3 +146,9 @@ /** Open device as shareable */

;
/**
* The main class for the DECtalk Text-To-Speech system.
*/
class DecTalk extends addon.DecTalk {
/**
* Create a new instance of the DECtalk Text-To-Speech system.
*/
constructor() {

@@ -142,26 +158,33 @@ super();

/**
* DECtalk initialization function.
* Initializes the text-to-speech system; defines the callback routine; and loads the main and user pronunciation dictionaries.
* @param {(DeviceID | number)} [deviceID] - Wave out device ID number. `WaveMapper` may be used here if the device ID number is unknown.
* @param {DeviceManagement} [deviceManagement=DeviceManagement.OwnAudioDevice] - Specifies how the wave output device is managed.
* @return {MMSysError} This value is zero if initialization was successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoDriver` - No wave out device driver present <br/>
* `BadDeviceID` - Device ID out of range <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Error` - Dictionary not found <br/>
* `InvalParam` - Invalid param for th eload dictionary <br/>
* @memberof DecTalk
* @return {MMSysError} This value is zero if initialization was successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero).
* - {@link MMSysError.NoDriver | NoDriver} - No wave out device driver present.
* - {@link MMSysError.BadDeviceID | BadDeviceID} - Device ID out of range.
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory.
* - {@link MMSysError.Error | Error} - Dictionary not found.
* - {@link MMSysError.InvalParam | InvalParam} - Invalid param for the load dictionary.
* @comment If the callback procedure is defined, then the calling application will be called via the callback routine when a buffer is filled while in speech-to-memory mode, an error occurs, or an index mark is encountered. <br/>
* The default parameters are: <br/>
* * Language: American English.
* * Speaking rate: 200 words per minute.
* * Speaker: Paul.
* @see {@link shutdown}
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link speak}
*/
startup(deviceID, deviceManagement = DeviceManagement.OwnAudioDevice) {
return super.startup(deviceID, deviceManagement);
startup(deviceID, deviceManagement = DeviceManagement.OwnAudioDevice, cb) {
return super.startup(deviceID, deviceManagement, cb);
}
/**
* DECtalk shutdown function.
* @returns {MMSysError} This value is zero if shutdown was successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* Shuts down the text-to-speech system and frees all system resources used by the text-to-speech system.
* @returns {MMSysError} This value is zero if shutdown was successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero).
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid.
* @comment This call is called when you close an application. Any user-defined dictionaries, which were previously loaded, are automatically unloaded. All previously queued text is discarded and the text-to-speech system will immediately stop speaking.
* @see {@link startup}
*/

@@ -172,13 +195,16 @@ shutdown() {

/**
* This function queues to the Text-To-Speech system.
* Qqueues to the text-to-speech system. While in startup state, speech samples are routed to the audio device or ignored, depending on whether the {@link DeviceManagement.DoNotUseAudioDevice | DoNotUseAudioDevice} flag is set in the `deviceOptions` parameter of the startup function. If the text-to-speech system is in one of its special modes (wave-file, log-file, or speech-to-memory modes), the speech samples are handled accordingly.
* @async
* @param { ( string | string[] ) } text - The text to be spoken.
* @param { boolean } [ force = false ] - Specifies if the text is to be pushed through the Text-To-Speech system even if it is not on a clause boundary.
* @return {Promise<MMSysError>} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {Promise<MMSysError>} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The speaker, speaking rate, and volume can also be changed in the text string by inserting in-line commands as shown in the following example: <br/>
* `[:name paul] I am Paul. [:nb] I am Betty. [:volume set 50] The volume has been set to 50% of the maximum level. [:ra 120] I am speaking at 120 words per minute.`
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link startup}
*/

@@ -197,12 +223,15 @@ speak(text, force = false) {

/**
* This function queues to the Text-To-Speech system.
* Qqueues to the text-to-speech system. While in startup state, speech samples are routed to the audio device or ignored, depending on whether the {@link DeviceManagement.DoNotUseAudioDevice | DoNotUseAudioDevice} flag is set in the `deviceOptions` parameter of the startup function. If the text-to-speech system is in one of its special modes (wave-file, log-file, or speech-to-memory modes), the speech samples are handled accordingly.
* @param { ( string | string[] ) } text - The text to be spoken.
* @param { boolean } [ force = false ] - Specifies if the text is to be pushed through the Text-To-Speech system even if it is not on a clause boundary.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The speaker, speaking rate, and volume can also be changed in the text string by inserting in-line commands as shown in the following example: <br/>
* `[:name paul] I am Paul. [:nb] I am Betty. [:volume set 50] The volume has been set to 50% of the maximum level. [:ra 120] I am speaking at 120 words per minute.`
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link startup}
*/

@@ -216,11 +245,10 @@ speakSync(text, force = false) {

/**
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the `pause()` function.
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the {@link pause()} function.
* @async
* @return {Promise<MMSysError>} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Unable to complete queued text <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {Promise<MMSysError>} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Unable to complete queued text. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link pause}
*/

@@ -236,10 +264,9 @@ sync() {

/**
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the `pause()` function.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Unable to complete queued text <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text-To-Speech system has been paused by the {@link pause()} function.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Unable to complete queued text. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link pause}
*/

@@ -250,16 +277,19 @@ syncSync() {

/**
* Creates a wave file. All subsequent calls to the `speak()` function cause the audio to be written to the specified file until the `closeWaveFile()` function is called.
*
* Causes the specified wave file to be opened and the text-to-speech system to enter into wave-file mode. This mode indicates that the speech samples are to be written in wave format into the wave file each time {@link speak()} is called. The text-to-speech system remains in the wave-file mode until {@link closeWaveFile()} is called.
* @param {string} filename - The name of the wave file to be created.
* @param {WaveFormat} format - Ddetermines the wave file audio sample format.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalParam` - An invalid parameter was passed (An illegal wave output format value.) <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Allocated` - A wave output file is already open <br/>
* `Error` - Unable to open the wave output file or unable to write to the wave output file <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @param {WaveFormat} format - Determines one or more of the wave file audio sample format.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter or an illegal wave output format was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Memory allocation error. <br/>
* - {@link MMSysError.Allocated | Allocated} - A wave file is already open. <br/>
* - {@link MMSysError.Error | Error} - Unable to open the wave file or unable to write to the wave file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call. <br/>
* The startup function must be called to start the text-to-speech system before calling {@link openWaveFile()}.
* @see {@link closeWaveFile}
* @see {@link pause}
* @see {@link reset}
* @see {@link speak}
* @see {@link startup}
*/

@@ -271,12 +301,8 @@ openWaveFile(filename, format) {

* Close the Text-To-Speech Wave File.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Failure to wait for pending speech. <br/>
* OR Unable to update the wave output file header <br/>
* OR Unable to close the wave output file. <br/>
* OR No wave output file is open <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Failure to wait for pending speech, unable to update wave file header, or unable to close the wave file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The application must call {@link openWaveFile()} before calling {@link closeWaveFile()}.
* @see {@link openWaveFile}
*/

@@ -287,15 +313,20 @@ closeWaveFile() {

/**
* Creates a file which contains either text, phonemes, or syllables. The phonemes and syllables are written using the arpabet alphabet. After calling this function, all subsequent calls to the `speak()` function cause the log data to be written to specified file until the `closeLogFile()` function is called.
* Causes the specified log file to be opened and the text-to-speech sytem to enter into the log-file mode. This mode indicates that the speech samples are to be written as text, phonemes, or syllables into the log file each time {@link speak()} is called. The phonemes and syllables are written using the arpabet alphabet. The text-to-speech system remains in the log-file mode until {@link closeLogFile()} is called.
* @param {string} filename - The name of the log file to be created.
* @param {LogType=} [logType] - Specifies the type of log file to be created.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalParam` - An invalid parameter was passed <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Allocated` - A log file is already open <br/>
* `Error` - Unable to open the log file. <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @param {LogType=} [logType] - Specifies one or more of the type of output.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Allocated | Allocated} - A log file is already open. <br/>
* - {@link MMSysError.Error | Error} - Unable to open the output file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment If more than one of the dwFlags are passed, then the logged output is mixed in an unpredictable fashion. If there is already a log file open, this call returns an error. The Log command has no effect when a log file is already open. <br/>
* The startup function must be called to start the text-to-speech system before calling this function. <br/>
* {@link openLogFile()} automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link closeLogFile}
* @see {@link pause}
* @see {@link reset}
* @see {@link speak}
* @see {@link startup}
*/

@@ -306,12 +337,10 @@ openLogFile(filename, logType) {

/**
* Closes the log file opened by the `openLogFile()` function.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Failure to wait for pending speech <br/>
* OR Unable to close the output file <br/>
* OR No output file is open <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Closes the log file opened by the {@link openLogFile()} function.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Failure to wait for pending speech, unable to close the output file, or no output file is open. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call closes an open log file, even if it was opened with the Log in-line command. <br/>
* The application must call {@link openLogFile()} before calling {@link closeLogFile()}.
* @see {@link openLogFile}
*/

@@ -322,9 +351,20 @@ closeLogFile() {

/**
* Pauses the Text-To-Speech system.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The specified device handle is invalid (The system is NOT speaking), or the Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Pauses text-to-speech audio output.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The specified device handle is invalid. The system is not speaking or the text-to-speech handle is invalid. <br/>
* @comment This call only affects the audio output and has no effect when writing log files, wave files, or when using the speech-to-memory capability of the text-to-speech system. <br/>
* If the text-to-speech system owns the audio device (i.e. {@link DeviceManagement.OwnAudioDevice | OwnAudioDevice} was specified in the startup function), then it remains paused until one of the following is called: <br/>
* * openInMemory
* * openLogFile
* * ppenWaveFile
* * resume
* * sync
* If the text-to-speech system does not own the audio device (i.e. {@link DeviceManagement.OwnAudioDevice | OwnAudioDevice} was NOT specified in the startup function) and {@link pause()} is called while the system is speaking, it will remain paused until the system has completed speaking. <br/>
* In this case, the wave output device is released when {@link reset()} is called. It will also be released if {@link sync()}, {@link openInMemory()}, {@link openLogFile()}, or {@link openWaveFile()} is called AND the system has completed speaking. <br/>
* Note that the {@link pause()} call will NOT resume audio output if the text-to-speech system has been paused by the {@link pause()} call.
* @see {@link resume}
* @see {@link reset}
* @see {@link speak}
* @see {@link sync}
*/

@@ -335,9 +375,8 @@ pause() {

/**
* Resumes the Text-To-Speech system.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The specified device handle is invalid (The system is NOT speaking), or the Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Resumes text-to-speech output after it was paused by calling {@link pause()}.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The system was not paused or the text-to-speech handle was invalid. <br/>
* @comment This call only affects the audio output and has no effect when writing log files, writing wave files, or when writing speech samples to memory.
* @see {@link pause}
*/

@@ -348,11 +387,14 @@ resume() {

/**
* cancels all audio output and deletes any text from the Text-To-Speech systems text queue. All pending index marks are discarded.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Error` - Unable to flush the system <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Cancels all audio output and deletes any text from the Text-To-Speech systems text queue. All pending index marks are discarded.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Error | Error} - Unable to flush the system. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The {@link reset()} call flushes all previously queued text and stops all audio output. If the {@link openInMemory()} call has enabled outputting the speech samples to memory, then all queued memory buffers will be returned to the calling application. If the `reset` flag is on and the text-to-speech system is in one of its special modes (log-file, wave-file or speech-to-memory mode), then all files will be closed and the text-to-speech system is returned to the startup state. <br/>
* {@link reset()} should be called before {@link closeInMemory()}. Failing to do this in a situation where the synthesizer is busy may result in a deadlock.
* @see {@link pause}
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
*/

@@ -362,47 +404,96 @@ reset() {

}
get sampleRate() {
return super.getSampleRate();
}
set sampleRate(value) {
super.setSampleRate(value);
}
/**
* Returns the current setting of the volume.
* @type {number} The current setting of the volume. Valid values range from 0 to 100.
* @comment The current setting of the volume is returned even if the volume change has not yet occurred. This may occur while setting {@link volume} without the {@link sync()} call. The volume change occurs on clause boundaries.
*/
get volume() {
return super.getVolume();
return super.volume;
}
/**
* Sets the volume of the text-to-speech system.
* @comment The volume change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set volume(value) {
super.setVolume(value);
super.volume = value;
}
/**
* Returns the current setting of the attenuation volume.
* @type {number} The current setting of the attenuation volume. Valid values range from 0 to 100.
* @comment The current setting of the attenuation volume is returned even if the attenuation volume change has not yet occurred. This may occur while setting {@link attenuationVolume} without the {@link sync()} call. The attenuation volume change occurs on clause boundaries.
*/
get attenuationVolume() {
return super.getAttenuationVolume();
return super.attenuationVolume;
}
/**
* Sets the attenuation volume of the text-to-speech system.
* @comment The attenuation volume change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set attenuationVolume(value) {
super.setAttenuationVolume(value);
super.attenuationVolume = value;
}
/**
* Returns the current setting of the speaking rate.
* @type {number} The current setting of the speaking rate. Valid values range from 75 to 600 words per minute.
* @comment The current setting of the speaking rate is returned even if the speaking rate change has not yet occurred. This may occur while setting {@link rate} without the {@link sync()} call. The speaking-rate change occurs on clause boundaries.
*/
get rate() {
return super.getRate();
return super.rate;
}
/**
* Sets the text-to-speech speaking rate.
* @comment The speaking rate change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set rate(value) {
super.setRate(value);
super.rate = value;
}
/**
* Returns the value of the identifier for the last voice that has spoken.
* @type {Speaker} The current speaker.
* @comment Note that even after a setting {@link speaker}, {@link speaker} returns the value for the previous speaking voice until the new voice actually has spoken.
*/
get speaker() {
return super.getSpeaker();
return super.speaker;
}
/**
* Sets the voice of the speaker the text-to-speech system will use.
* @comment The change in speaking voice is not effective until the next phrase boundary. All queued audio encountered before the phrase boundary is unaffected.
*/
set speaker(value) {
super.setSpeaker(value);
super.speaker = value;
}
/**
* Returns if the Text-To-Speech system is currently speaking.
* @type {boolean} value is `true` if audio samples are playing and `false` if no audio sample is playing.
* @comment Has no meaning if the application is sending speech to a wave file or sending speech to memory.
*/
get isSpeaking() {
return super.isSpeaking;
}
/**
* Returns a count of characters that the text-to-speech system is currently processing.
* @type {number} The number of characters that the text-to-speech system is currently processing.
*/
get inputCharacterCount() {
return super.inputCharacterCount;
}
/**
* Returns the current wave output device ID.
* @type {number} The current wave output device ID.
*/
get waveOutDeviceID() {
return super.waveOutDeviceID;
}
get language() {
return super.getLanguage();
}
set language(value) {
super.setLanguage(value);
}
// get language () {
// return super.language;
// }
// set language ( value: number ) {
// super.language = value;
// }
/**
* Lists the current capabilities of the DECtalk Software by returning the class {@link TTSCaps}.
* @static
* @returns {TTSCaps} The capabilities of the DECtalk Software.
* @comment Information returned in the {@link TTSCaps} class includes languages and proper-name pronunciation support, sample rate, minimum and maximum speaking rate, number of predefined speaking voices, character-set supported, and version number.
*/
static getCapabilities() {

@@ -412,13 +503,12 @@ return super.getCapabilities();

/**
* Load a user dictionary. If a user dictionary is already loaded then it must be unloaded by the `unloadUserDictionary()` function before the new dictionary can be loaded.
* Loads a user-defined pronunciation dictionary into the text-to-speech system.
* @param {string} filename - The name of the user dictionary file to be loaded.
* @returns {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalParam` - Dictory file not found. (invalid dictionary file name) <br/>
* `Error` - Illegal dictionary format, or a dictionary is already loaded <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory for dictionary. <br/>
* - {@link MMSysError.InvalParam | InvalParam} - Dictionary file not found or an invalid dictionary file name. <br/>
* - {@link MMSysError.Error | Error} - Illegal dictionary format or a dictionary is already loaded. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call loads a dictionary created by the windict or userdict applet. Any previously loaded user dictionary must be unloaded before loading a new user dictionary. Note that the text-to-speech system will automatically load a user dictionary, user.dic, at startup if it exists in the home directory.
* @see {@link unloadUserDictionary}
*/

@@ -429,9 +519,8 @@ loadUserDictionary(filename) {

/**
* Unloads the currently loaded user dictionary
* @returns {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Unloads the currently loaded user dictionary.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment A user dictionary is created using the User Dictionary Build tool.
* @see {@link loadUserDictionary}
*/

@@ -441,3 +530,145 @@ unloadUserDictionary() {

}
/**
* Returns information about the currently running version of DECtalk Software.
* @readonly
* @static
*/
static get version() {
return super.version;
}
/**
* Causes the text-to-speech system to enter into the speech-to-memory mode. This mode indicates that the speech samples are to be written into memory buffers rather than sent to an audio device each time {@link speak()} is called. The {@link addBuffer()} call supplies the text-to-speech system with the memory buffers that it needs. The text-to-speech system remains in the speech-to-memory mode until {@link closeInMemory()} is called.
* @param {WaveFormat} format - Determines the wave file audio sample format
* @return {MMSysError} The value will be zero if the function is successful. return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter or illegal wave output format was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Error | Error} - Illegal output state. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The text-to-speech system is in the speech-to-memory mode after successfully invoking this call. The memory buffer is passed using the class {@link TTSBuffer}. <br/>
* The text-to-speech system returns the buffer to the application when the memory buffer, phoneme array, or index mark array is full or when force was used in the {@link speak()} call. <br/>
* The startup function must be called to start the text-to-speech system before calling this function. <br/>
* {@link openInMemory()} automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link closeInMemory}
* @see {@link addBuffer}
* @see {@link startup}
* @see {@link TTSBuffer}
* @see {@link speak}
* @see {@link pause}
* @see {@link reset}
* @see {@link returnBuffer}
*/
openInMemory(format) {
return super.openInMemory(format);
}
/**
* Return the Text-To-Speech system to it's normal state. Speech samples will be routed to the audio device (if audio output was enabled at startup).
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Output to memory not enabled or unable to create a system object. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment {@link openInMemory()} must be called before calling {@link closeInMemory()}.
* @see {@link openInMemory}
*/
closeInMemory() {
return super.closeInMemory();
}
/**
* Add a buffer to the memory list.
* @param {TTSBuffer} buf - The buffer to be added to the memory list.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - Invalid parameter. <br/>
* - {@link MMSysError.Error | Error} - Output to memory not enabled or unable to create a system object. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The application must call {@link openInMemory()} before calling {@link addBuffer()}. The memory buffer is passed using the {@link TTSBuffer} class. <br/>
* The text-to-speech system returns the buffer to the application when the memory buffer, phoneme array, or index mark array is full or when force was used in the {@link speak()} call.
* @see {@link openInMemory}
* @see {@link returnBuffer}
* @see {@link startup}
* @see {@link TTSBuffer}
*/
addBuffer(buf) {
return super.addBuffer(buf);
}
/**
* Cause the current buffer to be returned even if it not yet full. The buffer may in fact be empty.
* @returns {TTSBuffer} The buffer returned by the Text-To-Speech system.
*/
returnBuffer() {
return super.returnBuffer();
}
/**
* Speaks a single letter as quickly as possible, aborting any previously queued speech. This will be somewhat slower if {@link speak()} has been called since the last {@link typing()} or {@link reset()} call.
* @param {string} text - The character to be spoken.
* @comment This function should only be called only when the application is synthesizing directly to an audio device (not to memory or to a file).
` */
typing(text) {
super.typing(text);
}
/**
* Checks for an installed language and loads it into the DecTalk Multi-Language (ML) engine.
* @static
* @param {string} lang - The language to be loaded.
* @returns {number} A handle to the loaded language on success or sets the bit `TTSLangError` on failure. If the `TTSLangError` bit is set, the return can equal one of two values: `TTSNotSupported` for the application is not running DECtalk ML and `TTSNotAvailable` for the language selected is not installed.
* @comments This call must be called before a language may be selected and opened in a multi-language application.
*/
static startLang(lang) {
return super.startLang(lang);
}
/**
* Selects a loaded language for a program thread.
* @static
* @param {number} lang - The language header to be selected.
* @returns {boolean} True if the language was selected successfully.
*/
static selectLang(lang) {
return super.selectLang(lang);
}
/**
* Closes an instance for an installed language and attempts to unload it from the DecTalk Multi-Language (ML) engine.
* @static
* @param {string} lang - The language to be closed.
* @returns {boolean} True if the language was closed successfully.
* @comments Call this application per thread using the selected language. When a thread returns `true`, the language is freed and can be uninstalled or upgraded. A return of `true` may be a bad pass of the lang variable or more instances. If there are more instances, the call frees the current instance and returns a `false` flag. After calling {@link closeLang()}, assume the language handle is no longer valid.
* @see {@link enumLangs}
* @see {@link startLang}
* @see {@link selectLang}
*/
static closeLang(lang) {
return super.closeLang(lang);
}
/**
* Retrieves information about what languages are available.
* @static
* @returns {{ multiLang: boolean, languages: { code: string, name: string }[] }} An object contains language data, and zero on error
* @comment {@link enumLangs()} returns the default language in the registry as the first language of the array of entries returned by langs.
* @see {@link startLang}
* @see {@link selectLang}
* @see {@link closeLang}
*/
static enumLangs() {
return super.enumLangs();
}
}
exports.DecTalk = DecTalk;
/**
* Contains information about the current state of the Text-To-Speech system.
* @comment When the memory buffer is completed, the memory buffer is returned to the calling application. A memory buffer is considered completed when any one of the following occur: <br/>
* * The memory buffer ( the data field ) is filled.
* * The phoneme array is filled.
* * The index mark array is filled.
* * A `TTSForce` argument is used in the call to {@link DecTalk.speak | speak()}.
* @see {@link DecTalk.addBuffer}
* @see {@link DecTalk.returnBuffer}
*/
class TTSBuffer extends addon.TTSBuffer {
/**
* Creates an instance of TTSBuffer.
* @param { { data?: number, phoneme?: number, index?: number } } options - The maximum lengths of each list.
*/
constructor(options) {
super(options);
}
}
exports.TTSBuffer = TTSBuffer;

@@ -1,1 +0,1 @@

window.searchData = JSON.parse("{\"rows\":[{\"kind\":256,\"name\":\"LanguageParams\",\"url\":\"interfaces/LanguageParams.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"interfaces/LanguageParams.html#language\",\"classes\":\"\",\"parent\":\"LanguageParams\"},{\"kind\":1024,\"name\":\"languageAttributes\",\"url\":\"interfaces/LanguageParams.html#languageAttributes\",\"classes\":\"\",\"parent\":\"LanguageParams\"},{\"kind\":256,\"name\":\"TTSCaps\",\"url\":\"interfaces/TTSCaps.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"numberOfLanguages\",\"url\":\"interfaces/TTSCaps.html#numberOfLanguages\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"languageParams\",\"url\":\"interfaces/TTSCaps.html#languageParams\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"sampleRate\",\"url\":\"interfaces/TTSCaps.html#sampleRate\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"minimumSpeakingRate\",\"url\":\"interfaces/TTSCaps.html#minimumSpeakingRate\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"maximumSpeakingRate\",\"url\":\"interfaces/TTSCaps.html#maximumSpeakingRate\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"numberOfPredefinedSpeakers\",\"url\":\"interfaces/TTSCaps.html#numberOfPredefinedSpeakers\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"characterSet\",\"url\":\"interfaces/TTSCaps.html#characterSet\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"interfaces/TTSCaps.html#version\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":8,\"name\":\"LogType\",\"url\":\"enums/LogType.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Text\",\"url\":\"enums/LogType.html#Text\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"Phonemes\",\"url\":\"enums/LogType.html#Phonemes\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"NameTypes\",\"url\":\"enums/LogType.html#NameTypes\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"FormTypes\",\"url\":\"enums/LogType.html#FormTypes\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"Syllables\",\"url\":\"enums/LogType.html#Syllables\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"OutPhones\",\"url\":\"enums/LogType.html#OutPhones\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"DbgLog\",\"url\":\"enums/LogType.html#DbgLog\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":8,\"name\":\"MMSysError\",\"url\":\"enums/MMSysError.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"NoError\",\"url\":\"enums/MMSysError.html#NoError\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"Error\",\"url\":\"enums/MMSysError.html#Error\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"BadDeviceID\",\"url\":\"enums/MMSysError.html#BadDeviceID\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NotEnabled\",\"url\":\"enums/MMSysError.html#NotEnabled\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"Allocated\",\"url\":\"enums/MMSysError.html#Allocated\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalHandle\",\"url\":\"enums/MMSysError.html#InvalHandle\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NoDriver\",\"url\":\"enums/MMSysError.html#NoDriver\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NoMem\",\"url\":\"enums/MMSysError.html#NoMem\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NotSupported\",\"url\":\"enums/MMSysError.html#NotSupported\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"BadErrNum\",\"url\":\"enums/MMSysError.html#BadErrNum\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalFlag\",\"url\":\"enums/MMSysError.html#InvalFlag\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalParam\",\"url\":\"enums/MMSysError.html#InvalParam\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"HandleBusy\",\"url\":\"enums/MMSysError.html#HandleBusy\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalidAlias\",\"url\":\"enums/MMSysError.html#InvalidAlias\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"LastError\",\"url\":\"enums/MMSysError.html#LastError\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":8,\"name\":\"WaveFormat\",\"url\":\"enums/WaveFormat.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"InvalidFormat\",\"url\":\"enums/WaveFormat.html#InvalidFormat\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1M08\",\"url\":\"enums/WaveFormat.html#Format1M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1S08\",\"url\":\"enums/WaveFormat.html#Format1S08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1M16\",\"url\":\"enums/WaveFormat.html#Format1M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1S16\",\"url\":\"enums/WaveFormat.html#Format1S16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2M08\",\"url\":\"enums/WaveFormat.html#Format2M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2S08\",\"url\":\"enums/WaveFormat.html#Format2S08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2M16\",\"url\":\"enums/WaveFormat.html#Format2M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2S16\",\"url\":\"enums/WaveFormat.html#Format2S16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4M08\",\"url\":\"enums/WaveFormat.html#Format4M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4S08\",\"url\":\"enums/WaveFormat.html#Format4S08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4M16\",\"url\":\"enums/WaveFormat.html#Format4M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4S16\",\"url\":\"enums/WaveFormat.html#Format4S16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format08M08\",\"url\":\"enums/WaveFormat.html#Format08M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format08M16\",\"url\":\"enums/WaveFormat.html#Format08M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"FormatMuLaw\",\"url\":\"enums/WaveFormat.html#FormatMuLaw\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":8,\"name\":\"Speaker\",\"url\":\"enums/Speaker.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Paul\",\"url\":\"enums/Speaker.html#Paul\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Betty\",\"url\":\"enums/Speaker.html#Betty\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Harry\",\"url\":\"enums/Speaker.html#Harry\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Frank\",\"url\":\"enums/Speaker.html#Frank\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Dennis\",\"url\":\"enums/Speaker.html#Dennis\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Kit\",\"url\":\"enums/Speaker.html#Kit\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Ursula\",\"url\":\"enums/Speaker.html#Ursula\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Rita\",\"url\":\"enums/Speaker.html#Rita\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Wendy\",\"url\":\"enums/Speaker.html#Wendy\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":8,\"name\":\"DeviceManagement\",\"url\":\"enums/DeviceManagement.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"OwnAudioDevice\",\"url\":\"enums/DeviceManagement.html#OwnAudioDevice\",\"classes\":\"\",\"parent\":\"DeviceManagement\"},{\"kind\":16,\"name\":\"ReportOpenError\",\"url\":\"enums/DeviceManagement.html#ReportOpenError\",\"classes\":\"\",\"parent\":\"DeviceManagement\"},{\"kind\":16,\"name\":\"DoNotUseAudioDevice\",\"url\":\"enums/DeviceManagement.html#DoNotUseAudioDevice\",\"classes\":\"\",\"parent\":\"DeviceManagement\"},{\"kind\":8,\"name\":\"DeviceID\",\"url\":\"enums/DeviceID.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Mapper\",\"url\":\"enums/DeviceID.html#Mapper\",\"classes\":\"\",\"parent\":\"DeviceID\"},{\"kind\":16,\"name\":\"OpenShareable\",\"url\":\"enums/DeviceID.html#OpenShareable\",\"classes\":\"\",\"parent\":\"DeviceID\"},{\"kind\":128,\"name\":\"DecTalk\",\"url\":\"classes/DecTalk.html\",\"classes\":\"\"},{\"kind\":2048,\"name\":\"getCapabilities\",\"url\":\"classes/DecTalk.html#getCapabilities\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DecTalk.html#constructor\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"startup\",\"url\":\"classes/DecTalk.html#startup\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"shutdown\",\"url\":\"classes/DecTalk.html#shutdown\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"speak\",\"url\":\"classes/DecTalk.html#speak\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"speakSync\",\"url\":\"classes/DecTalk.html#speakSync\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"sync\",\"url\":\"classes/DecTalk.html#sync\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"syncSync\",\"url\":\"classes/DecTalk.html#syncSync\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"openWaveFile\",\"url\":\"classes/DecTalk.html#openWaveFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"closeWaveFile\",\"url\":\"classes/DecTalk.html#closeWaveFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"openLogFile\",\"url\":\"classes/DecTalk.html#openLogFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"closeLogFile\",\"url\":\"classes/DecTalk.html#closeLogFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"pause\",\"url\":\"classes/DecTalk.html#pause\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"resume\",\"url\":\"classes/DecTalk.html#resume\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"reset\",\"url\":\"classes/DecTalk.html#reset\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"sampleRate\",\"url\":\"classes/DecTalk.html#sampleRate\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"volume\",\"url\":\"classes/DecTalk.html#volume\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"attenuationVolume\",\"url\":\"classes/DecTalk.html#attenuationVolume\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"rate\",\"url\":\"classes/DecTalk.html#rate\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"speaker\",\"url\":\"classes/DecTalk.html#speaker\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"isSpeaking\",\"url\":\"classes/DecTalk.html#isSpeaking\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"inputCharacterCount\",\"url\":\"classes/DecTalk.html#inputCharacterCount\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"waveOutDeviceID\",\"url\":\"classes/DecTalk.html#waveOutDeviceID\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"language\",\"url\":\"classes/DecTalk.html#language\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"loadUserDictionary\",\"url\":\"classes/DecTalk.html#loadUserDictionary\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"unloadUserDictionary\",\"url\":\"classes/DecTalk.html#unloadUserDictionary\",\"classes\":\"\",\"parent\":\"DecTalk\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,36.687]],[\"comment/0\",[]],[\"name/1\",[1,36.687]],[\"comment/1\",[]],[\"name/2\",[2,41.795]],[\"comment/2\",[]],[\"name/3\",[3,41.795]],[\"comment/3\",[]],[\"name/4\",[4,41.795]],[\"comment/4\",[]],[\"name/5\",[0,36.687]],[\"comment/5\",[]],[\"name/6\",[5,36.687]],[\"comment/6\",[]],[\"name/7\",[6,41.795]],[\"comment/7\",[]],[\"name/8\",[7,41.795]],[\"comment/8\",[]],[\"name/9\",[8,41.795]],[\"comment/9\",[]],[\"name/10\",[9,41.795]],[\"comment/10\",[]],[\"name/11\",[10,41.795]],[\"comment/11\",[]],[\"name/12\",[11,41.795]],[\"comment/12\",[]],[\"name/13\",[12,41.795]],[\"comment/13\",[]],[\"name/14\",[13,41.795]],[\"comment/14\",[]],[\"name/15\",[14,41.795]],[\"comment/15\",[]],[\"name/16\",[15,41.795]],[\"comment/16\",[]],[\"name/17\",[16,41.795]],[\"comment/17\",[]],[\"name/18\",[17,41.795]],[\"comment/18\",[]],[\"name/19\",[18,41.795]],[\"comment/19\",[]],[\"name/20\",[19,41.795]],[\"comment/20\",[]],[\"name/21\",[20,41.795]],[\"comment/21\",[]],[\"name/22\",[21,41.795]],[\"comment/22\",[]],[\"name/23\",[22,41.795]],[\"comment/23\",[]],[\"name/24\",[23,41.795]],[\"comment/24\",[]],[\"name/25\",[24,41.795]],[\"comment/25\",[]],[\"name/26\",[25,41.795]],[\"comment/26\",[]],[\"name/27\",[26,41.795]],[\"comment/27\",[]],[\"name/28\",[27,41.795]],[\"comment/28\",[]],[\"name/29\",[28,41.795]],[\"comment/29\",[]],[\"name/30\",[29,41.795]],[\"comment/30\",[]],[\"name/31\",[30,41.795]],[\"comment/31\",[]],[\"name/32\",[31,41.795]],[\"comment/32\",[]],[\"name/33\",[32,41.795]],[\"comment/33\",[]],[\"name/34\",[33,41.795]],[\"comment/34\",[]],[\"name/35\",[34,41.795]],[\"comment/35\",[]],[\"name/36\",[35,41.795]],[\"comment/36\",[]],[\"name/37\",[36,41.795]],[\"comment/37\",[]],[\"name/38\",[37,41.795]],[\"comment/38\",[]],[\"name/39\",[38,41.795]],[\"comment/39\",[]],[\"name/40\",[39,41.795]],[\"comment/40\",[]],[\"name/41\",[40,41.795]],[\"comment/41\",[]],[\"name/42\",[41,41.795]],[\"comment/42\",[]],[\"name/43\",[42,41.795]],[\"comment/43\",[]],[\"name/44\",[43,41.795]],[\"comment/44\",[]],[\"name/45\",[44,41.795]],[\"comment/45\",[]],[\"name/46\",[45,41.795]],[\"comment/46\",[]],[\"name/47\",[46,41.795]],[\"comment/47\",[]],[\"name/48\",[47,41.795]],[\"comment/48\",[]],[\"name/49\",[48,41.795]],[\"comment/49\",[]],[\"name/50\",[49,41.795]],[\"comment/50\",[]],[\"name/51\",[50,41.795]],[\"comment/51\",[]],[\"name/52\",[51,41.795]],[\"comment/52\",[]],[\"name/53\",[52,36.687]],[\"comment/53\",[]],[\"name/54\",[53,41.795]],[\"comment/54\",[]],[\"name/55\",[54,41.795]],[\"comment/55\",[]],[\"name/56\",[55,41.795]],[\"comment/56\",[]],[\"name/57\",[56,41.795]],[\"comment/57\",[]],[\"name/58\",[57,41.795]],[\"comment/58\",[]],[\"name/59\",[58,41.795]],[\"comment/59\",[]],[\"name/60\",[59,41.795]],[\"comment/60\",[]],[\"name/61\",[60,41.795]],[\"comment/61\",[]],[\"name/62\",[61,41.795]],[\"comment/62\",[]],[\"name/63\",[62,41.795]],[\"comment/63\",[]],[\"name/64\",[63,41.795]],[\"comment/64\",[]],[\"name/65\",[64,41.795]],[\"comment/65\",[]],[\"name/66\",[65,41.795]],[\"comment/66\",[]],[\"name/67\",[66,41.795]],[\"comment/67\",[]],[\"name/68\",[67,41.795]],[\"comment/68\",[]],[\"name/69\",[68,41.795]],[\"comment/69\",[]],[\"name/70\",[69,41.795]],[\"comment/70\",[]],[\"name/71\",[70,41.795]],[\"comment/71\",[]],[\"name/72\",[71,41.795]],[\"comment/72\",[]],[\"name/73\",[72,41.795]],[\"comment/73\",[]],[\"name/74\",[73,41.795]],[\"comment/74\",[]],[\"name/75\",[74,41.795]],[\"comment/75\",[]],[\"name/76\",[75,41.795]],[\"comment/76\",[]],[\"name/77\",[76,41.795]],[\"comment/77\",[]],[\"name/78\",[77,41.795]],[\"comment/78\",[]],[\"name/79\",[78,41.795]],[\"comment/79\",[]],[\"name/80\",[79,41.795]],[\"comment/80\",[]],[\"name/81\",[80,41.795]],[\"comment/81\",[]],[\"name/82\",[81,41.795]],[\"comment/82\",[]],[\"name/83\",[82,41.795]],[\"comment/83\",[]],[\"name/84\",[83,41.795]],[\"comment/84\",[]],[\"name/85\",[84,41.795]],[\"comment/85\",[]],[\"name/86\",[5,36.687]],[\"comment/86\",[]],[\"name/87\",[85,41.795]],[\"comment/87\",[]],[\"name/88\",[86,41.795]],[\"comment/88\",[]],[\"name/89\",[87,41.795]],[\"comment/89\",[]],[\"name/90\",[52,36.687]],[\"comment/90\",[]],[\"name/91\",[88,41.795]],[\"comment/91\",[]],[\"name/92\",[89,41.795]],[\"comment/92\",[]],[\"name/93\",[90,41.795]],[\"comment/93\",[]],[\"name/94\",[1,36.687]],[\"comment/94\",[]],[\"name/95\",[91,41.795]],[\"comment/95\",[]],[\"name/96\",[92,41.795]],[\"comment/96\",[]]],\"invertedIndex\":[[\"allocated\",{\"_index\":24,\"name\":{\"25\":{}},\"comment\":{}}],[\"attenuationvolume\",{\"_index\":86,\"name\":{\"88\":{}},\"comment\":{}}],[\"baddeviceid\",{\"_index\":22,\"name\":{\"23\":{}},\"comment\":{}}],[\"baderrnum\",{\"_index\":29,\"name\":{\"30\":{}},\"comment\":{}}],[\"betty\",{\"_index\":54,\"name\":{\"55\":{}},\"comment\":{}}],[\"characterset\",{\"_index\":9,\"name\":{\"10\":{}},\"comment\":{}}],[\"closelogfile\",{\"_index\":81,\"name\":{\"82\":{}},\"comment\":{}}],[\"closewavefile\",{\"_index\":79,\"name\":{\"80\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":71,\"name\":{\"72\":{}},\"comment\":{}}],[\"dbglog\",{\"_index\":18,\"name\":{\"19\":{}},\"comment\":{}}],[\"dectalk\",{\"_index\":69,\"name\":{\"70\":{}},\"comment\":{}}],[\"dennis\",{\"_index\":57,\"name\":{\"58\":{}},\"comment\":{}}],[\"deviceid\",{\"_index\":66,\"name\":{\"67\":{}},\"comment\":{}}],[\"devicemanagement\",{\"_index\":62,\"name\":{\"63\":{}},\"comment\":{}}],[\"donotuseaudiodevice\",{\"_index\":65,\"name\":{\"66\":{}},\"comment\":{}}],[\"error\",{\"_index\":21,\"name\":{\"22\":{}},\"comment\":{}}],[\"format08m08\",{\"_index\":49,\"name\":{\"50\":{}},\"comment\":{}}],[\"format08m16\",{\"_index\":50,\"name\":{\"51\":{}},\"comment\":{}}],[\"format1m08\",{\"_index\":37,\"name\":{\"38\":{}},\"comment\":{}}],[\"format1m16\",{\"_index\":39,\"name\":{\"40\":{}},\"comment\":{}}],[\"format1s08\",{\"_index\":38,\"name\":{\"39\":{}},\"comment\":{}}],[\"format1s16\",{\"_index\":40,\"name\":{\"41\":{}},\"comment\":{}}],[\"format2m08\",{\"_index\":41,\"name\":{\"42\":{}},\"comment\":{}}],[\"format2m16\",{\"_index\":43,\"name\":{\"44\":{}},\"comment\":{}}],[\"format2s08\",{\"_index\":42,\"name\":{\"43\":{}},\"comment\":{}}],[\"format2s16\",{\"_index\":44,\"name\":{\"45\":{}},\"comment\":{}}],[\"format4m08\",{\"_index\":45,\"name\":{\"46\":{}},\"comment\":{}}],[\"format4m16\",{\"_index\":47,\"name\":{\"48\":{}},\"comment\":{}}],[\"format4s08\",{\"_index\":46,\"name\":{\"47\":{}},\"comment\":{}}],[\"format4s16\",{\"_index\":48,\"name\":{\"49\":{}},\"comment\":{}}],[\"formatmulaw\",{\"_index\":51,\"name\":{\"52\":{}},\"comment\":{}}],[\"formtypes\",{\"_index\":15,\"name\":{\"16\":{}},\"comment\":{}}],[\"frank\",{\"_index\":56,\"name\":{\"57\":{}},\"comment\":{}}],[\"getcapabilities\",{\"_index\":70,\"name\":{\"71\":{}},\"comment\":{}}],[\"handlebusy\",{\"_index\":32,\"name\":{\"33\":{}},\"comment\":{}}],[\"harry\",{\"_index\":55,\"name\":{\"56\":{}},\"comment\":{}}],[\"inputcharactercount\",{\"_index\":89,\"name\":{\"92\":{}},\"comment\":{}}],[\"invalflag\",{\"_index\":30,\"name\":{\"31\":{}},\"comment\":{}}],[\"invalhandle\",{\"_index\":25,\"name\":{\"26\":{}},\"comment\":{}}],[\"invalidalias\",{\"_index\":33,\"name\":{\"34\":{}},\"comment\":{}}],[\"invalidformat\",{\"_index\":36,\"name\":{\"37\":{}},\"comment\":{}}],[\"invalparam\",{\"_index\":31,\"name\":{\"32\":{}},\"comment\":{}}],[\"isspeaking\",{\"_index\":88,\"name\":{\"91\":{}},\"comment\":{}}],[\"kit\",{\"_index\":58,\"name\":{\"59\":{}},\"comment\":{}}],[\"language\",{\"_index\":1,\"name\":{\"1\":{},\"94\":{}},\"comment\":{}}],[\"languageattributes\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"languageparams\",{\"_index\":0,\"name\":{\"0\":{},\"5\":{}},\"comment\":{}}],[\"lasterror\",{\"_index\":34,\"name\":{\"35\":{}},\"comment\":{}}],[\"loaduserdictionary\",{\"_index\":91,\"name\":{\"95\":{}},\"comment\":{}}],[\"logtype\",{\"_index\":11,\"name\":{\"12\":{}},\"comment\":{}}],[\"mapper\",{\"_index\":67,\"name\":{\"68\":{}},\"comment\":{}}],[\"maximumspeakingrate\",{\"_index\":7,\"name\":{\"8\":{}},\"comment\":{}}],[\"minimumspeakingrate\",{\"_index\":6,\"name\":{\"7\":{}},\"comment\":{}}],[\"mmsyserror\",{\"_index\":19,\"name\":{\"20\":{}},\"comment\":{}}],[\"nametypes\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"nodriver\",{\"_index\":26,\"name\":{\"27\":{}},\"comment\":{}}],[\"noerror\",{\"_index\":20,\"name\":{\"21\":{}},\"comment\":{}}],[\"nomem\",{\"_index\":27,\"name\":{\"28\":{}},\"comment\":{}}],[\"notenabled\",{\"_index\":23,\"name\":{\"24\":{}},\"comment\":{}}],[\"notsupported\",{\"_index\":28,\"name\":{\"29\":{}},\"comment\":{}}],[\"numberoflanguages\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"numberofpredefinedspeakers\",{\"_index\":8,\"name\":{\"9\":{}},\"comment\":{}}],[\"openlogfile\",{\"_index\":80,\"name\":{\"81\":{}},\"comment\":{}}],[\"openshareable\",{\"_index\":68,\"name\":{\"69\":{}},\"comment\":{}}],[\"openwavefile\",{\"_index\":78,\"name\":{\"79\":{}},\"comment\":{}}],[\"outphones\",{\"_index\":17,\"name\":{\"18\":{}},\"comment\":{}}],[\"ownaudiodevice\",{\"_index\":63,\"name\":{\"64\":{}},\"comment\":{}}],[\"paul\",{\"_index\":53,\"name\":{\"54\":{}},\"comment\":{}}],[\"pause\",{\"_index\":82,\"name\":{\"83\":{}},\"comment\":{}}],[\"phonemes\",{\"_index\":13,\"name\":{\"14\":{}},\"comment\":{}}],[\"rate\",{\"_index\":87,\"name\":{\"89\":{}},\"comment\":{}}],[\"reportopenerror\",{\"_index\":64,\"name\":{\"65\":{}},\"comment\":{}}],[\"reset\",{\"_index\":84,\"name\":{\"85\":{}},\"comment\":{}}],[\"resume\",{\"_index\":83,\"name\":{\"84\":{}},\"comment\":{}}],[\"rita\",{\"_index\":60,\"name\":{\"61\":{}},\"comment\":{}}],[\"samplerate\",{\"_index\":5,\"name\":{\"6\":{},\"86\":{}},\"comment\":{}}],[\"shutdown\",{\"_index\":73,\"name\":{\"74\":{}},\"comment\":{}}],[\"speak\",{\"_index\":74,\"name\":{\"75\":{}},\"comment\":{}}],[\"speaker\",{\"_index\":52,\"name\":{\"53\":{},\"90\":{}},\"comment\":{}}],[\"speaksync\",{\"_index\":75,\"name\":{\"76\":{}},\"comment\":{}}],[\"startup\",{\"_index\":72,\"name\":{\"73\":{}},\"comment\":{}}],[\"syllables\",{\"_index\":16,\"name\":{\"17\":{}},\"comment\":{}}],[\"sync\",{\"_index\":76,\"name\":{\"77\":{}},\"comment\":{}}],[\"syncsync\",{\"_index\":77,\"name\":{\"78\":{}},\"comment\":{}}],[\"text\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"ttscaps\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"unloaduserdictionary\",{\"_index\":92,\"name\":{\"96\":{}},\"comment\":{}}],[\"ursula\",{\"_index\":59,\"name\":{\"60\":{}},\"comment\":{}}],[\"version\",{\"_index\":10,\"name\":{\"11\":{}},\"comment\":{}}],[\"volume\",{\"_index\":85,\"name\":{\"87\":{}},\"comment\":{}}],[\"waveformat\",{\"_index\":35,\"name\":{\"36\":{}},\"comment\":{}}],[\"waveoutdeviceid\",{\"_index\":90,\"name\":{\"93\":{}},\"comment\":{}}],[\"wendy\",{\"_index\":61,\"name\":{\"62\":{}},\"comment\":{}}]],\"pipeline\":[]}}");
window.searchData = JSON.parse("{\"rows\":[{\"kind\":4194304,\"name\":\"TTSCallback\",\"url\":\"types/TTSCallback.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/TTSCallback.html#__type\",\"classes\":\"\",\"parent\":\"TTSCallback\"},{\"kind\":256,\"name\":\"LanguageParams\",\"url\":\"interfaces/LanguageParams.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"interfaces/LanguageParams.html#language\",\"classes\":\"\",\"parent\":\"LanguageParams\"},{\"kind\":1024,\"name\":\"languageAttributes\",\"url\":\"interfaces/LanguageParams.html#languageAttributes\",\"classes\":\"\",\"parent\":\"LanguageParams\"},{\"kind\":256,\"name\":\"TTSPhoneme\",\"url\":\"interfaces/TTSPhoneme.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"phoneme\",\"url\":\"interfaces/TTSPhoneme.html#phoneme\",\"classes\":\"\",\"parent\":\"TTSPhoneme\"},{\"kind\":1024,\"name\":\"duration\",\"url\":\"interfaces/TTSPhoneme.html#duration\",\"classes\":\"\",\"parent\":\"TTSPhoneme\"},{\"kind\":1024,\"name\":\"sampleNumber\",\"url\":\"interfaces/TTSPhoneme.html#sampleNumber\",\"classes\":\"\",\"parent\":\"TTSPhoneme\"},{\"kind\":256,\"name\":\"TTSIndex\",\"url\":\"interfaces/TTSIndex.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/TTSIndex.html#index\",\"classes\":\"\",\"parent\":\"TTSIndex\"},{\"kind\":1024,\"name\":\"sampleNumber\",\"url\":\"interfaces/TTSIndex.html#sampleNumber\",\"classes\":\"\",\"parent\":\"TTSIndex\"},{\"kind\":8,\"name\":\"Message\",\"url\":\"enums/Message.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Buffer\",\"url\":\"enums/Message.html#Buffer\",\"classes\":\"\",\"parent\":\"Message\"},{\"kind\":16,\"name\":\"IndexMark\",\"url\":\"enums/Message.html#IndexMark\",\"classes\":\"\",\"parent\":\"Message\"},{\"kind\":16,\"name\":\"Status\",\"url\":\"enums/Message.html#Status\",\"classes\":\"\",\"parent\":\"Message\"},{\"kind\":16,\"name\":\"Visual\",\"url\":\"enums/Message.html#Visual\",\"classes\":\"\",\"parent\":\"Message\"},{\"kind\":256,\"name\":\"TTSCaps\",\"url\":\"interfaces/TTSCaps.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"numberOfLanguages\",\"url\":\"interfaces/TTSCaps.html#numberOfLanguages\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"languageParams\",\"url\":\"interfaces/TTSCaps.html#languageParams\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"sampleRate\",\"url\":\"interfaces/TTSCaps.html#sampleRate\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"minimumSpeakingRate\",\"url\":\"interfaces/TTSCaps.html#minimumSpeakingRate\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"maximumSpeakingRate\",\"url\":\"interfaces/TTSCaps.html#maximumSpeakingRate\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"numberOfPredefinedSpeakers\",\"url\":\"interfaces/TTSCaps.html#numberOfPredefinedSpeakers\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"characterSet\",\"url\":\"interfaces/TTSCaps.html#characterSet\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"interfaces/TTSCaps.html#version\",\"classes\":\"\",\"parent\":\"TTSCaps\"},{\"kind\":8,\"name\":\"LogType\",\"url\":\"enums/LogType.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Text\",\"url\":\"enums/LogType.html#Text\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"Phonemes\",\"url\":\"enums/LogType.html#Phonemes\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"NameTypes\",\"url\":\"enums/LogType.html#NameTypes\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"FormTypes\",\"url\":\"enums/LogType.html#FormTypes\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"Syllables\",\"url\":\"enums/LogType.html#Syllables\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"OutPhones\",\"url\":\"enums/LogType.html#OutPhones\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":16,\"name\":\"DbgLog\",\"url\":\"enums/LogType.html#DbgLog\",\"classes\":\"\",\"parent\":\"LogType\"},{\"kind\":8,\"name\":\"MMSysError\",\"url\":\"enums/MMSysError.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"NoError\",\"url\":\"enums/MMSysError.html#NoError\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"Error\",\"url\":\"enums/MMSysError.html#Error\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"BadDeviceID\",\"url\":\"enums/MMSysError.html#BadDeviceID\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NotEnabled\",\"url\":\"enums/MMSysError.html#NotEnabled\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"Allocated\",\"url\":\"enums/MMSysError.html#Allocated\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalHandle\",\"url\":\"enums/MMSysError.html#InvalHandle\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NoDriver\",\"url\":\"enums/MMSysError.html#NoDriver\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NoMem\",\"url\":\"enums/MMSysError.html#NoMem\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"NotSupported\",\"url\":\"enums/MMSysError.html#NotSupported\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"BadErrNum\",\"url\":\"enums/MMSysError.html#BadErrNum\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalFlag\",\"url\":\"enums/MMSysError.html#InvalFlag\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalParam\",\"url\":\"enums/MMSysError.html#InvalParam\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"HandleBusy\",\"url\":\"enums/MMSysError.html#HandleBusy\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"InvalidAlias\",\"url\":\"enums/MMSysError.html#InvalidAlias\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":16,\"name\":\"LastError\",\"url\":\"enums/MMSysError.html#LastError\",\"classes\":\"\",\"parent\":\"MMSysError\"},{\"kind\":8,\"name\":\"WaveFormat\",\"url\":\"enums/WaveFormat.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"InvalidFormat\",\"url\":\"enums/WaveFormat.html#InvalidFormat\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1M08\",\"url\":\"enums/WaveFormat.html#Format1M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1S08\",\"url\":\"enums/WaveFormat.html#Format1S08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1M16\",\"url\":\"enums/WaveFormat.html#Format1M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format1S16\",\"url\":\"enums/WaveFormat.html#Format1S16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2M08\",\"url\":\"enums/WaveFormat.html#Format2M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2S08\",\"url\":\"enums/WaveFormat.html#Format2S08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2M16\",\"url\":\"enums/WaveFormat.html#Format2M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format2S16\",\"url\":\"enums/WaveFormat.html#Format2S16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4M08\",\"url\":\"enums/WaveFormat.html#Format4M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4S08\",\"url\":\"enums/WaveFormat.html#Format4S08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4M16\",\"url\":\"enums/WaveFormat.html#Format4M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format4S16\",\"url\":\"enums/WaveFormat.html#Format4S16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format08M08\",\"url\":\"enums/WaveFormat.html#Format08M08\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"Format08M16\",\"url\":\"enums/WaveFormat.html#Format08M16\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":16,\"name\":\"FormatMuLaw\",\"url\":\"enums/WaveFormat.html#FormatMuLaw\",\"classes\":\"\",\"parent\":\"WaveFormat\"},{\"kind\":8,\"name\":\"Speaker\",\"url\":\"enums/Speaker.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Paul\",\"url\":\"enums/Speaker.html#Paul\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Betty\",\"url\":\"enums/Speaker.html#Betty\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Harry\",\"url\":\"enums/Speaker.html#Harry\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Frank\",\"url\":\"enums/Speaker.html#Frank\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Dennis\",\"url\":\"enums/Speaker.html#Dennis\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Kit\",\"url\":\"enums/Speaker.html#Kit\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Ursula\",\"url\":\"enums/Speaker.html#Ursula\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Rita\",\"url\":\"enums/Speaker.html#Rita\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":16,\"name\":\"Wendy\",\"url\":\"enums/Speaker.html#Wendy\",\"classes\":\"\",\"parent\":\"Speaker\"},{\"kind\":8,\"name\":\"DeviceManagement\",\"url\":\"enums/DeviceManagement.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"OwnAudioDevice\",\"url\":\"enums/DeviceManagement.html#OwnAudioDevice\",\"classes\":\"\",\"parent\":\"DeviceManagement\"},{\"kind\":16,\"name\":\"ReportOpenError\",\"url\":\"enums/DeviceManagement.html#ReportOpenError\",\"classes\":\"\",\"parent\":\"DeviceManagement\"},{\"kind\":16,\"name\":\"DoNotUseAudioDevice\",\"url\":\"enums/DeviceManagement.html#DoNotUseAudioDevice\",\"classes\":\"\",\"parent\":\"DeviceManagement\"},{\"kind\":8,\"name\":\"DeviceID\",\"url\":\"enums/DeviceID.html\",\"classes\":\"\"},{\"kind\":16,\"name\":\"Mapper\",\"url\":\"enums/DeviceID.html#Mapper\",\"classes\":\"\",\"parent\":\"DeviceID\"},{\"kind\":16,\"name\":\"OpenShareable\",\"url\":\"enums/DeviceID.html#OpenShareable\",\"classes\":\"\",\"parent\":\"DeviceID\"},{\"kind\":128,\"name\":\"DecTalk\",\"url\":\"classes/DecTalk.html\",\"classes\":\"\"},{\"kind\":2048,\"name\":\"getCapabilities\",\"url\":\"classes/DecTalk.html#getCapabilities\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"version\",\"url\":\"classes/DecTalk.html#version\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/DecTalk.html#version.version-1.__type\",\"classes\":\"\",\"parent\":\"DecTalk.version.version\"},{\"kind\":1024,\"name\":\"dllVersion\",\"url\":\"classes/DecTalk.html#version.version-1.__type.dllVersion\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"dTalkVersion\",\"url\":\"classes/DecTalk.html#version.version-1.__type.dTalkVersion\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"structVersion\",\"url\":\"classes/DecTalk.html#version.version-1.__type.structVersion\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"classes/DecTalk.html#version.version-1.__type.language\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"version\",\"url\":\"classes/DecTalk.html#version.version-1.__type.version-2\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"versionString\",\"url\":\"classes/DecTalk.html#version.version-1.__type.versionString\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"dtMajor\",\"url\":\"classes/DecTalk.html#version.version-1.__type.dtMajor\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"dtMinor\",\"url\":\"classes/DecTalk.html#version.version-1.__type.dtMinor\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"dapiMajor\",\"url\":\"classes/DecTalk.html#version.version-1.__type.dapiMajor\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":1024,\"name\":\"dapiMinor\",\"url\":\"classes/DecTalk.html#version.version-1.__type.dapiMinor\",\"classes\":\"\",\"parent\":\"DecTalk.version.version.__type\"},{\"kind\":2048,\"name\":\"startLang\",\"url\":\"classes/DecTalk.html#startLang\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"selectLang\",\"url\":\"classes/DecTalk.html#selectLang\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"closeLang\",\"url\":\"classes/DecTalk.html#closeLang\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"enumLangs\",\"url\":\"classes/DecTalk.html#enumLangs\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DecTalk.html#constructor\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"startup\",\"url\":\"classes/DecTalk.html#startup\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"shutdown\",\"url\":\"classes/DecTalk.html#shutdown\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"speak\",\"url\":\"classes/DecTalk.html#speak\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"speakSync\",\"url\":\"classes/DecTalk.html#speakSync\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"sync\",\"url\":\"classes/DecTalk.html#sync\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"syncSync\",\"url\":\"classes/DecTalk.html#syncSync\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"openWaveFile\",\"url\":\"classes/DecTalk.html#openWaveFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"closeWaveFile\",\"url\":\"classes/DecTalk.html#closeWaveFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"openLogFile\",\"url\":\"classes/DecTalk.html#openLogFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"closeLogFile\",\"url\":\"classes/DecTalk.html#closeLogFile\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"pause\",\"url\":\"classes/DecTalk.html#pause\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"resume\",\"url\":\"classes/DecTalk.html#resume\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"reset\",\"url\":\"classes/DecTalk.html#reset\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"volume\",\"url\":\"classes/DecTalk.html#volume\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"attenuationVolume\",\"url\":\"classes/DecTalk.html#attenuationVolume\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"rate\",\"url\":\"classes/DecTalk.html#rate\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"speaker\",\"url\":\"classes/DecTalk.html#speaker\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"isSpeaking\",\"url\":\"classes/DecTalk.html#isSpeaking\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"inputCharacterCount\",\"url\":\"classes/DecTalk.html#inputCharacterCount\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":262144,\"name\":\"waveOutDeviceID\",\"url\":\"classes/DecTalk.html#waveOutDeviceID\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"loadUserDictionary\",\"url\":\"classes/DecTalk.html#loadUserDictionary\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"unloadUserDictionary\",\"url\":\"classes/DecTalk.html#unloadUserDictionary\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"openInMemory\",\"url\":\"classes/DecTalk.html#openInMemory\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"closeInMemory\",\"url\":\"classes/DecTalk.html#closeInMemory\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"addBuffer\",\"url\":\"classes/DecTalk.html#addBuffer\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"returnBuffer\",\"url\":\"classes/DecTalk.html#returnBuffer\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":2048,\"name\":\"typing\",\"url\":\"classes/DecTalk.html#typing\",\"classes\":\"\",\"parent\":\"DecTalk\"},{\"kind\":128,\"name\":\"TTSBuffer\",\"url\":\"classes/TTSBuffer.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TTSBuffer.html#constructor\",\"classes\":\"\",\"parent\":\"TTSBuffer\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/TTSBuffer.html#data\",\"classes\":\"\",\"parent\":\"TTSBuffer\"},{\"kind\":1024,\"name\":\"phoneme\",\"url\":\"classes/TTSBuffer.html#phoneme\",\"classes\":\"\",\"parent\":\"TTSBuffer\"},{\"kind\":1024,\"name\":\"index\",\"url\":\"classes/TTSBuffer.html#index\",\"classes\":\"\",\"parent\":\"TTSBuffer\"},{\"kind\":1024,\"name\":\"maxBufferLength\",\"url\":\"classes/TTSBuffer.html#maxBufferLength\",\"classes\":\"\",\"parent\":\"TTSBuffer\"},{\"kind\":1024,\"name\":\"maxPhonemeLength\",\"url\":\"classes/TTSBuffer.html#maxPhonemeLength\",\"classes\":\"\",\"parent\":\"TTSBuffer\"},{\"kind\":1024,\"name\":\"maxIndexLength\",\"url\":\"classes/TTSBuffer.html#maxIndexLength\",\"classes\":\"\",\"parent\":\"TTSBuffer\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,45.29]],[\"comment/0\",[]],[\"name/1\",[1,40.182]],[\"comment/1\",[]],[\"name/2\",[2,40.182]],[\"comment/2\",[]],[\"name/3\",[3,40.182]],[\"comment/3\",[]],[\"name/4\",[4,45.29]],[\"comment/4\",[]],[\"name/5\",[5,45.29]],[\"comment/5\",[]],[\"name/6\",[6,40.182]],[\"comment/6\",[]],[\"name/7\",[7,45.29]],[\"comment/7\",[]],[\"name/8\",[8,40.182]],[\"comment/8\",[]],[\"name/9\",[9,45.29]],[\"comment/9\",[]],[\"name/10\",[10,40.182]],[\"comment/10\",[]],[\"name/11\",[8,40.182]],[\"comment/11\",[]],[\"name/12\",[11,45.29]],[\"comment/12\",[]],[\"name/13\",[12,45.29]],[\"comment/13\",[]],[\"name/14\",[13,45.29]],[\"comment/14\",[]],[\"name/15\",[14,45.29]],[\"comment/15\",[]],[\"name/16\",[15,45.29]],[\"comment/16\",[]],[\"name/17\",[16,45.29]],[\"comment/17\",[]],[\"name/18\",[17,45.29]],[\"comment/18\",[]],[\"name/19\",[2,40.182]],[\"comment/19\",[]],[\"name/20\",[18,45.29]],[\"comment/20\",[]],[\"name/21\",[19,45.29]],[\"comment/21\",[]],[\"name/22\",[20,45.29]],[\"comment/22\",[]],[\"name/23\",[21,45.29]],[\"comment/23\",[]],[\"name/24\",[22,45.29]],[\"comment/24\",[]],[\"name/25\",[23,36.817]],[\"comment/25\",[]],[\"name/26\",[24,45.29]],[\"comment/26\",[]],[\"name/27\",[25,45.29]],[\"comment/27\",[]],[\"name/28\",[26,45.29]],[\"comment/28\",[]],[\"name/29\",[27,45.29]],[\"comment/29\",[]],[\"name/30\",[28,45.29]],[\"comment/30\",[]],[\"name/31\",[29,45.29]],[\"comment/31\",[]],[\"name/32\",[30,45.29]],[\"comment/32\",[]],[\"name/33\",[31,45.29]],[\"comment/33\",[]],[\"name/34\",[32,45.29]],[\"comment/34\",[]],[\"name/35\",[33,45.29]],[\"comment/35\",[]],[\"name/36\",[34,45.29]],[\"comment/36\",[]],[\"name/37\",[35,45.29]],[\"comment/37\",[]],[\"name/38\",[36,45.29]],[\"comment/38\",[]],[\"name/39\",[37,45.29]],[\"comment/39\",[]],[\"name/40\",[38,45.29]],[\"comment/40\",[]],[\"name/41\",[39,45.29]],[\"comment/41\",[]],[\"name/42\",[40,45.29]],[\"comment/42\",[]],[\"name/43\",[41,45.29]],[\"comment/43\",[]],[\"name/44\",[42,45.29]],[\"comment/44\",[]],[\"name/45\",[43,45.29]],[\"comment/45\",[]],[\"name/46\",[44,45.29]],[\"comment/46\",[]],[\"name/47\",[45,45.29]],[\"comment/47\",[]],[\"name/48\",[46,45.29]],[\"comment/48\",[]],[\"name/49\",[47,45.29]],[\"comment/49\",[]],[\"name/50\",[48,45.29]],[\"comment/50\",[]],[\"name/51\",[49,45.29]],[\"comment/51\",[]],[\"name/52\",[50,45.29]],[\"comment/52\",[]],[\"name/53\",[51,45.29]],[\"comment/53\",[]],[\"name/54\",[52,45.29]],[\"comment/54\",[]],[\"name/55\",[53,45.29]],[\"comment/55\",[]],[\"name/56\",[54,45.29]],[\"comment/56\",[]],[\"name/57\",[55,45.29]],[\"comment/57\",[]],[\"name/58\",[56,45.29]],[\"comment/58\",[]],[\"name/59\",[57,45.29]],[\"comment/59\",[]],[\"name/60\",[58,45.29]],[\"comment/60\",[]],[\"name/61\",[59,45.29]],[\"comment/61\",[]],[\"name/62\",[60,45.29]],[\"comment/62\",[]],[\"name/63\",[61,45.29]],[\"comment/63\",[]],[\"name/64\",[62,45.29]],[\"comment/64\",[]],[\"name/65\",[63,45.29]],[\"comment/65\",[]],[\"name/66\",[64,45.29]],[\"comment/66\",[]],[\"name/67\",[65,40.182]],[\"comment/67\",[]],[\"name/68\",[66,45.29]],[\"comment/68\",[]],[\"name/69\",[67,45.29]],[\"comment/69\",[]],[\"name/70\",[68,45.29]],[\"comment/70\",[]],[\"name/71\",[69,45.29]],[\"comment/71\",[]],[\"name/72\",[70,45.29]],[\"comment/72\",[]],[\"name/73\",[71,45.29]],[\"comment/73\",[]],[\"name/74\",[72,45.29]],[\"comment/74\",[]],[\"name/75\",[73,45.29]],[\"comment/75\",[]],[\"name/76\",[74,45.29]],[\"comment/76\",[]],[\"name/77\",[75,45.29]],[\"comment/77\",[]],[\"name/78\",[76,45.29]],[\"comment/78\",[]],[\"name/79\",[77,45.29]],[\"comment/79\",[]],[\"name/80\",[78,45.29]],[\"comment/80\",[]],[\"name/81\",[79,45.29]],[\"comment/81\",[]],[\"name/82\",[80,45.29]],[\"comment/82\",[]],[\"name/83\",[81,45.29]],[\"comment/83\",[]],[\"name/84\",[82,45.29]],[\"comment/84\",[]],[\"name/85\",[83,45.29]],[\"comment/85\",[]],[\"name/86\",[23,36.817]],[\"comment/86\",[]],[\"name/87\",[1,40.182]],[\"comment/87\",[]],[\"name/88\",[84,45.29]],[\"comment/88\",[]],[\"name/89\",[85,45.29]],[\"comment/89\",[]],[\"name/90\",[86,45.29]],[\"comment/90\",[]],[\"name/91\",[3,40.182]],[\"comment/91\",[]],[\"name/92\",[23,36.817]],[\"comment/92\",[]],[\"name/93\",[87,45.29]],[\"comment/93\",[]],[\"name/94\",[88,45.29]],[\"comment/94\",[]],[\"name/95\",[89,45.29]],[\"comment/95\",[]],[\"name/96\",[90,45.29]],[\"comment/96\",[]],[\"name/97\",[91,45.29]],[\"comment/97\",[]],[\"name/98\",[92,45.29]],[\"comment/98\",[]],[\"name/99\",[93,45.29]],[\"comment/99\",[]],[\"name/100\",[94,45.29]],[\"comment/100\",[]],[\"name/101\",[95,45.29]],[\"comment/101\",[]],[\"name/102\",[96,40.182]],[\"comment/102\",[]],[\"name/103\",[97,45.29]],[\"comment/103\",[]],[\"name/104\",[98,45.29]],[\"comment/104\",[]],[\"name/105\",[99,45.29]],[\"comment/105\",[]],[\"name/106\",[100,45.29]],[\"comment/106\",[]],[\"name/107\",[101,45.29]],[\"comment/107\",[]],[\"name/108\",[102,45.29]],[\"comment/108\",[]],[\"name/109\",[103,45.29]],[\"comment/109\",[]],[\"name/110\",[104,45.29]],[\"comment/110\",[]],[\"name/111\",[105,45.29]],[\"comment/111\",[]],[\"name/112\",[106,45.29]],[\"comment/112\",[]],[\"name/113\",[107,45.29]],[\"comment/113\",[]],[\"name/114\",[108,45.29]],[\"comment/114\",[]],[\"name/115\",[109,45.29]],[\"comment/115\",[]],[\"name/116\",[110,45.29]],[\"comment/116\",[]],[\"name/117\",[111,45.29]],[\"comment/117\",[]],[\"name/118\",[112,45.29]],[\"comment/118\",[]],[\"name/119\",[65,40.182]],[\"comment/119\",[]],[\"name/120\",[113,45.29]],[\"comment/120\",[]],[\"name/121\",[114,45.29]],[\"comment/121\",[]],[\"name/122\",[115,45.29]],[\"comment/122\",[]],[\"name/123\",[116,45.29]],[\"comment/123\",[]],[\"name/124\",[117,45.29]],[\"comment/124\",[]],[\"name/125\",[118,45.29]],[\"comment/125\",[]],[\"name/126\",[119,45.29]],[\"comment/126\",[]],[\"name/127\",[120,45.29]],[\"comment/127\",[]],[\"name/128\",[121,45.29]],[\"comment/128\",[]],[\"name/129\",[122,45.29]],[\"comment/129\",[]],[\"name/130\",[123,45.29]],[\"comment/130\",[]],[\"name/131\",[96,40.182]],[\"comment/131\",[]],[\"name/132\",[124,45.29]],[\"comment/132\",[]],[\"name/133\",[6,40.182]],[\"comment/133\",[]],[\"name/134\",[10,40.182]],[\"comment/134\",[]],[\"name/135\",[125,45.29]],[\"comment/135\",[]],[\"name/136\",[126,45.29]],[\"comment/136\",[]],[\"name/137\",[127,45.29]],[\"comment/137\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":1,\"name\":{\"1\":{},\"87\":{}},\"comment\":{}}],[\"addbuffer\",{\"_index\":120,\"name\":{\"127\":{}},\"comment\":{}}],[\"allocated\",{\"_index\":37,\"name\":{\"39\":{}},\"comment\":{}}],[\"attenuationvolume\",{\"_index\":111,\"name\":{\"117\":{}},\"comment\":{}}],[\"baddeviceid\",{\"_index\":35,\"name\":{\"37\":{}},\"comment\":{}}],[\"baderrnum\",{\"_index\":42,\"name\":{\"44\":{}},\"comment\":{}}],[\"betty\",{\"_index\":67,\"name\":{\"69\":{}},\"comment\":{}}],[\"buffer\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"characterset\",{\"_index\":22,\"name\":{\"24\":{}},\"comment\":{}}],[\"closeinmemory\",{\"_index\":119,\"name\":{\"126\":{}},\"comment\":{}}],[\"closelang\",{\"_index\":94,\"name\":{\"100\":{}},\"comment\":{}}],[\"closelogfile\",{\"_index\":106,\"name\":{\"112\":{}},\"comment\":{}}],[\"closewavefile\",{\"_index\":104,\"name\":{\"110\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":96,\"name\":{\"102\":{},\"131\":{}},\"comment\":{}}],[\"dapimajor\",{\"_index\":90,\"name\":{\"96\":{}},\"comment\":{}}],[\"dapiminor\",{\"_index\":91,\"name\":{\"97\":{}},\"comment\":{}}],[\"data\",{\"_index\":124,\"name\":{\"132\":{}},\"comment\":{}}],[\"dbglog\",{\"_index\":31,\"name\":{\"33\":{}},\"comment\":{}}],[\"dectalk\",{\"_index\":82,\"name\":{\"84\":{}},\"comment\":{}}],[\"dennis\",{\"_index\":70,\"name\":{\"72\":{}},\"comment\":{}}],[\"deviceid\",{\"_index\":79,\"name\":{\"81\":{}},\"comment\":{}}],[\"devicemanagement\",{\"_index\":75,\"name\":{\"77\":{}},\"comment\":{}}],[\"dllversion\",{\"_index\":84,\"name\":{\"88\":{}},\"comment\":{}}],[\"donotuseaudiodevice\",{\"_index\":78,\"name\":{\"80\":{}},\"comment\":{}}],[\"dtalkversion\",{\"_index\":85,\"name\":{\"89\":{}},\"comment\":{}}],[\"dtmajor\",{\"_index\":88,\"name\":{\"94\":{}},\"comment\":{}}],[\"dtminor\",{\"_index\":89,\"name\":{\"95\":{}},\"comment\":{}}],[\"duration\",{\"_index\":7,\"name\":{\"7\":{}},\"comment\":{}}],[\"enumlangs\",{\"_index\":95,\"name\":{\"101\":{}},\"comment\":{}}],[\"error\",{\"_index\":34,\"name\":{\"36\":{}},\"comment\":{}}],[\"format08m08\",{\"_index\":62,\"name\":{\"64\":{}},\"comment\":{}}],[\"format08m16\",{\"_index\":63,\"name\":{\"65\":{}},\"comment\":{}}],[\"format1m08\",{\"_index\":50,\"name\":{\"52\":{}},\"comment\":{}}],[\"format1m16\",{\"_index\":52,\"name\":{\"54\":{}},\"comment\":{}}],[\"format1s08\",{\"_index\":51,\"name\":{\"53\":{}},\"comment\":{}}],[\"format1s16\",{\"_index\":53,\"name\":{\"55\":{}},\"comment\":{}}],[\"format2m08\",{\"_index\":54,\"name\":{\"56\":{}},\"comment\":{}}],[\"format2m16\",{\"_index\":56,\"name\":{\"58\":{}},\"comment\":{}}],[\"format2s08\",{\"_index\":55,\"name\":{\"57\":{}},\"comment\":{}}],[\"format2s16\",{\"_index\":57,\"name\":{\"59\":{}},\"comment\":{}}],[\"format4m08\",{\"_index\":58,\"name\":{\"60\":{}},\"comment\":{}}],[\"format4m16\",{\"_index\":60,\"name\":{\"62\":{}},\"comment\":{}}],[\"format4s08\",{\"_index\":59,\"name\":{\"61\":{}},\"comment\":{}}],[\"format4s16\",{\"_index\":61,\"name\":{\"63\":{}},\"comment\":{}}],[\"formatmulaw\",{\"_index\":64,\"name\":{\"66\":{}},\"comment\":{}}],[\"formtypes\",{\"_index\":28,\"name\":{\"30\":{}},\"comment\":{}}],[\"frank\",{\"_index\":69,\"name\":{\"71\":{}},\"comment\":{}}],[\"getcapabilities\",{\"_index\":83,\"name\":{\"85\":{}},\"comment\":{}}],[\"handlebusy\",{\"_index\":45,\"name\":{\"47\":{}},\"comment\":{}}],[\"harry\",{\"_index\":68,\"name\":{\"70\":{}},\"comment\":{}}],[\"index\",{\"_index\":10,\"name\":{\"10\":{},\"134\":{}},\"comment\":{}}],[\"indexmark\",{\"_index\":13,\"name\":{\"14\":{}},\"comment\":{}}],[\"inputcharactercount\",{\"_index\":114,\"name\":{\"121\":{}},\"comment\":{}}],[\"invalflag\",{\"_index\":43,\"name\":{\"45\":{}},\"comment\":{}}],[\"invalhandle\",{\"_index\":38,\"name\":{\"40\":{}},\"comment\":{}}],[\"invalidalias\",{\"_index\":46,\"name\":{\"48\":{}},\"comment\":{}}],[\"invalidformat\",{\"_index\":49,\"name\":{\"51\":{}},\"comment\":{}}],[\"invalparam\",{\"_index\":44,\"name\":{\"46\":{}},\"comment\":{}}],[\"isspeaking\",{\"_index\":113,\"name\":{\"120\":{}},\"comment\":{}}],[\"kit\",{\"_index\":71,\"name\":{\"73\":{}},\"comment\":{}}],[\"language\",{\"_index\":3,\"name\":{\"3\":{},\"91\":{}},\"comment\":{}}],[\"languageattributes\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"languageparams\",{\"_index\":2,\"name\":{\"2\":{},\"19\":{}},\"comment\":{}}],[\"lasterror\",{\"_index\":47,\"name\":{\"49\":{}},\"comment\":{}}],[\"loaduserdictionary\",{\"_index\":116,\"name\":{\"123\":{}},\"comment\":{}}],[\"logtype\",{\"_index\":24,\"name\":{\"26\":{}},\"comment\":{}}],[\"mapper\",{\"_index\":80,\"name\":{\"82\":{}},\"comment\":{}}],[\"maxbufferlength\",{\"_index\":125,\"name\":{\"135\":{}},\"comment\":{}}],[\"maximumspeakingrate\",{\"_index\":20,\"name\":{\"22\":{}},\"comment\":{}}],[\"maxindexlength\",{\"_index\":127,\"name\":{\"137\":{}},\"comment\":{}}],[\"maxphonemelength\",{\"_index\":126,\"name\":{\"136\":{}},\"comment\":{}}],[\"message\",{\"_index\":11,\"name\":{\"12\":{}},\"comment\":{}}],[\"minimumspeakingrate\",{\"_index\":19,\"name\":{\"21\":{}},\"comment\":{}}],[\"mmsyserror\",{\"_index\":32,\"name\":{\"34\":{}},\"comment\":{}}],[\"nametypes\",{\"_index\":27,\"name\":{\"29\":{}},\"comment\":{}}],[\"nodriver\",{\"_index\":39,\"name\":{\"41\":{}},\"comment\":{}}],[\"noerror\",{\"_index\":33,\"name\":{\"35\":{}},\"comment\":{}}],[\"nomem\",{\"_index\":40,\"name\":{\"42\":{}},\"comment\":{}}],[\"notenabled\",{\"_index\":36,\"name\":{\"38\":{}},\"comment\":{}}],[\"notsupported\",{\"_index\":41,\"name\":{\"43\":{}},\"comment\":{}}],[\"numberoflanguages\",{\"_index\":17,\"name\":{\"18\":{}},\"comment\":{}}],[\"numberofpredefinedspeakers\",{\"_index\":21,\"name\":{\"23\":{}},\"comment\":{}}],[\"openinmemory\",{\"_index\":118,\"name\":{\"125\":{}},\"comment\":{}}],[\"openlogfile\",{\"_index\":105,\"name\":{\"111\":{}},\"comment\":{}}],[\"openshareable\",{\"_index\":81,\"name\":{\"83\":{}},\"comment\":{}}],[\"openwavefile\",{\"_index\":103,\"name\":{\"109\":{}},\"comment\":{}}],[\"outphones\",{\"_index\":30,\"name\":{\"32\":{}},\"comment\":{}}],[\"ownaudiodevice\",{\"_index\":76,\"name\":{\"78\":{}},\"comment\":{}}],[\"paul\",{\"_index\":66,\"name\":{\"68\":{}},\"comment\":{}}],[\"pause\",{\"_index\":107,\"name\":{\"113\":{}},\"comment\":{}}],[\"phoneme\",{\"_index\":6,\"name\":{\"6\":{},\"133\":{}},\"comment\":{}}],[\"phonemes\",{\"_index\":26,\"name\":{\"28\":{}},\"comment\":{}}],[\"rate\",{\"_index\":112,\"name\":{\"118\":{}},\"comment\":{}}],[\"reportopenerror\",{\"_index\":77,\"name\":{\"79\":{}},\"comment\":{}}],[\"reset\",{\"_index\":109,\"name\":{\"115\":{}},\"comment\":{}}],[\"resume\",{\"_index\":108,\"name\":{\"114\":{}},\"comment\":{}}],[\"returnbuffer\",{\"_index\":121,\"name\":{\"128\":{}},\"comment\":{}}],[\"rita\",{\"_index\":73,\"name\":{\"75\":{}},\"comment\":{}}],[\"samplenumber\",{\"_index\":8,\"name\":{\"8\":{},\"11\":{}},\"comment\":{}}],[\"samplerate\",{\"_index\":18,\"name\":{\"20\":{}},\"comment\":{}}],[\"selectlang\",{\"_index\":93,\"name\":{\"99\":{}},\"comment\":{}}],[\"shutdown\",{\"_index\":98,\"name\":{\"104\":{}},\"comment\":{}}],[\"speak\",{\"_index\":99,\"name\":{\"105\":{}},\"comment\":{}}],[\"speaker\",{\"_index\":65,\"name\":{\"67\":{},\"119\":{}},\"comment\":{}}],[\"speaksync\",{\"_index\":100,\"name\":{\"106\":{}},\"comment\":{}}],[\"startlang\",{\"_index\":92,\"name\":{\"98\":{}},\"comment\":{}}],[\"startup\",{\"_index\":97,\"name\":{\"103\":{}},\"comment\":{}}],[\"status\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"structversion\",{\"_index\":86,\"name\":{\"90\":{}},\"comment\":{}}],[\"syllables\",{\"_index\":29,\"name\":{\"31\":{}},\"comment\":{}}],[\"sync\",{\"_index\":101,\"name\":{\"107\":{}},\"comment\":{}}],[\"syncsync\",{\"_index\":102,\"name\":{\"108\":{}},\"comment\":{}}],[\"text\",{\"_index\":25,\"name\":{\"27\":{}},\"comment\":{}}],[\"ttsbuffer\",{\"_index\":123,\"name\":{\"130\":{}},\"comment\":{}}],[\"ttscallback\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"ttscaps\",{\"_index\":16,\"name\":{\"17\":{}},\"comment\":{}}],[\"ttsindex\",{\"_index\":9,\"name\":{\"9\":{}},\"comment\":{}}],[\"ttsphoneme\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"typing\",{\"_index\":122,\"name\":{\"129\":{}},\"comment\":{}}],[\"unloaduserdictionary\",{\"_index\":117,\"name\":{\"124\":{}},\"comment\":{}}],[\"ursula\",{\"_index\":72,\"name\":{\"74\":{}},\"comment\":{}}],[\"version\",{\"_index\":23,\"name\":{\"25\":{},\"86\":{},\"92\":{}},\"comment\":{}}],[\"versionstring\",{\"_index\":87,\"name\":{\"93\":{}},\"comment\":{}}],[\"visual\",{\"_index\":15,\"name\":{\"16\":{}},\"comment\":{}}],[\"volume\",{\"_index\":110,\"name\":{\"116\":{}},\"comment\":{}}],[\"waveformat\",{\"_index\":48,\"name\":{\"50\":{}},\"comment\":{}}],[\"waveoutdeviceid\",{\"_index\":115,\"name\":{\"122\":{}},\"comment\":{}}],[\"wendy\",{\"_index\":74,\"name\":{\"76\":{}},\"comment\":{}}]],\"pipeline\":[]}}");
{
"name": "node-dectalk",
"version": "0.0.3",
"version": "0.1.0",
"description": "NodeJS bindings for the node-dectalk TTS Engine",

@@ -5,0 +5,0 @@ "repository": {

@@ -44,3 +44,3 @@ # `node-dectalk` - Node.js bindings for the DecTalk TTS Engine

- [x] Add TypeScript support.
- [ ] Figure out a way to add in the `TextToSpeechAddBuffer` and `callback` functions.
- [x] Figure out a way to add in the `TextToSpeechAddBuffer` and `callback` functions.
- seriously this is a pain in my **`aeiou`**. The function for the callback does not allow any sort of captures, so i cannot pass any pointer so that it can call a javascript function. I have no idea how to do this.
import bindings from 'bindings';
const addon = bindings( 'node-dectalk.node' );
export type TTSCallback = ( msg: Message, param: any ) => void;
export interface LanguageParams {
language: number;
languageAttributes: number;
readonly language: number;
readonly languageAttributes: number;
}
export interface TTSPhoneme {
readonly phoneme: number;
readonly duration: number;
readonly sampleNumber: number;
}
export interface TTSIndex {
readonly index: number;
readonly sampleNumber: number;
}
export enum Message {
Buffer = 9,
IndexMark = 1,
Status = 2,
Visual = 3
}
export interface TTSCaps {
numberOfLanguages: number;
languageParams: LanguageParams[];
sampleRate: number;
minimumSpeakingRate: number;
maximumSpeakingRate: number;
numberOfPredefinedSpeakers: number;
characterSet: number;
version: number;
readonly numberOfLanguages: number;
readonly languageParams: LanguageParams[];
readonly sampleRate: number;
readonly minimumSpeakingRate: number;
readonly maximumSpeakingRate: number;
readonly numberOfPredefinedSpeakers: number;
readonly characterSet: number;
readonly version: number;
}

@@ -37,38 +55,39 @@

}
export enum MMSysError {
/** no error */
/** No error */
NoError = 0,
/** unspecified error */
/** Unspecified error */
Error = 1,
/** device ID out of range */
/** Device ID out of range */
BadDeviceID = 2,
/** driver failed enable */
/** Driver failed enable */
NotEnabled = 3,
/** device already allocated */
/** Device already allocated */
Allocated = 4,
/** device handle is invalid */
/** Device handle is invalid */
InvalHandle = 5,
/** no device driver present */
/** No device driver present */
NoDriver = 6,
/** memory allocation error */
/** Memory allocation error */
NoMem = 7,
/** function isn't supported */
/** Function isn't supported */
NotSupported = 8,
/** error value out of range */
/** Error value out of range */
BadErrNum = 9,
/** invalid flag passed */
/** Invalid flag passed */
InvalFlag = 10,
/** invalid parameter passed */
/** Invalid parameter passed */
InvalParam = 11,
/** handle being used */
/** Handle being used */
HandleBusy = 12,
/** "Specified alias not found in WIN.INI */
InvalidAlias = 13,
/** last error in range */
/** Last error in range */
LastError = 13,
};
/** defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */
/** Defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */
export enum WaveFormat {
/** invalid format */
/** Invalid format */
InvalidFormat = 0x00000000,

@@ -108,2 +127,5 @@ /** 11.025 kHz, Mono, 8-bit */

/**
* The DECtalk Text-To-Speech system supports the following predefined speaking voices.
*/
export enum Speaker {

@@ -127,4 +149,5 @@ Paul,

}
export enum DeviceID {
/** device ID for wave device mapper */
/** Device ID for wave device mapper */
Mapper = 4294967295,

@@ -135,4 +158,10 @@ /** Open device as shareable */

/**
* The main class for the DECtalk Text-To-Speech system.
*/
export class DecTalk extends addon.DecTalk {
/**
* Create a new instance of the DECtalk Text-To-Speech system.
*/
constructor () {

@@ -143,26 +172,33 @@ super();

/**
* DECtalk initialization function.
* Initializes the text-to-speech system; defines the callback routine; and loads the main and user pronunciation dictionaries.
* @param {(DeviceID | number)} [deviceID] - Wave out device ID number. `WaveMapper` may be used here if the device ID number is unknown.
* @param {DeviceManagement} [deviceManagement=DeviceManagement.OwnAudioDevice] - Specifies how the wave output device is managed.
* @return {MMSysError} This value is zero if initialization was successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoDriver` - No wave out device driver present <br/>
* `BadDeviceID` - Device ID out of range <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Error` - Dictionary not found <br/>
* `InvalParam` - Invalid param for th eload dictionary <br/>
* @memberof DecTalk
* @return {MMSysError} This value is zero if initialization was successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero).
* - {@link MMSysError.NoDriver | NoDriver} - No wave out device driver present.
* - {@link MMSysError.BadDeviceID | BadDeviceID} - Device ID out of range.
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory.
* - {@link MMSysError.Error | Error} - Dictionary not found.
* - {@link MMSysError.InvalParam | InvalParam} - Invalid param for the load dictionary.
* @comment If the callback procedure is defined, then the calling application will be called via the callback routine when a buffer is filled while in speech-to-memory mode, an error occurs, or an index mark is encountered. <br/>
* The default parameters are: <br/>
* * Language: American English.
* * Speaking rate: 200 words per minute.
* * Speaker: Paul.
* @see {@link shutdown}
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link speak}
*/
startup ( deviceID?: DeviceID | number, deviceManagement: DeviceManagement = DeviceManagement.OwnAudioDevice ): MMSysError {
return super.startup( deviceID, deviceManagement );
startup ( deviceID?: DeviceID | number, deviceManagement: DeviceManagement = DeviceManagement.OwnAudioDevice, cb?: TTSCallback ): MMSysError {
return super.startup( deviceID, deviceManagement, cb );
}
/**
* DECtalk shutdown function.
* @returns {MMSysError} This value is zero if shutdown was successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* Shuts down the text-to-speech system and frees all system resources used by the text-to-speech system.
* @returns {MMSysError} This value is zero if shutdown was successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero).
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid.
* @comment This call is called when you close an application. Any user-defined dictionaries, which were previously loaded, are automatically unloaded. All previously queued text is discarded and the text-to-speech system will immediately stop speaking.
* @see {@link startup}
*/

@@ -174,13 +210,16 @@ shutdown (): MMSysError {

/**
* This function queues to the Text-To-Speech system.
* Qqueues to the text-to-speech system. While in startup state, speech samples are routed to the audio device or ignored, depending on whether the {@link DeviceManagement.DoNotUseAudioDevice | DoNotUseAudioDevice} flag is set in the `deviceOptions` parameter of the startup function. If the text-to-speech system is in one of its special modes (wave-file, log-file, or speech-to-memory modes), the speech samples are handled accordingly.
* @async
* @param { ( string | string[] ) } text - The text to be spoken.
* @param { boolean } [ force = false ] - Specifies if the text is to be pushed through the Text-To-Speech system even if it is not on a clause boundary.
* @return {Promise<MMSysError>} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {Promise<MMSysError>} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The speaker, speaking rate, and volume can also be changed in the text string by inserting in-line commands as shown in the following example: <br/>
* `[:name paul] I am Paul. [:nb] I am Betty. [:volume set 50] The volume has been set to 50% of the maximum level. [:ra 120] I am speaking at 120 words per minute.`
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link startup}
*/

@@ -195,12 +234,15 @@ async speak ( text: string | string[], force: boolean = false ): Promise<MMSysError> {

/**
* This function queues to the Text-To-Speech system.
* Qqueues to the text-to-speech system. While in startup state, speech samples are routed to the audio device or ignored, depending on whether the {@link DeviceManagement.DoNotUseAudioDevice | DoNotUseAudioDevice} flag is set in the `deviceOptions` parameter of the startup function. If the text-to-speech system is in one of its special modes (wave-file, log-file, or speech-to-memory modes), the speech samples are handled accordingly.
* @param { ( string | string[] ) } text - The text to be spoken.
* @param { boolean } [ force = false ] - Specifies if the text is to be pushed through the Text-To-Speech system even if it is not on a clause boundary.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The speaker, speaking rate, and volume can also be changed in the text string by inserting in-line commands as shown in the following example: <br/>
* `[:name paul] I am Paul. [:nb] I am Betty. [:volume set 50] The volume has been set to 50% of the maximum level. [:ra 120] I am speaking at 120 words per minute.`
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
* @see {@link startup}
*/

@@ -215,11 +257,10 @@ speakSync ( text: string | string[], force: boolean = false ): MMSysError {

/**
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the `pause()` function.
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the {@link pause()} function.
* @async
* @return {Promise<MMSysError>} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Unable to complete queued text <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @return {Promise<MMSysError>} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Unable to complete queued text. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link pause}
*/

@@ -230,10 +271,9 @@ async sync (): Promise<MMSysError> {

/**
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text - To - Speech system has been paused by the `pause()` function.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Unable to complete queued text <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Will block until all previously queued text has been spoken. This function will automatically resume audio if the Text-To-Speech system has been paused by the {@link pause()} function.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Unable to complete queued text. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link pause}
*/

@@ -245,16 +285,19 @@ syncSync (): MMSysError {

/**
* Creates a wave file. All subsequent calls to the `speak()` function cause the audio to be written to the specified file until the `closeWaveFile()` function is called.
*
* Causes the specified wave file to be opened and the text-to-speech system to enter into wave-file mode. This mode indicates that the speech samples are to be written in wave format into the wave file each time {@link speak()} is called. The text-to-speech system remains in the wave-file mode until {@link closeWaveFile()} is called.
* @param {string} filename - The name of the wave file to be created.
* @param {WaveFormat} format - Ddetermines the wave file audio sample format.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalParam` - An invalid parameter was passed (An illegal wave output format value.) <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Allocated` - A wave output file is already open <br/>
* `Error` - Unable to open the wave output file or unable to write to the wave output file <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* @param {WaveFormat} format - Determines one or more of the wave file audio sample format.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter or an illegal wave output format was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Memory allocation error. <br/>
* - {@link MMSysError.Allocated | Allocated} - A wave file is already open. <br/>
* - {@link MMSysError.Error | Error} - Unable to open the wave file or unable to write to the wave file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call. <br/>
* The startup function must be called to start the text-to-speech system before calling {@link openWaveFile()}.
* @see {@link closeWaveFile}
* @see {@link pause}
* @see {@link reset}
* @see {@link speak}
* @see {@link startup}
*/

@@ -266,13 +309,9 @@ openWaveFile ( filename: string, format: WaveFormat ): MMSysError {

/**
* Close the Text-To-Speech Wave File.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Failure to wait for pending speech. <br/>
* OR Unable to update the wave output file header <br/>
* OR Unable to close the wave output file. <br/>
* OR No wave output file is open <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Close the Text-To-Speech Wave File.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Failure to wait for pending speech, unable to update wave file header, or unable to close the wave file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The application must call {@link openWaveFile()} before calling {@link closeWaveFile()}.
* @see {@link openWaveFile}
*/

@@ -285,15 +324,20 @@ closeWaveFile (): MMSysError {

/**
* Creates a file which contains either text, phonemes, or syllables. The phonemes and syllables are written using the arpabet alphabet. After calling this function, all subsequent calls to the `speak()` function cause the log data to be written to specified file until the `closeLogFile()` function is called.
* @param {string} filename - The name of the log file to be created.
* @param {LogType=} [logType] - Specifies the type of log file to be created.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalParam` - An invalid parameter was passed <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Allocated` - A log file is already open <br/>
* `Error` - Unable to open the log file. <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Causes the specified log file to be opened and the text-to-speech sytem to enter into the log-file mode. This mode indicates that the speech samples are to be written as text, phonemes, or syllables into the log file each time {@link speak()} is called. The phonemes and syllables are written using the arpabet alphabet. The text-to-speech system remains in the log-file mode until {@link closeLogFile()} is called.
* @param {string} filename - The name of the log file to be created.
* @param {LogType=} [logType] - Specifies one or more of the type of output.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Allocated | Allocated} - A log file is already open. <br/>
* - {@link MMSysError.Error | Error} - Unable to open the output file. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment If more than one of the dwFlags are passed, then the logged output is mixed in an unpredictable fashion. If there is already a log file open, this call returns an error. The Log command has no effect when a log file is already open. <br/>
* The startup function must be called to start the text-to-speech system before calling this function. <br/>
* {@link openLogFile()} automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link closeLogFile}
* @see {@link pause}
* @see {@link reset}
* @see {@link speak}
* @see {@link startup}
*/

@@ -305,12 +349,10 @@ openLogFile ( filename: string, logType?: LogType ): MMSysError {

/**
* Closes the log file opened by the `openLogFile()` function.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `Error` - Failure to wait for pending speech <br/>
* OR Unable to close the output file <br/>
* OR No output file is open <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Closes the log file opened by the {@link openLogFile()} function.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Failure to wait for pending speech, unable to close the output file, or no output file is open. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call closes an open log file, even if it was opened with the Log in-line command. <br/>
* The application must call {@link openLogFile()} before calling {@link closeLogFile()}.
* @see {@link openLogFile}
*/

@@ -322,9 +364,20 @@ closeLogFile (): MMSysError {

/**
* Pauses the Text-To-Speech system.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The specified device handle is invalid (The system is NOT speaking), or the Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Pauses text-to-speech audio output.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The specified device handle is invalid. The system is not speaking or the text-to-speech handle is invalid. <br/>
* @comment This call only affects the audio output and has no effect when writing log files, wave files, or when using the speech-to-memory capability of the text-to-speech system. <br/>
* If the text-to-speech system owns the audio device (i.e. {@link DeviceManagement.OwnAudioDevice | OwnAudioDevice} was specified in the startup function), then it remains paused until one of the following is called: <br/>
* * openInMemory
* * openLogFile
* * ppenWaveFile
* * resume
* * sync
* If the text-to-speech system does not own the audio device (i.e. {@link DeviceManagement.OwnAudioDevice | OwnAudioDevice} was NOT specified in the startup function) and {@link pause()} is called while the system is speaking, it will remain paused until the system has completed speaking. <br/>
* In this case, the wave output device is released when {@link reset()} is called. It will also be released if {@link sync()}, {@link openInMemory()}, {@link openLogFile()}, or {@link openWaveFile()} is called AND the system has completed speaking. <br/>
* Note that the {@link pause()} call will NOT resume audio output if the text-to-speech system has been paused by the {@link pause()} call.
* @see {@link resume}
* @see {@link reset}
* @see {@link speak}
* @see {@link sync}
*/

@@ -336,9 +389,8 @@ pause (): MMSysError {

/**
* Resumes the Text-To-Speech system.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The specified device handle is invalid (The system is NOT speaking), or the Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Resumes text-to-speech output after it was paused by calling {@link pause()}.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The system was not paused or the text-to-speech handle was invalid. <br/>
* @comment This call only affects the audio output and has no effect when writing log files, writing wave files, or when writing speech samples to memory.
* @see {@link pause}
*/

@@ -350,11 +402,14 @@ resume (): MMSysError {

/**
* cancels all audio output and deletes any text from the Text-To-Speech systems text queue. All pending index marks are discarded.
* @return {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `Error` - Unable to flush the system <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Cancels all audio output and deletes any text from the Text-To-Speech systems text queue. All pending index marks are discarded.
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Error | Error} - Unable to flush the system. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The {@link reset()} call flushes all previously queued text and stops all audio output. If the {@link openInMemory()} call has enabled outputting the speech samples to memory, then all queued memory buffers will be returned to the calling application. If the `reset` flag is on and the text-to-speech system is in one of its special modes (log-file, wave-file or speech-to-memory mode), then all files will be closed and the text-to-speech system is returned to the startup state. <br/>
* {@link reset()} should be called before {@link closeInMemory()}. Failing to do this in a situation where the synthesizer is busy may result in a deadlock.
* @see {@link pause}
* @see {@link openInMemory}
* @see {@link openLogFile}
* @see {@link openWaveFile}
*/

@@ -365,42 +420,75 @@ reset (): MMSysError {

get sampleRate (): number {
return super.getSampleRate();
}
set sampleRate ( value: number ) {
super.setSampleRate( value );
}
/**
* Returns the current setting of the volume.
* @type {number} The current setting of the volume. Valid values range from 0 to 100.
* @comment The current setting of the volume is returned even if the volume change has not yet occurred. This may occur while setting {@link volume} without the {@link sync()} call. The volume change occurs on clause boundaries.
*/
get volume (): number {
return super.getVolume();
return super.volume;
}
/**
* Sets the volume of the text-to-speech system.
* @comment The volume change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set volume ( value: number ) {
super.setVolume( value );
super.volume = value;
}
/**
* Returns the current setting of the attenuation volume.
* @type {number} The current setting of the attenuation volume. Valid values range from 0 to 100.
* @comment The current setting of the attenuation volume is returned even if the attenuation volume change has not yet occurred. This may occur while setting {@link attenuationVolume} without the {@link sync()} call. The attenuation volume change occurs on clause boundaries.
*/
get attenuationVolume (): number {
return super.getAttenuationVolume();
return super.attenuationVolume;
}
/**
* Sets the attenuation volume of the text-to-speech system.
* @comment The attenuation volume change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set attenuationVolume ( value: number ) {
super.setAttenuationVolume( value );
super.attenuationVolume = value;
}
/**
* Returns the current setting of the speaking rate.
* @type {number} The current setting of the speaking rate. Valid values range from 75 to 600 words per minute.
* @comment The current setting of the speaking rate is returned even if the speaking rate change has not yet occurred. This may occur while setting {@link rate} without the {@link sync()} call. The speaking-rate change occurs on clause boundaries.
*/
get rate (): number {
return super.getRate();
return super.rate;
}
/**
* Sets the text-to-speech speaking rate.
* @comment The speaking rate change is not effective until the next phrase boundary. All the queued audio encountered before the phrase boundary is unaffected.
*/
set rate ( value: number ) {
super.setRate( value );
super.rate = value;
}
/**
* Returns the value of the identifier for the last voice that has spoken.
* @type {Speaker} The current speaker.
* @comment Note that even after a setting {@link speaker}, {@link speaker} returns the value for the previous speaking voice until the new voice actually has spoken.
*/
get speaker (): Speaker {
return super.getSpeaker();
return super.speaker;
}
/**
* Sets the voice of the speaker the text-to-speech system will use.
* @comment The change in speaking voice is not effective until the next phrase boundary. All queued audio encountered before the phrase boundary is unaffected.
*/
set speaker ( value: Speaker ) {
super.setSpeaker( value );
super.speaker = value;
}
/**
* Returns if the Text-To-Speech system is currently speaking.
* @type {boolean} value is `true` if audio samples are playing and `false` if no audio sample is playing.
* @comment Has no meaning if the application is sending speech to a wave file or sending speech to memory.
*/
get isSpeaking (): boolean {

@@ -410,2 +498,6 @@ return super.isSpeaking;

/**
* Returns a count of characters that the text-to-speech system is currently processing.
* @type {number} The number of characters that the text-to-speech system is currently processing.
*/
get inputCharacterCount (): number {

@@ -415,2 +507,6 @@ return super.inputCharacterCount;

/**
* Returns the current wave output device ID.
* @type {number} The current wave output device ID.
*/
get waveOutDeviceID (): number {

@@ -420,10 +516,16 @@ return super.waveOutDeviceID;

get language () {
return super.getLanguage();
}
// get language () {
// return super.language;
// }
set language ( value: number ) {
super.setLanguage( value );
}
// set language ( value: number ) {
// super.language = value;
// }
/**
* Lists the current capabilities of the DECtalk Software by returning the class {@link TTSCaps}.
* @static
* @returns {TTSCaps} The capabilities of the DECtalk Software.
* @comment Information returned in the {@link TTSCaps} class includes languages and proper-name pronunciation support, sample rate, minimum and maximum speaking rate, number of predefined speaking voices, character-set supported, and version number.
*/
static getCapabilities (): TTSCaps {

@@ -434,13 +536,12 @@ return super.getCapabilities();

/**
* Load a user dictionary. If a user dictionary is already loaded then it must be unloaded by the `unloadUserDictionary()` function before the new dictionary can be loaded.
* @param {string} filename - The name of the user dictionary file to be loaded.
* @returns {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `NoMem` - Unable to allocate memory <br/>
* `InvalParam` - Dictory file not found. (invalid dictionary file name) <br/>
* `Error` - Illegal dictionary format, or a dictionary is already loaded <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Loads a user-defined pronunciation dictionary into the text-to-speech system.
* @param {string} filename - The name of the user dictionary file to be loaded.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory for dictionary. <br/>
* - {@link MMSysError.InvalParam | InvalParam} - Dictionary file not found or an invalid dictionary file name. <br/>
* - {@link MMSysError.Error | Error} - Illegal dictionary format or a dictionary is already loaded. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment This call loads a dictionary created by the windict or userdict applet. Any previously loaded user dictionary must be unloaded before loading a new user dictionary. Note that the text-to-speech system will automatically load a user dictionary, user.dic, at startup if it exists in the home directory.
* @see {@link unloadUserDictionary}
*/

@@ -452,9 +553,8 @@ loadUserDictionary ( filename: string ): MMSysError {

/**
* Unloads the currently loaded user dictionary
* @returns {MMSysError} The value will be zero if the function is successful.
* The return value will be one of the following constants:
*
* `NoError` = 0 - Normal successful completion <br/>
* `InvalHandle` - The Text-To-Speech handle is invalid <br/>
* @memberof DecTalk
* Unloads the currently loaded user dictionary.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment A user dictionary is created using the User Dictionary Build tool.
* @see {@link loadUserDictionary}
*/

@@ -465,2 +565,207 @@ unloadUserDictionary (): MMSysError {

/**
* Returns information about the currently running version of DECtalk Software.
* @readonly
* @static
*/
static get version (): {
readonly dllVersion: number,
readonly dTalkVersion: number,
readonly structVersion: number,
readonly language: string,
readonly version: string,
readonly versionString: string,
readonly dtMajor: number,
readonly dtMinor: number,
readonly dapiMajor: number,
readonly dapiMinor: number,
} {
return super.version;
}
/**
* Causes the text-to-speech system to enter into the speech-to-memory mode. This mode indicates that the speech samples are to be written into memory buffers rather than sent to an audio device each time {@link speak()} is called. The {@link addBuffer()} call supplies the text-to-speech system with the memory buffers that it needs. The text-to-speech system remains in the speech-to-memory mode until {@link closeInMemory()} is called.
* @param {WaveFormat} format - Determines the wave file audio sample format
* @return {MMSysError} The value will be zero if the function is successful. return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - An invalid parameter or illegal wave output format was passed. <br/>
* - {@link MMSysError.NoMem | NoMem} - Unable to allocate memory. <br/>
* - {@link MMSysError.Error | Error} - Illegal output state. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The text-to-speech system is in the speech-to-memory mode after successfully invoking this call. The memory buffer is passed using the class {@link TTSBuffer}. <br/>
* The text-to-speech system returns the buffer to the application when the memory buffer, phoneme array, or index mark array is full or when force was used in the {@link speak()} call. <br/>
* The startup function must be called to start the text-to-speech system before calling this function. <br/>
* {@link openInMemory()} automatically resumes audio output if the text-to-speech system is in a paused state by a previously issued {@link pause()} call.
* @see {@link closeInMemory}
* @see {@link addBuffer}
* @see {@link startup}
* @see {@link TTSBuffer}
* @see {@link speak}
* @see {@link pause}
* @see {@link reset}
* @see {@link returnBuffer}
*/
openInMemory ( format: WaveFormat ): MMSysError {
return super.openInMemory( format );
}
/**
* Return the Text-To-Speech system to it's normal state. Speech samples will be routed to the audio device (if audio output was enabled at startup).
* @return {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.Error | Error} - Output to memory not enabled or unable to create a system object. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment {@link openInMemory()} must be called before calling {@link closeInMemory()}.
* @see {@link openInMemory}
*/
closeInMemory (): MMSysError {
return super.closeInMemory();
}
/**
* Add a buffer to the memory list.
* @param {TTSBuffer} buf - The buffer to be added to the memory list.
* @returns {MMSysError} The value will be zero if the function is successful. The return value will be one of the following constants:
* - {@link MMSysError.NoError | NoError} - Normal successful completion (zero). <br/>
* - {@link MMSysError.InvalParam | InvalParam} - Invalid parameter. <br/>
* - {@link MMSysError.Error | Error} - Output to memory not enabled or unable to create a system object. <br/>
* - {@link MMSysError.InvalHandle | InvalHandle} - The Text-To-Speech handle is invalid. <br/>
* @comment The application must call {@link openInMemory()} before calling {@link addBuffer()}. The memory buffer is passed using the {@link TTSBuffer} class. <br/>
* The text-to-speech system returns the buffer to the application when the memory buffer, phoneme array, or index mark array is full or when force was used in the {@link speak()} call.
* @see {@link openInMemory}
* @see {@link returnBuffer}
* @see {@link startup}
* @see {@link TTSBuffer}
*/
addBuffer ( buf: TTSBuffer ): MMSysError {
return super.addBuffer( buf );
}
/**
* Cause the current buffer to be returned even if it not yet full. The buffer may in fact be empty.
* @returns {TTSBuffer} The buffer returned by the Text-To-Speech system.
*/
returnBuffer (): TTSBuffer {
return super.returnBuffer();
}
/**
* Speaks a single letter as quickly as possible, aborting any previously queued speech. This will be somewhat slower if {@link speak()} has been called since the last {@link typing()} or {@link reset()} call.
* @param {string} text - The character to be spoken.
* @comment This function should only be called only when the application is synthesizing directly to an audio device (not to memory or to a file).
` */
typing ( text: string ): void {
super.typing( text );
}
/**
* Checks for an installed language and loads it into the DecTalk Multi-Language (ML) engine.
* @static
* @param {string} lang - The language to be loaded.
* @returns {number} A handle to the loaded language on success or sets the bit `TTSLangError` on failure. If the `TTSLangError` bit is set, the return can equal one of two values: `TTSNotSupported` for the application is not running DECtalk ML and `TTSNotAvailable` for the language selected is not installed.
* @comments This call must be called before a language may be selected and opened in a multi-language application.
*/
static startLang ( lang: string ): number {
return super.startLang( lang );
}
/**
* Selects a loaded language for a program thread.
* @static
* @param {number} lang - The language header to be selected.
* @returns {boolean} True if the language was selected successfully.
*/
static selectLang ( lang: number ): boolean {
return super.selectLang( lang );
}
/**
* Closes an instance for an installed language and attempts to unload it from the DecTalk Multi-Language (ML) engine.
* @static
* @param {string} lang - The language to be closed.
* @returns {boolean} True if the language was closed successfully.
* @comments Call this application per thread using the selected language. When a thread returns `true`, the language is freed and can be uninstalled or upgraded. A return of `true` may be a bad pass of the lang variable or more instances. If there are more instances, the call frees the current instance and returns a `false` flag. After calling {@link closeLang()}, assume the language handle is no longer valid.
* @see {@link enumLangs}
* @see {@link startLang}
* @see {@link selectLang}
*/
static closeLang ( lang: string ): boolean {
return super.closeLang( lang );
}
/**
* Retrieves information about what languages are available.
* @static
* @returns {{ multiLang: boolean, languages: { code: string, name: string }[] }} An object contains language data, and zero on error
* @comment {@link enumLangs()} returns the default language in the registry as the first language of the array of entries returned by langs.
* @see {@link startLang}
* @see {@link selectLang}
* @see {@link closeLang}
*/
static enumLangs (): { multiLang: boolean, languages: { code: string, name: string }[] } | 0 {
return super.enumLangs();
}
}
/**
* Contains information about the current state of the Text-To-Speech system.
* @comment When the memory buffer is completed, the memory buffer is returned to the calling application. A memory buffer is considered completed when any one of the following occur: <br/>
* * The memory buffer ( the data field ) is filled.
* * The phoneme array is filled.
* * The index mark array is filled.
* * A `TTSForce` argument is used in the call to {@link DecTalk.speak | speak()}.
* @see {@link DecTalk.addBuffer}
* @see {@link DecTalk.returnBuffer}
*/
export class TTSBuffer extends addon.TTSBuffer {
/**
* Creates an instance of TTSBuffer.
* @param { { data?: number, phoneme?: number, index?: number } } options - The maximum lengths of each list.
*/
constructor ( options: { data?: number, phoneme?: number, index?: number } ) {
super( options );
}
/**
* The audio sample data buffer.
* @readonly
* @type {Buffer}
*/
readonly data!: Buffer;
/**
* The list of phonemes in the buffer.
* @readonly
* @type {TTSPhoneme[]}
*/
readonly phoneme!: TTSPhoneme[];
/**
* The list of index marks in the buffer.
* @readonly
* @type {TTSIndex[]}
*/
readonly index!: TTSIndex[];
/**
* The maximum number of bytes in the data buffer.
* @readonly
* @type {number}
*/
readonly maxBufferLength!: number;
/**
* The maximum number of classes in the phoneme array.
* @readonly
* @type {number}
*/
readonly maxPhonemeLength!: number;
/**
* The maximum number of classes in the index array.
* @readonly
* @type {number}
*/
readonly maxIndexLength!: number;
}
import { DecTalk } from "./src";
var talk = new DecTalk();
var talk = new DecTalk();
talk.startup();
talk.speak(

@@ -17,2 +16,2 @@ [

);
talk.sync();
talk.syncSync();

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc