wiki:TTSGenerator

Hooking up a new TTS system to AsapRealizer's default SpeechEngine

Create a new TTSGenerator

  1. Create a ttsgenerator (that is a class that extends hmi.tts.AbstractTTSGenerator), implement all abstract methods for the TTS system.
    1. If desired, create bridges for specific speech annotations your TTS system supports (e.g. SSML, SAPI, MaryTTS XML)
  2. Create a binding (that is: a class that extends asap.speechengine.ttsbinding.TTSBinding), that binds bml behaviors to the created bridges. At least one bridge must exist to bind the core BML speech behavior to your ttsgenerator. e.g.:
    ttsBridgeMap.put(SpeechBehaviour.class, new BMLTTSBridge(mySpeechGenerator));
    
  3. Create a loader for this binding (that is: a class that implements asap.speechengine.ttsbinding.TTSBindingLoader

See AsapTTSIpaaca for an example of this.

Use the new TTSBinding

In your VirtualHumanLoader XML:

<Loader id="ttsbinding" loader="mypackage.MyTTSBindingLoader">
  <!-- inner elements that are specific for the configuration of MyTTSBindingLoader -->
   ...
</Loader>

<Loader id="speechengine" loader="asap.speechengine.loader.SpeechEngineLoader" requiredloaders="facelipsync,jawlipsync,ttsbinding">
   <Voice factory="WAV_TTS"/>
</Loader>