Methods Summary |
---|
protected abstract void | logFailure(int statusCode)
|
protected abstract void | logSuccess(long audioLatency, long engineLatency, long engineTotal)
|
public void | onAudioDataWritten()Notifies the logger that audio playback has started for some section
of the synthesis. This is normally some amount of time after the engine
has synthesized data and varies depending on utterances and
other audio currently in the queue.
// For now, keep track of only the first chunk of audio
// that was played.
if (mPlaybackStartTime == -1) {
mPlaybackStartTime = SystemClock.elapsedRealtime();
}
|
public void | onCompleted(int statusCode)Notifies the logger that the current synthesis has completed.
All available data is not logged.
if (mLogWritten) {
return;
} else {
mLogWritten = true;
}
long completionTime = SystemClock.elapsedRealtime();
// We don't report latency for stopped syntheses because their overall
// total time spent will be inaccurate (will not correlate with
// the length of the utterance).
// onAudioDataWritten() should normally always be called, and hence mPlaybackStartTime
// should be set, if an error does not occur.
if (statusCode != TextToSpeech.SUCCESS
|| mPlaybackStartTime == -1 || mEngineCompleteTime == -1) {
logFailure(statusCode);
return;
}
final long audioLatency = mPlaybackStartTime - mReceivedTime;
final long engineLatency = mEngineStartTime - mRequestProcessingStartTime;
final long engineTotal = mEngineCompleteTime - mRequestProcessingStartTime;
logSuccess(audioLatency, engineLatency, engineTotal);
|
public void | onEngineComplete()Notifies the logger that the engine has finished processing data.
Will be called exactly once.
mEngineCompleteTime = SystemClock.elapsedRealtime();
|
public void | onEngineDataReceived()Notifies the logger that a chunk of data has been received from
the engine. Might be called multiple times.
if (mEngineStartTime == -1) {
mEngineStartTime = SystemClock.elapsedRealtime();
}
|
public void | onRequestProcessingStart()Notifies the logger that this request has been selected from
the processing queue for processing. Engine latency / total time
is measured from this baseline.
mRequestProcessingStartTime = SystemClock.elapsedRealtime();
|