History log of /frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
10db95b316a29196ce39635682c07a2a414a09e7 07-Apr-2016 Niels Egberts <nielse@google.com> Fix issue when QUEUE_DESTROY arrive at the same time.

When multiple QUEUE_DESTROY messages arrive in a short timespan, some
messages were not flushed. This is because every QUEUE_DESTROY message
resets mFlushAll just before it starts playing itself. The solution
is to keep a counter of the amount of flushes that are still behind it on
the queue and keep flushing until the last one is reached.

Bug: 27555444
Change-Id: Ic24aa2250bf684e74b541907e4c57e0d5f0069ca
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
33b840444f5a481dd31e129079d3c0cf3acdf80e 08-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_session_t consistently

Also prefer AudioManager.AUDIO_SESSION_ID_GENERATE over
AudioSystem.AUDIO_SESSION_ALLOCATE, because
AudioSystem.AUDIO_SESSION_ALLOCATE is @hide.

Bug: 27562099
Change-Id: I5924554feb919db7f2390f5b062faedd515421af
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
c99ba1c3edf725e070383b27724c9ed63e1e5765 20-Nov-2015 Niels Egberts <nielse@google.com> API to listen in on the synthesized audio.

Change-Id: Ic943d39a0540f0061ef6f629e4934dc71f69ab6b
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
453c13f77121641a52d8b422a527feb7b3d3b8ab 20-Nov-2015 Niels Egberts <nielse@google.com> Small refactoring for FileSynthesisCallback.

Removed unused callerIdentity member and removed null checks
for the dispatcher.

Change-Id: I2983f5d48a7a593bc998ba4e033f1e815fa61819
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
54545f7e655f4dc3d9f75440a440950006fdaffd 05-Aug-2015 Niels Egberts <nielse@google.com> NPE occured when trying to parcel voice features.

The default features member should be an empty list instead of null.

Bug: 22404239
Change-Id: Ia39982f17fd3b3cd0f3556435170aed2fac14fb8
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
992ea1553c3ae6766505f084061c5ef2321229b7 26-Jun-2015 Niels Egberts <nielse@google.com> Fix crash with engines that don't override getVoices().

The name of the voices was not normalized in getVoices(), therefore if
you use getDefaultVoiceName, that name possibly doesn't appear in
getVoices(). The framework would then run into a NullPointerException.

This was caught by the cts tests. Also added a few more log statements.

BUG: 22115315
Change-Id: I51404ddcd1bc10dd3e1ddaac410cfa9873bf1438
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
4b73867a12a9339c7788e8949aac4a32d2eee22b 19-Nov-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add UtteranceProgressListener#onStop callback

New UtteranceProgressListener callback that allows
to detect a call to TextToSpeech#stop() (or QUEUE_FLUSH usage)
from the same client, or a QUEUE_DESTROY usage from any other
client (Talkback uses it to preempt other users of TextToSpeech
queue). This change is required for seamless Books read aloud
feature+Talkback usage.

+ Fixes for broken tests/TtsTests

Bug: 17901521

Change-Id: I30d2f297bb7c8d05cbeb16f63e85c1be0cca5c84
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
6ddd9c29b376fda27c4df3b18d6a67de14a633ca 25-Sep-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix ambiguous TTS#playSilence method.

Due to recent fixes for TTS API review (b/17389935)
overloaded playSilence method became ambiguous when
the last argument is null. This change renames the new
method to playSilentUtterance solving the issue.

Also, since LMP API level is 21, I updated invalid
references to it as API level 20 inside speech.tts.

Bug: 17389935
Change-Id: I9f9fae988240d1cec45d44650e53ffc29803ccac
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
f9ba548f210b0ed071ff7d597ddf2209af817294 22-Sep-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix issues with new TTS API

Bug: 17389935
Change-Id: I59234b3222f59dc89be7e40f7d4706b1f8c610ce
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
35c7698a1b17c3e4ca0eae753e68bf069a463d70 05-Sep-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> API review requests for the TTS package.

- New TextToSpeechService methods are no longer protected.
- s/getRequiresNetworkConnection/isNetworkConnectionRequired
- New TextToSpeec#play.. methods use a Bundle instead of a HashMap
- New synthesizeToFile(), addSpeech(), addEarcon() methods
take a File instead of a String with filepath.
- TextToSpeechService#s/isValidVoiceName/onIsValidVoiceName

