Aria  2.8.0
ArSpeechSynth Class Referenceabstract

Abstract interface to speech synthesis. More...

#include <ArSpeech.h>

Public Member Functions

virtual void addToConfig (ArConfig *config)
 Use the given ArConfig object to read parameters such as voice, speaking rate, volume.
 
 ArSpeechSynth ()
 Don't forget to call this from derived classes. More...
 
virtual int getAudioSampleRate ()=0
 
virtual const char * getCurrentVoiceName ()=0
 Get name of current voice, if set with setVoice (else returns NULL)
 
ArRetFunctorC< bool, ArSpeechSynth > * getInitCallback ()
 
ArFunctorC< ArSpeechSynth > * getInterruptCallback ()
 
ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > * getSpeakCallback (void)
 
virtual std::list< std::string > getVoiceNames ()=0
 Return a list of available voice names, if possible. More...
 
virtual bool init ()
 Perform synthesizer initialization, if necessary. More...
 
virtual void interrupt ()=0
 If any speech is currently ongoing, interrupt it.
 
virtual void lock ()
 Lock, if neccesary.
 
void setAudioCallback (ArRetFunctor2< bool, ArTypes::Byte2 *, int > *cb)
 Instead of playing synthesized audio using the synthesizer's internal audio playback, call the given callback when a chunk of audio has been synthesized. More...
 
virtual void setAudioSampleRate (int rate)=0
 Change audio sample rate (Hz). More...
 
virtual bool setVoice (const char *name)=0
 Set the current voice by name. More...
 
virtual bool speak (const char *str, const char *voiceParams, ArRetFunctor2< bool, ArTypes::Byte2 *, int > *audioOutputCB, unsigned short sampleRate=0)=0
 Speaks the given text. More...
 
virtual bool speak (const char *str, const char *voiceParams=NULL)
 Speaks the given text. More...
 
virtual bool speakf (const char *fmt,...)=0
 Speaks the given string, using current voice and output settings, taking varargs and a format string (like printf)
 
virtual void unlock ()
 Unlock, if neccesary.
 

Protected Attributes

ArRetFunctor2< bool, ArTypes::Byte2 *, int > * myAudioPlaybackCB
 If set, send audio to this callback instead of playing it directly.
 
ArRetFunctorC< bool, ArSpeechSynthmyInitCB
 
ArFunctorC< ArSpeechSynthmyInterruptCB
 
ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > mySpeakCB
 

Detailed Description

Abstract interface to speech synthesis.

This class defines the abstract interface for speech synthesizers used with Aria. Implementations are provided in the separate ArSpeechSynth_Cepstral and ArSpeechSynth_Festival libraries. This class provides a common-denominator interface. Implementations (especially ArCepstral) may support more features, or behave differently; refer to their documentation for more information.

This class registers one parameter with the global ArConfig object in the "Speech Synthesis" section: The parameter is named "voice" and sets the voice used for speech synthesis, if multiple voices is supported and the new voice can be loaded.

Constructor & Destructor Documentation

◆ ArSpeechSynth()

ArSpeechSynth::ArSpeechSynth ( )

Don't forget to call this from derived classes.

Member Function Documentation

◆ getInitCallback()

ArRetFunctorC< bool, ArSpeechSynth > * ArSpeechSynth::getInitCallback ( void  )
Returns
a functor for init() to use with ArSoundsQueue

◆ getInterruptCallback()

ArFunctorC< ArSpeechSynth > * ArSpeechSynth::getInterruptCallback ( )
Returns
a functor for interrupt()

◆ getSpeakCallback()

ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > * ArSpeechSynth::getSpeakCallback ( void  )
Returns
a functor for speak() to use with ArSoundsQueue

◆ getVoiceNames()

virtual std::list<std::string> ArSpeechSynth::getVoiceNames ( )
pure virtual

Return a list of available voice names, if possible.

◆ init()

bool ArSpeechSynth::init ( void  )
virtual

Perform synthesizer initialization, if necessary.

You must call this method.

(Subclass implementations should call this method after initializing their speech engine.)

◆ setAudioCallback()

void ArSpeechSynth::setAudioCallback ( ArRetFunctor2< bool, ArTypes::Byte2 *, int > *  cb)

Instead of playing synthesized audio using the synthesizer's internal audio playback, call the given callback when a chunk of audio has been synthesized.

Audio is passed to the callback in the first parameter as signed 16-bit samples (PCM16). The sample rate is 16kHz but may be changed with setAudioSampleRate(). The second parameter is the number of samples. The return value from the callback is ignored.

◆ setAudioSampleRate()

virtual void ArSpeechSynth::setAudioSampleRate ( int  rate)
pure virtual

Change audio sample rate (Hz).

Normal rate is 16000 Hz. Suggested values are 8000, 16000, or 44400

◆ setVoice()

virtual bool ArSpeechSynth::setVoice ( const char *  name)
pure virtual

Set the current voice by name.

Replaces fully any previous required voice criteria.

See also
getVoiceNames

◆ speak() [1/2]

virtual bool ArSpeechSynth::speak ( const char *  str,
const char *  voiceParams,
ArRetFunctor2< bool, ArTypes::Byte2 *, int > *  audioOutputCB,
unsigned short  sampleRate = 0 
)
pure virtual

Speaks the given text.

Parameters
strThe text to speak.
voiceParamsVoice selection criteria expression (implementation-specific)
audioOutputCBIf not NULL, send synthesized audio data to this callback (may be called several times). Otherwise, play using default AudioCallback, or directly out the speakers
sampleRateif given, temporarily use this sample rate for this speech, then restore. If 0, use current sample rate.

◆ speak() [2/2]

bool ArSpeechSynth::speak ( const char *  str,
const char *  voiceParams = NULL 
)
virtual

Speaks the given text.

Parameters
strThe text to speak.
voiceParamsVoice selection criteria expression (implementation-specific)

The documentation for this class was generated from the following files: