#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 |
| ArSpeechSynth::ArSpeechSynth | ( | ) |
Don't forget to call this from derived classes.
| virtual void ArSpeechSynth::addToConfig | ( | ArConfig * | config | ) | [virtual] |
Use the given ArConfig object to read parameters such as voice, speaking rate, volume.
| virtual const char* ArSpeechSynth::getCurrentVoiceName | ( | ) | [pure virtual] |
Get name of current voice, if set with setVoice (else returns NULL)
| ArRetFunctorC<bool, ArSpeechSynth>* ArSpeechSynth::getInitCallback | ( | ) |
| ArFunctorC<ArSpeechSynth>* ArSpeechSynth::getInterruptCallback | ( | ) |
| ArRetFunctor2C<bool, ArSpeechSynth, const char*, const char*>* ArSpeechSynth::getSpeakCallback | ( | void | ) |
| virtual std::list<std::string> ArSpeechSynth::getVoiceNames | ( | ) | [pure virtual] |
Return a list of available voice names, if possible.
| virtual bool ArSpeechSynth::init | ( | ) | [virtual] |
Perform synthesizer initialization, if necessary. You must call this method.
(Subclass implementations should call this method *after* initializing their speech engine.)
| virtual void ArSpeechSynth::interrupt | ( | ) | [pure virtual] |
If any speech is currently ongoing, interrupt it.
| virtual void ArSpeechSynth::lock | ( | void | ) | [inline, virtual] |
Lock, if neccesary
| 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.
| 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
| virtual bool ArSpeechSynth::setVoice | ( | const char * | name | ) | [pure virtual] |
Set the current voice by name. Replaces fully any previous required voice criteria.
| virtual bool ArSpeechSynth::speak | ( | const char * | str, | |
| const char * | voiceParams = NULL | |||
| ) | [virtual] |
Speaks the given text.
| str | The text to speak. | |
| voiceParams | Voice selection criteria expression (implementation-specific) |
| 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.
| str | The text to speak. | |
| voiceParams | Voice selection criteria expression (implementation-specific) | |
| audioOutputCB | If not NULL, send synthesized audio data to this callback (may be called several times). Otherwise, play using default AudioCallback, or directly out the speakers | |
| sampleRate | if given, temporarily use this sample rate for this speech, then restore. If 0, use current sample rate. |
| virtual bool ArSpeechSynth::speakf | ( | const char * | fmt, | |
| ... | ||||
| ) | [pure virtual] |
Speaks the given string, using current voice and output settings, taking varargs and a format string (like printf)
| virtual void ArSpeechSynth::unlock | ( | void | ) | [inline, virtual] |
Unlock, if neccesary
1.5.1