Bug:17389935,17253934
Change-Id: Iec76f59015c34104683c050fe1ff1ceccd604134
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
672695e42387a024083d198f3d665f354ef1d27c 14-Jul-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add AudioAttributes support in the TTS.

Bug: 16259299
Change-Id: I53f4f7a2b9a3b9a422affaf6abe4aca258e67d7f
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
cafd15216ee66a302ee69c0ea0c6c63b07a2f68c 08-Jul-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix TTS regression, TTS#stop can result in #onDone callback.

Regressinon in the L, side effect of the rewrite. In pre-L android,
UtteranceProgressListener#onDone was called (but only if client
received UtteranceProgressListener#onStart for the utterance in progress)
after client called TextToSpeech#stop. This changeset reinstates
this behaviour.
+ Removed not used fallback callback

Bug: 16149006
Change-Id: I2eb5ede0abe6f5717b07f09adad861465575c238
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
ad6df74ada7c478257425b746588f22eeec199a6 01-Jul-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add support for voices in TTS API.

Voices allow to expose multiple backends/voice packs for a single
Locale. This is an attempt to port this feature from V2 API.

Bug: 15834470
Change-Id: I0117de238cfcf028bcec5344b8d65c960b96b98c
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
df7deefe8ebcbd619f27e2d394d7e5d0d7af33d1 25-Jun-2014 Niels Egberts <nielse@google.com> Support for CharSequences in the V1 API.

Two newly deprecated methods:
- TextToSpeech.speak (over TextToSpeech.speak with mandatory utteranceId)
- SynthesisRequest.getText (over SynthesisRequest.getCharSequenceText)

Change-Id: I8a75ed335c91074c72d6ef374ff8b9c79a7c208d
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
5cbf17ca053b09beadd0b031a46ce193ab27a0f8 18-Jun-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add support for audio session id in the TTS

+ #playEarcon & #queueAudio respects request Volume/Pan settings.

Bug:15432115
Change-Id: I136afef77afbc56c34810c64123f7be4b431d378
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
fc4b2890378eb1b6e0b11d60d703eb6854268064 26-Jun-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Remove TextToSpeechClient API.

Removed all of TTS V2 api with exception of error codes.

Bug: 15834470
Change-Id: I9d9d2aad01811af9b86bf7a3fd018a8d4e5c2f33
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
1b5637ee32c5d4e5d857fa86a1b1c1db23d027b7 30-May-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> Expose "default tts locale" to the TTS V2 API.

This change allows TTS V2 API client applications to honor the
"default TTS locale" set by the user in the TTS settings.

Note that the TTS V1 API uses 3 character country/language codes
for locale encoding. It's the only system component that does
that. TTS V2 uses the standard, valid Locale objects. The default
TTS locale setting was stored as a 3 character locale string with
"-" as the separator.

This change switches the TTS locale setting format to the output of
Locale.toString() call (on a valid Locale object). Methods used for
reading this value can interpret both forms and try to return a valid
Locale object as an output.

Change-Id: Ice2e6c25a43eb9dd6e17d371ee582c2dae3329c9
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
a6cc9b85ad7d4fdb4fef9666563c91bd878631f5 14-May-2014 Niels Egberts <nielse@google.com> Markup support for framework

Change-Id: Ia5ad6cff7593c295944a90775a1b061c95f5cc3f
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
067a21b2469a689dc075e8897756f2b3acb4495a 15-May-2014 Przemyslaw Szczepaniak <pszczepaniak@google.com> TTS Connection callbacks are called on main thread.

After experimenting with the new TTS API I found out that receiving
ConnectionCallbacks#onEngineStatusChange and #onServiceDisconnected
callbacks on non-main thread are problematic. They are very rare and
overhead of dealing with them in separate thread is high - in most
cases user just wants to process those callbacks in the main thread
context. This change should make new API usage easier.

+ Fixed default values of speech speed in voices from v1->v2 wrapper.

Change-Id: I76d3b607b3b931b7eb10aa180775fd3607c43bd9
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
97cd647fcd89c1a7a4448c4fc4d9ad906f8cf2a1 25-Oct-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> TTS API: Replace "voice id" with "voice name"

