TTS Narrator FAQ


Does the Pipeline include TTS voices ?

The DAISY Pipeline "TTS Narrator" script does not include TTS voices per se, it just uses the voices available on the system.

Does the Narrator support multi-language books ?

If the Narrator option "Multi-language support" is disabled, it will use the voice configured in your default system settings (e.g. via the Control Panel on Windows). If the option "Multi-language support" is checked, it will try to find a voice compatible with the language(s) of the document as declared in the xml:lang attributes of the dtbook.

How does the TTS voice selection work ?

The Pipeline uses a set of declarative rules to associate TTS voices to language codes. If the "Multi-language support" option is enabled, the Narrator automatically switches the TTS voice depending on the value of the xml:lang attributes found in the DTBook. If there is no specific rule for a given language, the Narrator will fall back to the default system voice. Note that on Windows, the actual voice selection is delegated to the Microsoft Speech API (SAPI 5), which means that only SAPI-compliant TTS engines can be used.

Can I customize the TTS voice selection from the new job wizard ?

No, this is not currently possible in the GUI. The TTS voice selection customization can only be done by manually editing a Pipeline internal configuration file.

How can I customize the TTS voice selection ?

The customization of the voice selection queries is not doable via the GUI and is a bit technical: you have to manually edit an internal XML configuration file, please refer to the se_tpb_speechgen2 transformer documentation for further information.

On Windows

The TTS builder factory delegates the voice selection to the Microsoft Speech API (SAPI 5) by wrapping the text sent to the TTS in a voice SAPI XML tag. For instance, if the TTS declaration contains the parameter: <param name="sapiVoiceSelection" value="Gender=Female;Age!=Child;Language=409"/> this would result in a: <voice optional="Gender=Female;Age!=Child;Language=409">bla bla</voice> around every phrase produced using this tts. Refer to the Microsoft XML TTS tutorial for further information.

On Mac OS X

The name of the TTS voice can be directly specified in the TTS builder factory configuration file, via the "voice" parameter. This parameter accepts a coma-separated list of voice names, this first existing voice will be used. For instance, if the TTS delcaration contains the parameter: <param name="voice" value="Alex, Vicky"/> The selected voice will be Apple's Alex voice on Mac OS X 10.5 Leopard, and Apple's Vicky on Mac OS X 10.4 Tiger.

On Linux

With the default TTS adapter to the ESpeak TTS engine, the voice language selection is configured with the "eSpeakVoiceFile" attribute. This attribute accepts a language code.