summaryrefslogtreecommitdiffstats
path: root/core/java/android/speech
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2009-06-10 17:33:34 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2009-06-10 21:32:38 -0700
commita8518c169bb34e540b7542ad5bd3891053d01a9f (patch)
tree27257de3003b7340eab7d2b2fe562f3c96df0e66 /core/java/android/speech
parent2795c2d6b73f6e72565569f7d4f2f4b34e526bba (diff)
downloadframeworks_base-a8518c169bb34e540b7542ad5bd3891053d01a9f.zip
frameworks_base-a8518c169bb34e540b7542ad5bd3891053d01a9f.tar.gz
frameworks_base-a8518c169bb34e540b7542ad5bd3891053d01a9f.tar.bz2
Renaming the Tts class to TextToSpeech for clarity.
Switching to HashMap for parameter lists to pass key-value parameter pairs. Using TODO instead of FIXME in comments. Removing methods that don't belong anymore to the TTS interface now the feature becomes part of the platform.
Diffstat (limited to 'core/java/android/speech')
-rwxr-xr-xcore/java/android/speech/tts/TextToSpeech.java (renamed from core/java/android/speech/tts/Tts.java)141
1 files changed, 32 insertions, 109 deletions
diff --git a/core/java/android/speech/tts/Tts.java b/core/java/android/speech/tts/TextToSpeech.java
index 085b030..11be75d 100755
--- a/core/java/android/speech/tts/Tts.java
+++ b/core/java/android/speech/tts/TextToSpeech.java
@@ -28,21 +28,16 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
+import java.util.HashMap;
+
/**
*
- * Synthesizes speech from text. This abstracts away the complexities of using
- * the TTS service such as setting up the IBinder connection and handling
- * RemoteExceptions, etc.
- *
- * The TTS should always be safe the use; if the user does not have the
- * necessary TTS apk installed, the behavior is that all calls to the TTS act as
- * no-ops.
+ * Synthesizes speech from text.
*
* {@hide}
*/
-//FIXME #TTS# review + complete javadoc
-//FIXME RENAME TO TextToSpeech.java
-public class Tts {
+//TODO #TTS# review + complete javadoc
+public class TextToSpeech {
/**
@@ -82,31 +77,6 @@ public class Tts {
private OnSpeechCompletedListener speechCompletedCallback = null;
- /**
- * The constructor for the TTS.
- *
- * @param context
- * The context
- * @param callback
- * The InitListener that should be called when the TTS has
- * initialized successfully.
- * @param displayInstallMessage
- * Boolean indicating whether or not an installation prompt
- * should be displayed to users who do not have the TTS library.
- * If this is true, a generic alert asking the user to install
- * the TTS will be used. If you wish to specify the exact message
- * of that prompt, please use TTS(Context context, InitListener
- * callback, TTSVersionAlert alert) as the constructor instead.
- */
- public Tts(Context context, OnInitListener callback,
- boolean displayInstallMessage) {
- showInstaller = displayInstallMessage;
- ctx = context;
- cb = callback;
- if (dataFilesCheck()) {
- initTts();
- }
- }
/**
* The constructor for the TTS.
@@ -117,15 +87,13 @@ public class Tts {
* The InitListener that should be called when the TTS has
* initialized successfully.
*/
- public Tts(Context context, OnInitListener callback) {
- // FIXME #TTS# support TtsVersionAlert
+ public TextToSpeech(Context context, OnInitListener callback) {
+ // TODO #TTS# support TtsVersionAlert
// showInstaller = true;
// versionAlert = alert;
ctx = context;
cb = callback;
- if (dataFilesCheck()) {
- initTts();
- }
+ initTts();
}
@@ -136,9 +104,9 @@ public class Tts {
private boolean dataFilesCheck() {
- // FIXME #TTS# config manager will be in settings
+ // TODO #TTS# config manager will be in settings
Log.i("TTS_FIXME", "FIXME in Tts: config manager will be in settings");
- // FIXME #TTS# implement checking of the correct installation of
+ // TODO #TTS# implement checking of the correct installation of
// the data files.
return true;
@@ -193,15 +161,9 @@ public class Tts {
Intent intent = new Intent("android.intent.action.USE_TTS");
intent.addCategory("android.intent.category.TTS");
- // Binding will fail only if the TTS doesn't exist;
- // the TTSVersionAlert will give users a chance to install
- // the needed TTS.
- if (!ctx.bindService(intent, serviceConnection,
- Context.BIND_AUTO_CREATE)) {
- if (showInstaller) {
- // FIXME #TTS# show version alert
- }
- }
+ ctx.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
+ // TODO handle case where the binding works (should always work) but
+ // the plugin fails
}
@@ -316,21 +278,18 @@ public class Tts {
* The queuing strategy to use. Use 0 for no queuing, and 1 for
* queuing.
* @param params
- * The array of speech parameters to be used. Currently, only
- * params[0] is defined - it is for setting the type of voice if
- * the engine allows it. Possible values are "VOICE_MALE",
- * "VOICE_FEMALE", and "VOICE_ROBOT". Note that right now only
- * the pre-recorded voice has this support - this setting has no
- * effect on eSpeak.
+ * The hashmap of speech parameters to be used.
*/
- public void speak(String text, int queueMode, String[] params) {
+ public void speak(String text, int queueMode, HashMap<String,String> params)
+ {
synchronized (startLock) {
Log.i("TTS received: ", text);
if (!started) {
return;
}
try {
- itts.speak(text, queueMode, params);
+ // TODO support extra parameters, passing null for the moment
+ itts.speak(text, queueMode, null);
} catch (RemoteException e) {
// TTS died; restart it.
started = false;
@@ -357,15 +316,17 @@ public class Tts {
* 0 for no queue (interrupts all previous utterances), 1 for
* queued
* @param params
- * An ArrayList of parameters.
+ * The hashmap of parameters to be used.
*/
- public void playEarcon(String earcon, int queueMode, String[] params) {
+ public void playEarcon(String earcon, int queueMode,
+ HashMap<String,String> params) {
synchronized (startLock) {
if (!started) {
return;
}
try {
- itts.playEarcon(earcon, queueMode, params);
+ // TODO support extra parameters, passing null for the moment
+ itts.playEarcon(earcon, queueMode, null);
} catch (RemoteException e) {
// TTS died; restart it.
started = false;
@@ -381,6 +342,11 @@ public class Tts {
}
}
}
+
+
+ public void playSilence(long durationInMs, int queueMode) {
+ // TODO implement, already present in TTS service
+ }
/**
@@ -440,17 +406,6 @@ public class Tts {
}
- /**
- * Returns the version number of the TTS library that the user has
- * installed.
- *
- * @return The version number of the TTS library that the user has
- * installed.
- */
- public int getVersion() {
- return version;
- }
-
/**
* Sets the speech rate for the TTS engine.
@@ -519,21 +474,21 @@ public class Tts {
* @param text
* The String of text that should be synthesized
* @param params
- * An ArrayList of parameters. The first element of this array
- * controls the type of voice to use.
+ * A hashmap of parameters.
* @param filename
* The string that gives the full output filename; it should be
* something like "/sdcard/myappsounds/mysound.wav".
* @return A boolean that indicates if the synthesis succeeded
*/
- public boolean synthesizeToFile(String text, String[] params,
+ public boolean synthesizeToFile(String text, HashMap<String,String> params,
String filename) {
synchronized (startLock) {
if (!started) {
return false;
}
try {
- return itts.synthesizeToFile(text, params, filename);
+ // TODO support extra parameters, passing null for the moment
+ return itts.synthesizeToFile(text, null, filename);
} catch (RemoteException e) {
// TTS died; restart it.
started = false;
@@ -552,36 +507,4 @@ public class Tts {
}
- /**
- * Displays an alert that prompts users to install the TTS engine.
- * This is useful if the application expects a newer version
- * of the TTS than what the user has.
- */
- public void showVersionAlert() {
- if (!started) {
- return;
- }
- // FIXME #TTS# implement show version alert
- }
-
-
- /**
- * Checks if the TTS service is installed or not
- *
- * @return A boolean that indicates whether the TTS service is installed
- */
- // TODO: TTS Service itself will always be installed. Factor this out
- // (may need to add another method to see if there are any working
- // TTS engines on the device).
- public static boolean isInstalled(Context ctx) {
- PackageManager pm = ctx.getPackageManager();
- Intent intent = new Intent("android.intent.action.USE_TTS");
- intent.addCategory("android.intent.category.TTS");
- ResolveInfo info = pm.resolveService(intent, 0);
- if (info == null) {
- return false;
- }
- return true;
- }
-
}