"Voice id" and "voice name" are both used to reference a voice in a
speech synthesis request. Voice id was a random integer, where
voice name is human readable string, that provides more debug
information and readability. Also, it's expected that voice name
will stay consistent, and won't change during the life of the speech
connection. Though, it may disappear.

Change-Id: I180296d413a18301cead1c8e3212de2bd0c7e32d
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
90d15d2371ad85f22254be6985455aa2baa5d15d 14-Jun-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> Add new TTS API.

Much of existing API is reused (mostly on the service side). The new API
provides better support for network-based synthesis, defines explicit
synthesis fallback support, has better error handling, allows for multiple
different voices per locale, features enumeration and custom extensions
on a voice level and many more.

If a service does not provide a V2 implementation, a basic adapter
from V2 to existing V1 implementation is provided.

Bug: 8259486
Change-Id: I797b7fc054f11c9b0d930f4dea582e57596ea127
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
653278341d76d0b23a008087ff94250ae0beb54b 31-May-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> Allow TTS service to identify caller.

Added new field (+setter and getter) to SynthesisRequest with
Uid of a calling process. TTS service will be able to discover
packages names associated with caller using
PackageManager.getPackagesForUid.

This will allow to block buggy or poorly designed programs from
an unintentional DDoS attacks against TTS service.

Bug: 8625440
Change-Id: I5ac0ea191f952495c00301f17efdf28205353ae4
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
24943bf19d3d000f9f5840513526b48523b62c71 13-Mar-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> Failing Text-To-Speech CTS tests fix.

Fix for failing android.speech.tts.cts.TextToSpeechServiceTest#testSynthesizeToFile.
In test env, ParcelFileDescriptor instance may be EXACTLY the same one that client uses.
And if it's closed by a client, then service is prevented from writing anything to the output.

Bug: 8377754
Change-Id: I7f95aae1b877e543ab02d3c548b29537aa852a89
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
7341786b138cb52eac053108b524ea3296d40f6d 06-Mar-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> Forgot to rename constructor to match class name.

Change-Id: I7e66c3dd26ec7f8be381b0dfd87ac686665206cd
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
fcf671be890f9fb49067c5f86b182bf8b8e7b9c0 05-Mar-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> Fix EBADF in TTS synthesizeToFile method.

Recent TTS change altered how the TextToSpeech.synthesizeToFile method
operates. Previously, synthesis service was responsible for creating
output file. Now, client API creates a file and then sends opened file
descriptor using ParcelFileDescriptor.

On service side, I forgot to keep a reference to a ParcelFileDescriptor object.
When GC was removing it, it was closing underlying file descriptor, resulting
in a EBADF error for all following writes to the output file.

This change makes use of a ParcelFileDescriptor.AutoCloseOutputStream to keep a
reference to the ParcelFileDescriptor. It will be referenced until we are done
with writing.

Change-Id: I8327af0eaeabaebfbbd8816d959783e89086a7c5
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
5acb33af357b56fffb055997718b1e4aa97f53fc 08-Feb-2013 Przemyslaw Szczepaniak <pszczepaniak@google.com> Make synthesizeToFile create file on a client side.

In previous setup, synthesizeToFile method relied on synthesizer
service to create world readable output file. This is potential
source of vulnerabilities.

This change moves output file creation to the client side, and
synthesizer service receives already opened file descriptor.

This change may break applications that are creating files in
now unaccessible locations, like /sdcard/.

Bug: 8027957
Change-Id: I97351be5d2f2f8ef9aa43d0ab08c4b825ca4c22b
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
b46533732c40c6aa4d0d7357176835a33d863234 04-Dec-2012 Przemyslaw Szczepaniak <pszczepaniak@google.com> Set default language in new TTS clients.

A recent change altered semantics of getLanguage call to return client
language instead of service language. This solved problems
with interferences between two clients using different lanaguages.

This change created a bug - new TTS client instance have no language set.
Since reading user preferences requires additional permissions I've
added new tts service method - getClientDefaultLanguage that will return
user preferences.

I've also added new client method, getDefaultLanguage, that allow easy
access to this data.

Bug: 7666482
Change-Id: Ieb7d2ba3a99d20c513add97f054874720a1cd82e
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
2d940bcbd1c472f8b11ce1495354f340604b4f2c 19-Nov-2012 Przemyslaw Szczepaniak <pszczepaniak@google.com> Make TTS input string limit public and documented.

