Development > Engine drivers >


Engine properties file

The engine.properties file is located in the engine directory under the 'sh' sub-directory and is mandatory for all engines regardless of the protocol used.

The file format follows a standard properties key value pairs and exposes engine attributes and features necessary for SH to configure itself to ensure correct and efficient operation of the engine. In cases where the engine does not provide certain features, SH attempts to complement these missing capabilities.

The following are the keys and values used in the recommended stdio-native protocol. Most of these keys are used in other protocols as well; those which are uniquely used by other protocols and are not likely to be encountered by developers are not included here.

In cases where a property can have a true of false values, these are specified always in lower case and if the property is missing altogether it default to false.

engine.caption

Value: engine caption

The engine caption is derived from the engine name and is used to identify the engine by the user and therefore should be clearly readable by screen readers. Spaces are not allowed and individual words should be capitalized as necessary to make them distinctly readable.

Example: engine.caption=PicoTTS

engine.package.version

Value: engine version

The engine version is made of three numerical fields separated by a '.' dot. Note that this is the version of the SH package of the engine including the driver, configuration files and usually the synthesizer libraries. This is not the version of the synthesizer itself.

Example: engine.package.version=0.1.0

engine.protocol

Value: protocol name

The recommended protocol for implementing a new engine is stdio.native.

Example: engine.protocol=stdio.native

engine.protocol.version

Value 1.0

The protocol version is made of two numerical fields separated by a '.' dot. All protocols currently have the value 1.0

Example: engine.protocol.version=1.0

engine.supports.audio

Value: true or false

Specify true if the engine returns audio samples to SH; this is the recommended implementation as it ensures maximum response and portability. Specify false if the engine (synthesizer) sends the audio directly to the computer audio system.

Example: engine.supports.audio.data=true

engine.use.sonic

Value: true or false

Specify false if the engine implements good quality rate control. Specify true if Sonic which is built into SH should implement the rate control instead.

Example: engine.use.sonic=false

engine.use.sonic.pitch

Value: true or false

Specify false if the engine implements good quality pitch control. Specify true if Sonic which is built into SH should implement the pitch control instead.

Example: engine.use.sonic.pitch=false

engine.supports.variants

Value: true or false

Specify true if the engine supports variants; false if not.

Example: engine.supports.variants=true

engine.supports.punctuation

Value: true or false

Specify true if the engine supports punctuation levels. Specify false if punctuation levels are not supported by the engine, in which case, SH would attempt to support this feature if conversion tables were defined for the language required; currently this feature is only implemented in English.

Example: engine.supports.punctuation=true

engine.supports.ssml

Value: true or false

Specify true if the engine supports SSML. Specify false if the engine does not support SSML, in which case, SH handles SSML instead; at this time SSML handling by SH means simply stripping out any SSML tags. We wuld look at implementing SSML at the SH level in the future pending on demand for this feature.

Example: engine.supports.ssml=true

engine.force.slash.pathsep

Value: true or false

Engines using the stdio.native protocol to communicate with SpeechHub are passed the path to their data directory when started by SpeechHub. One Linux, forward slashes are used in the path, while on Windows, backslash is used. Some TTS engines require forward slash Linux style paths, even when running on Windows. Set this parameter true only for these engines. It should be false for most engines.

Example: engine.force.slash.pathsep=true


[ Next - Writing New Engine Drivers ]

[ Previous - Engine directory ]

[ Up - Engine drivers - Section ]

[ Up 2 - Development - Section ]

[ Up 3 - SpeechHub - TTS server for the vision impaired community - Main Index ]