#include <ArSpeech.h>
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.
Public Member Functions | |
virtual void | addToConfig (ArConfig *config) |
ArSpeechSynth () | |
virtual int | getAudioSampleRate ()=0 |
virtual const char * | getCurrentVoiceName ()=0 |
ArRetFunctorC< bool, ArSpeechSynth > * | getInitCallback () |
ArFunctorC< ArSpeechSynth > * | getInterruptCallback () |
ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > * | getSpeakCallback (void) |
virtual std::list< std::string > | getVoiceNames ()=0 |
virtual bool | init () |
virtual void | interrupt ()=0 |
virtual void | lock () |
void | setAudioCallback (ArRetFunctor2< bool, ArTypes::Byte2 *, int > *cb) |
virtual void | setAudioSampleRate (int rate)=0 |
virtual bool | setVoice (const char *name)=0 |
virtual bool | speak (const char *str, const char *voiceParams=NULL) |
virtual bool | speak (const char *str, const char *voiceParams, ArRetFunctor2< bool, ArTypes::Byte2 *, int > *audioOutputCB, unsigned short sampleRate=0)=0 |
virtual bool | speakf (const char *fmt,...)=0 |
virtual void | unlock () |
Protected Attributes | |
ArRetFunctor2< bool, ArTypes::Byte2 *, int > * | myAudioPlaybackCB |
If set, send audio to this callback instead of playing it directly. | |
ArRetFunctorC< bool, ArSpeechSynth > | myInitCB |
ArFunctorC< ArSpeechSynth > | myInterruptCB |
ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > | mySpeakCB |
|
Don't forget to call this from derived classes. |
|
Use the given ArConfig object to read parameters such as voice, speaking rate, volume. |
|
Get name of current voice, if set with setVoice (else returns NULL) |
|
|
|
|
|
|
|
Return a list of available voice names, if possible. |
|
Perform synthesizer initialization, if necessary. You must call this method. (Subclass implementations should call this method *after* initializing their speech engine.) |
|
If any speech is currently ongoing, interrupt it. |
|
Lock, if neccesary |
|
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. |
|
Change audio sample rate (Hz). Normal rate is 16000 Hz. Suggested values are 8000, 16000, or 44400 |
|
Set the current voice by name. Replaces fully any previous required voice criteria.
|
|
Speaks the given text.
|
|
Speaks the given text.
|
|
Speaks the given string, using current voice and output settings, taking varargs and a format string (like printf) |
|
Unlock, if neccesary |