FileDocCategorySizeDatePackage
SynthesisCallback.javaAPI DocAndroid 5.1 API5019Thu Mar 12 22:22:10 GMT 2015android.speech.tts

SynthesisCallback

public interface SynthesisCallback
A callback to return speech data synthesized by a text to speech engine. The engine can provide streaming audio by calling {@link #start}, then {@link #audioAvailable} until all audio has been provided, then finally {@link #done}. {@link #error} can be called at any stage in the synthesis process to indicate that an error has occurred, but if the call is made after a call to {@link #done}, it might be discarded. {@link #done} must be called at the end of synthesis, regardless of errors. All methods can be only called on the synthesis thread.

Fields Summary
Constructors Summary
Methods Summary
public intaudioAvailable(byte[] buffer, int offset, int length)
The service should call this method when synthesized audio is ready for consumption. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}.

param
buffer The generated audio data. This method will not hold on to {@code buffer}, so the caller is free to modify it after this method returns.
param
offset The offset into {@code buffer} where the audio data starts.
param
length The number of bytes of audio data in {@code buffer}. This must be less than or equal to the return value of {@link #getMaxBufferSize}.
return
{@link TextToSpeech#SUCCESS}, {@link TextToSpeech#ERROR} or {@link TextToSpeech#STOPPED}.

public intdone()
The service should call this method when all the synthesized audio for a request has been passed to {@link #audioAvailable}. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}. This method has to be called if {@link #start} and/or {@link #error} was called.

return
{@link TextToSpeech#SUCCESS}, {@link TextToSpeech#ERROR} or {@link TextToSpeech#STOPPED}.

public voiderror()
The service should call this method if the speech synthesis fails. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}.

public voiderror(int errorCode)
The service should call this method if the speech synthesis fails. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}.

param
errorCode Error code to pass to the client. One of the ERROR_ values from {@link TextToSpeech}

public intgetMaxBufferSize()

return
the maximum number of bytes that the TTS engine can pass in a single call of {@link #audioAvailable}. Calls to {@link #audioAvailable} with data lengths larger than this value will not succeed.

public booleanhasFinished()
Check if {@link #done} was called or not. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}. Useful for checking if a fallback from network request is possible.

public booleanhasStarted()
Check if {@link #start} was called or not. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}. Useful for checking if a fallback from network request is possible.

public intstart(int sampleRateInHz, int audioFormat, int channelCount)
The service should call this when it starts to synthesize audio for this request. This method should only be called on the synthesis thread, while in {@link TextToSpeechService#onSynthesizeText}.

param
sampleRateInHz Sample rate in HZ of the generated audio.
param
audioFormat Audio format of the generated audio. Must be one of the ENCODING_ constants defined in {@link android.media.AudioFormat}.
param
channelCount The number of channels. Must be {@code 1} or {@code 2}.
return
{@link TextToSpeech#SUCCESS}, {@link TextToSpeech#ERROR} or {@link TextToSpeech#STOPPED}.