TTS input limit is now publicly available from getMaxSpeechInputLength()
static method.

Bug: 7456118
Change-Id: Ib2afbb7202ad9dc15895f322fbd1480a5f1f7278
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
13896b74194b07c821d5d89713e4e747b9b77d73 09-Nov-2012 Przemyslaw Szczepaniak <pszczepaniak@google.com> woExecute onLoadLanguage in synthesis thread.

Previously, onLoadLanguage was executed without minding synthesis queue.
Now onLoadLanguage is queued item, so it won't be executed before the items
on the queue (previously TTS could receivecall to onLoadLanguage
while synthesizing in completly different language).

I've divided SpeechItem into ControlSpeechItem and UtteranceSpeechItem.
Utterance one dispatches callbacks about synthesis progress.

Bug: 7510063
Bug: 5351864
Change-Id: Ibd156b3cecb190e5c07c4451e61121127b54d51e
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
8f3957cb91a9e1465fa11aaf4d4286d4c5a59ba7 07-Nov-2012 Przemyslaw Szczepaniak <pszczepaniak@google.com> TTS onServiceConnection moved to async task

ITextToSpeechService.setCallback (service rpc call) is no longer
executed on UI thread.

I kept OnInitListener.onInit being called on the UI thread. It's
not specified explicitly, but I don't want to introduce subtle
bugs.

+bonus import fix.

Bug: 6540404
Change-Id: I0136e7efeb374b605ed29ee8b3f550ec2bd2c356
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
c3c427d2e3d7fbfb7cd5d6473bf203af2001bcec 16-Nov-2012 Przemyslaw Szczepaniak <pszczepaniak@google.com> Revert "Make TTS input string limit public and documented"

This reverts commit f288a64f5bed290d162c1a6fd54bea7c0ba14042

Change-Id: I6f3e2a6a6a131b0422cfcdb2bda23f8ae245d774
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
f288a64f5bed290d162c1a6fd54bea7c0ba14042 15-Nov-2012 Przemyslaw Szczepaniak <pszczepaniak@google.com> Make TTS input string limit public and documented

Bug: 7456118
Change-Id: Iced44eb349e1abb551f991c2b9357a03bab3bb3d
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
9c3d7a888d0c5c09f0153e81018ff68aa6e91712 20-Jul-2012 Narayan Kamath <narayan@google.com> Fixes to TextToSpeechService#synthesizeToFile

- Fixes a strict mode violation, defers file validity checks
to when the engine starts synthesizing audio.
- Fixes some log spam when done() is called twice.

bug:6215680
bug:5415258
Change-Id: I4001be848b5208422d4091b7398e94ed311c649f
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
af802c6831551323126537cf8edabea97d2fc762 05-Dec-2011 Narayan Kamath <narayan@google.com> Remove BlockingMediaPlayer.

No need to spawn a new thread for every audio item sent to
the TTS class.

Change-Id: Ia52b0951f4249b0da460a5ecaff5dd11a6e5d5fc
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
67ae6bc83cf2b30b0c61b9ebba5fed7a0038549c 30-Nov-2011 Narayan Kamath <narayan@google.com> Simplify the implementation of AudioPlaybackHandler.

Now uses a queue of runnables, one per synthesis. Also
introduce an abstraction that wraps AudioTrack that implements
the blocking semantics that we desire.

bug:5680699

Change-Id: I34a1248ff05766a7d9b3002055fb5b24aa9f230b
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
492b7f0d51f53164aa6eb974cd7ab6a7889af677 29-Nov-2011 Narayan Kamath <narayan@google.com> Allow multiple TextToSpeech instances per calling app.

We now use an IBinder object as an identity token of the
caller instead of Context#getPackageName.

bug:5680696
Change-Id: I1ca29e7161f709d2a85218206f3f117dfa620282
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
68e2af55d65d2e61fbf8096eccaa2e4ca02b6c5a 28-Nov-2011 Narayan Kamath <narayan@google.com> Fix TTS instantiation from webview accessibility handlers.

The TTS instantiated from here shouldn't clobber any
existing TTS objects opened within the same package context.

