Aria
2.8.0
|
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, ArSpeechSynth > | myInitCB |
ArFunctorC< ArSpeechSynth > | myInterruptCB |
ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > | mySpeakCB |
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.
ArSpeechSynth::ArSpeechSynth | ( | ) |
Don't forget to call this from derived classes.
ArRetFunctorC< bool, ArSpeechSynth > * ArSpeechSynth::getInitCallback | ( | void | ) |
ArFunctorC< ArSpeechSynth > * ArSpeechSynth::getInterruptCallback | ( | ) |
ArRetFunctor2C< bool, ArSpeechSynth, const char *, const char * > * ArSpeechSynth::getSpeakCallback | ( | void | ) |
|
pure virtual |
Return a list of available voice names, if possible.
|
virtual |
Perform synthesizer initialization, if necessary.
You must call this method.
(Subclass implementations should call this method after initializing their speech engine.)
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.
|
pure virtual |
Change audio sample rate (Hz).
Normal rate is 16000 Hz. Suggested values are 8000, 16000, or 44400
|
pure virtual |
Set the current voice by name.
Replaces fully any previous required voice criteria.
|
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 |
Speaks the given text.
str | The text to speak. |
voiceParams | Voice selection criteria expression (implementation-specific) |