eu.semaine.components.mary
Class SpeechPreprocessor

java.lang.Object
  extended by java.lang.Thread
      extended by eu.semaine.components.Component
          extended by eu.semaine.components.mary.SpeechPreprocessor
All Implemented Interfaces:
SEMAINEMessageAvailableListener, java.lang.Runnable
Direct Known Subclasses:
QueuingSpeechPreprocessor

public class SpeechPreprocessor
extends Component

Speech preprocessor : To find pitch accent and boundaries Speech BML realiser : Audio synthesis and phone timings

Author:
Sathish Chandra Pammi

Nested Class Summary
 
Nested classes/interfaces inherited from class eu.semaine.components.Component
Component.State
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class eu.semaine.components.Component
inputWaiting, isInput, isOutput, log, meta, receivers, senders, state, waitingTime
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
  SpeechPreprocessor()
           
protected SpeechPreprocessor(java.lang.String compName, java.lang.String fmlReceiverTopic, java.lang.String bmlReceiverTopic, java.lang.String fmlbmlSenderTopic)
          Protected constructor which must be called by every constructor
 
Method Summary
protected  void customStartIO()
          Any custom startup code can go here.
 java.lang.String getCurrentCharacter()
           
static java.util.Locale getMessageLocale(SEMAINEXMLMessage xm)
          For an FML-APML or BML message, find the content of the 'language' attribute of the speech tag, and return a corresponding Locale object.
static marytts.modules.synthesis.Voice getVoice(SEMAINEXMLMessage xm, java.lang.String character)
          Find a suitable voice for the given combination of FML-APML message and character name.
static java.lang.String getVoiceEffects(SEMAINEXMLMessage xm, java.lang.String character)
          For the given combination of FML-APML message and character name, if they fit together, return any voice effects listed in the character's entry in the CharacterConfigInfo.
 void react(SEMAINEMessage m)
          Reactions to messages.
 
Methods inherited from class eu.semaine.components.Component
act, exitRequested, messageAvailableFrom, requestExit, run
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SpeechPreprocessor

public SpeechPreprocessor()
                   throws javax.jms.JMSException
Parameters:
componentName -
Throws:
javax.jms.JMSException

SpeechPreprocessor

protected SpeechPreprocessor(java.lang.String compName,
                             java.lang.String fmlReceiverTopic,
                             java.lang.String bmlReceiverTopic,
                             java.lang.String fmlbmlSenderTopic)
                      throws javax.jms.JMSException
Protected constructor which must be called by every constructor

Parameters:
compName -
Throws:
javax.jms.JMSException
Method Detail

customStartIO

protected void customStartIO()
                      throws java.lang.Exception
Description copied from class: Component
Any custom startup code can go here.

Overrides:
customStartIO in class Component
Throws:
java.lang.Exception - if anything goes wrong in the internal processing of the component.

react

public void react(SEMAINEMessage m)
           throws java.lang.Exception
Description copied from class: Component
Reactions to messages. This base implementation does nothing; subclasses should implement suitable behaviour here.

Overrides:
react in class Component
Throws:
javax.jms.JMSException - if communication with the JMS server goes wrong.
java.lang.Exception - if anything goes wrong in the internal processing of the component.

getMessageLocale

public static java.util.Locale getMessageLocale(SEMAINEXMLMessage xm)
For an FML-APML or BML message, find the content of the 'language' attribute of the speech tag, and return a corresponding Locale object.

Parameters:
xm -
Returns:
the message locale, or null if none could be found.

getVoice

public static marytts.modules.synthesis.Voice getVoice(SEMAINEXMLMessage xm,
                                                       java.lang.String character)
                                                throws SystemConfigurationException
Find a suitable voice for the given combination of FML-APML message and character name. Normally, the character name will correspond to an entry in the CharacterConfigInfo, and its voice locale will match the message's locale. If either of the two is not available, the method tries to get a good approximation.

Parameters:
xm - an FML-APML message
character - a character name
Returns:
a voice object
Throws:
SystemConfigurationException - if no voice can be found for the given character

getVoiceEffects

public static java.lang.String getVoiceEffects(SEMAINEXMLMessage xm,
                                               java.lang.String character)
For the given combination of FML-APML message and character name, if they fit together, return any voice effects listed in the character's entry in the CharacterConfigInfo.

Parameters:
xm - an FML-APML message
character - a character name
Returns:
a string containing voice effects, or the empty string.

getCurrentCharacter

public java.lang.String getCurrentCharacter()