Ideally, the TTS API should work fine with multiple TTS object
instances within the same package context but making that happen
correctly is a larger change.

bug:5659758
Change-Id: Ia1f63c61b9f12ac92ff42a427a004d414e42a759
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
40f71f0be3cefabde9dc066d7707a1e5ebaec820 23-Nov-2011 Narayan Kamath <narayan@google.com> Fix regressions in TTS completion callbacks.

(a) onUtteranceCompleted should be called on errors too. Also,
fix up the error handling so that onUtteranceCompleted is
always called.
(b) Don't treat empty utterances as errors, and let the engine
synthesize them, as before.

bug:5662598
Change-Id: I9223592bc6fe5f47d71103f4f02f046b54a655a8
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
754c72ed9e8e83e5a913aa7552fc2e1b1b5277e0 09-Nov-2011 Narayan Kamath <narayan@google.com> Notifiy callers when a speech synthesis error occurs.

bug:5589877
Change-Id: Ideca8966ea1caa6789b3273e388dd1f25c1e2758
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
6c07a2028505e28abd601870f05d4752e92a4b7b 07-Nov-2011 Narayan Kamath <narayan@google.com> Fix a bug in the network TTS api.

bug:5284966
Change-Id: I460bd12c27671ed42681fd4ccad567c08cb8f70f
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
748af66ca27d3afe2e16ccc80b147d447635292a 31-Oct-2011 Narayan Kamath <narayan@google.com> Add an API for querying / enabling network TTS support.

bug:5284966
Change-Id: I01708f40bf0e975449125320dbcd4842210ca168
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
a65c62acabd204a0a1eb5504160238b288bee52b 06-Sep-2011 Narayan Kamath <narayan@google.com> Fix two TTS bugs.

(a) Fix a null pointer exception, caused by a race condition
between stop / start calls.
(b) Fix a deadlock observed when multiple apps call stop() when
an item from one of those apps is currently being processed.

bug:5253061

Change-Id: I78533aecfda028588ce6aedb041009bc0a6f4620
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
e5b8c4dfc70288f661e0da4f082dd51cc1399f86 22-Aug-2011 Narayan Kamath <narayan@google.com> Framework changes to support new TTS settings features.

Locale is now stored per engine, instead of as a global
option.

bug:5149036
Change-Id: I9848172623fe8aea1dd8e6678bca008da6a4cfb1
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
84deb60cf1055385b9922811e5942076dd72e315 27-Jul-2011 Narayan Kamath <narayan@google.com> Reduce the priority of the TTS thread.

It's at a very high priority currently - and will trump
foreground processes (and UI threads) which it shouldnt.

bug:5076001
Change-Id: I0d71c2941950782491ae31526a47ea6f97c38ffb
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
90e5650f96dabadaaf141beae20a646855073ae1 18-Jul-2011 Narayan Kamath <narayan@google.com> Few minor TTS clean ups.

(a) Remove unnecessary null check.
(b) Remove unused function.
(c) Clean up for TextToSpeech#shutdown.

Change-Id: I3ec5bccc327437064da130634a14aaf7d48eca4d
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
be4ad4ac66d6b4b878ed052975f7fb09af92c6d6 15-Jul-2011 Narayan Kamath <narayan@google.com> Fix a few threading issues in the AudioPlaybackHandler.

Also fixes a bug where PlaybackSynthesisCallback would
continue to pump audio to the audio playback thread after
being stopped.

Change-Id: I3233eb4858245b6e7c7df72e241a0708c668f1b4
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
c34f76fe89b5a31d01d63067c2f24b9a6a76df18 15-Jul-2011 Narayan Kamath <narayan@google.com> Improve TextToSpeech#isSpeaking()

Query the audio playback thread to check if it's busy.

bug:5033910
Change-Id: Ie57c7776bac27c2e712ddad4ec50fb7d78ea82e7
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
6dabb63307a0b63f9386d61e8444aed29db2081e 08-Jul-2011 Narayan Kamath <narayan@google.com> Add event-log logging for TTS requests.

Change-Id: I5023194c469a602b85259088a2e59373c96a941e
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
c3edf2a01a2cf2123a3de17ec1da11a3b6c459f0 15-Jun-2011 Narayan Kamath <narayan@google.com> Don't enforce defaults any more in the TextToSpeech API.

This has been discussed in an email thread. This brings the
text to speech API in line with other android APIs.

The user can set default speech rates / languages and
engine preferences, which the API obeys BUT these can be
overriden by individual apps (much like intent.setComponent
and intent.setClassName can be used to launch a specific
handler for a given intent).

Also, all installed engines are enabled by default. The
user is shown the "data privacy" warning every time an
installed engine is set to the default.

Change-Id: I24f5f331b3a7cc7ce1a62962192e3a452bdca9d4
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
abc63fbddab2477a2954bc804aba2826e1f11084 10-Jun-2011 Narayan Kamath <narayan@google.com> Some TTS fixes.

(a) Document the undocumented queue mode (mode == 2)
(b) intern strings to fix a bug in removeCallbacksAndMessages
(c) remove an unnecessarly lock object, change the field it
guarded to volatile.

Change-Id: If46bbfe2afb047b3ba5b3cb9a90c292656379ec1
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
4924fe38675f0bf69bb0c16fc059ffa1606807ce 09-Jun-2011 Narayan Kamath <narayan@google.com> Implement QUEUE_FLUSH and QUEUE_DESTROY addition modes.

Note that this change is slightly more flexible, it defines
a priority for each playback request. We needn't really throw
away synthesis requests from other apps. We could just play
them after higher priority ones (for e.g from talkback).

Change-Id: I6c7dd9abe4871e87da08d9aaa4c55225a69078e5
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
e22b69a7de0349b99d3107349d1d3aa72d62c841 08-Jun-2011 Narayan Kamath <narayan@google.com> Make changes to the TTS api suggested by the API review.

This ended up making the implementation a lot cleaner
as well. See the bug listed below for some background.

bug:4553470
Change-Id: If16476a57e389c2f9b228f6548e426642d292b49
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
8d1fc2403b8277e68d7816b2bbf05464a4c7a58a 03-Jun-2011 Narayan Kamath <narayan@google.com> Fix the threading behaviour of TTS audio requests.

All audio is played back on a separate thread.

Change-Id: I2bbb7b3140f6a04ef705cadb2bd1ae88951e3c48
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
7a3af86dc03a45280ceca6154040577f614c571e 02-Jun-2011 Narayan Kamath <narayan@google.com> Language loading / availablity should repsect defaults enforcement.

There is no point loading a language that will never be used.
It is in fact harmful, because the engine might load it and
then receive a request for the default voice and have to load
the default voice again.

Change-Id: I8082f28d15b6e325d6a39d439b66753711a2c244
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
c90f1c815dc06d5bb563474a340f7bb158fab2e2 24-May-2011 Narayan Kamath <narayan@google.com> Add a separate thread for writing to audiotracks.

Now, SynthesisRequest.audioAvailable( ) will not block
until all data has been written to the audiotrack.

Change-Id: Ie24c0b6873ae44659e88646fb7ef821750dc314e
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
b956f37e375bb2588208d4b5e8a40fae6fae5f86 16-May-2011 Narayan Kamath <narayan@google.com> Pass synthesis request params through to the TTS service.

Change-Id: I1ffd617d8dfa0814382643e3cf6b3ab7417c742a
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
4bbca889df9ca76c398f3a11e871fc6ad4a4514d 19-Apr-2011 Bjorn Bringert <bringert@android.com> Expose TTS engine API

This is a new API for writing text-to-speech engines.
The existing API for apps that use TTS remains the same,
with some minor additions.

Change-Id: Id577db449ae0e5baec40621d4a08387dbd755342
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
360eb168d6f9c967543852c7bbab370ef5d8c1bd 19-Apr-2011 Bjorn Bringert <bringert@android.com> TTS: SynthesisRequest.error() instead of return value

Change-Id: I02fe8ca1070a4e7c62ad30fd84c82bd6ecc2ecfa
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java
50e657bb2d005568f5dd8bc1d904d07b0d94018f 08-Mar-2011 Bjorn Bringert <bringert@android.com> Add Java API for writing TTS engines

This removes the old non-public C++ API for TTS
engines and replaces it with a Java API.

The new API is still @hidden, until it has been approved.

Bug: 4148636
Change-Id: I7614ff788e11f897e87052f684f1b4938d539fb7
/frameworks/base/core/java/android/speech/tts/TextToSpeechService.java