An introduction to Text-To-Speech in Android
27 Dec 2009 // 6 comments // Mobile Development
We’ve introduced a new feature in version 1.6 of the Android platform: Text-To-Speech (TTS). Also known as “speech synthesis”, TTS enables your Android device to “speak” text of different languages.
Before we explain how to use the TTS API itself, let’s first review a few aspects of the engine that will be important to your TTS-enabled application. We will then show how to make your Android application talk and how to configure the way it speaks.
Languages and resources
About the TTS resources
The TTS engine that ships with the Android platform supports a number of languages: English, French, German, Italian and Spanish. Also, depending on which side of the Atlantic you are on, American and British accents for English are both supported.
The TTS engine needs to know which language to speak, as a word like “Paris”, for example, is pronounced differently in French and English. So the voice and dictionary are language-specific resources that need to be loaded before the engine can start to speak.
Although all Android-powered devices that support the TTS functionality ship with the engine, some devices have limited storage and may lack the language-specific resource files. If a user wants to install those resources, the TTS API enables an application to query the platform for the availability of language files and can initiate their download and installation. So upon creating your activity, a good first step is to check for the presence of the TTS resources with the corresponding intent:
Intent checkIntent = new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
A successful check will be marked by a CHECK_VOICE_DATA_PASS result code, indicating this device is ready to speak, after the creation of our android.speech.tts.TextToSpeech object. If not, we need to let the user know to install the data that’s required for the device to become a multi-lingual talking machine! Downloading and installing the data is accomplished by firing off the ACTION_INSTALL_TTS_DATA intent, which will take the user to Android Market, and will let her/him initiate the download. Installation of the data will happen automatically once the download completes. Here is an example of what your implementation of onActivityResult() would look like:
private TextToSpeech mTts;
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
In the constructor of the TextToSpeech instance we pass a reference to the Context to be used (here the current Activity), and to an OnInitListener (here our Activity as well). This listener enables our application to be notified when the Text-To-Speech engine is fully loaded, so we can start configuring it and using it.
Languages and Locale
At Google I/O, we showed an example of TTS where it was used to speak the result of a translation from and to one of the 5 languages the Android TTS engine currently supports. Loading a language is as simple as calling for instance:
mTts.setLanguage(Locale.US);
to load and set the language to English, as spoken in the country “US”. A locale is the preferred way to specify a language because it accounts for the fact that the same language can vary from one country to another. To query whether a specific Locale is supported, you can use isLanguageAvailable(), which returns the level of support for the given Locale. For instance the calls:
mTts.isLanguageAvailable(Locale.UK))
mTts.isLanguageAvailable(Locale.FRANCE))
mTts.isLanguageAvailable(new Locale("spa", "ESP")))
will return TextToSpeech.LANG_COUNTRY_AVAILABLE to indicate that the language AND country as described by the Locale parameter are supported (and the data is correctly installed). But the calls:
mTts.isLanguageAvailable(Locale.CANADA_FRENCH))
mTts.isLanguageAvailable(new Locale("spa"))
will return TextToSpeech.LANG_AVAILABLE. In the first example, French is supported, but not the given country. And in the second, only the language was specified for the Locale, so that’s what the match was made on.
Also note that besides the ACTION_CHECK_TTS_DATA intent to check the availability of the TTS data, you can also use isLanguageAvailable() once you have created your TextToSpeech instance, which will return TextToSpeech.LANG_MISSING_DATA if the required resources are not installed for the queried language.
Making the engine speak an Italian string while the engine is set to the French language will produce some pretty interesting results, but it will not exactly be something your user would understand So try to match the language of your application’s content and the language that you loaded in your TextToSpeech instance. Also if you are using Locale.getDefault() to query the current Locale, make sure that at least the default language is supported.
Making your application speak
Now that our TextToSpeech instance is properly initialized and configured, we can start to make your application speak. The simplest way to do so is to use the speak() method. Let’s iterate on the following example to make a talking alarm clock:
String myText1 = "Did you sleep well?"; String myText2 = "I hope so, because it's time to wake up."; mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null); mTts.speak(myText2, TextToSpeech.QUEUE_ADD, null);
The TTS engine manages a global queue of all the entries to synthesize, which are also known as “utterances”. Each TextToSpeech instance can manage its own queue in order to control which utterance will interrupt the current one and which one is simply queued. Here the first speak() request would interrupt whatever was currently being synthesized: the queue is flushed and the new utterance is queued, which places it at the head of the queue. The second utterance is queued and will be played after myText1 has completed.
Using optional parameters to change the playback stream type
On Android, each audio stream that is played is associated with one stream type, as defined in android.media.AudioManager. For a talking alarm clock, we would like our text to be played on the AudioManager.STREAM_ALARM stream type so that it respects the alarm settings the user has chosen on the device. The last parameter of the speak() method allows you to pass to the TTS engine optional parameters, specified as key/value pairs in a HashMap. Let’s use that mechanism to change the stream type of our utterances:
HashMap<String, String> myHashAlarm = new HashMap();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM,
String.valueOf(AudioManager.STREAM_ALARM));
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, myHashAlarm);
Using optional parameters for playback completion callbacks
Note that speak() calls are asynchronous, so they will return well before the text is done being synthesized and played by Android, regardless of the use of QUEUE_FLUSH or QUEUE_ADD. But you might need to know when a particular utterance is done playing. For instance you might want to start playing an annoying music after myText2 has finished synthesizing (remember, we’re trying to wake up the user). We will again use an optional parameter, this time to tag our utterance as one we want to identify. We also need to make sure our activity implements the TextToSpeech.OnUtteranceCompletedListener interface:
mTts.setOnUtteranceCompletedListener(this);
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM,
String.valueOf(AudioManager.STREAM_ALARM));
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,
"end of wakeup message ID");
// myHashAlarm now contains two optional parameters
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, myHashAlarm);
And the Activity gets notified of the completion in the implementation of the listener:
public void onUtteranceCompleted(String uttId) {
if (uttId == "end of wakeup message ID") {
playAnnoyingMusic();
}
}
File rendering and playback
While the speak() method is used to make Android speak the text right away, there are cases where you would want the result of the synthesis to be recorded in an audio file instead. This would be the case if, for instance, there is text your application will speak often; you could avoid the synthesis CPU-overhead by rendering only once to a file, and then playing back that audio file whenever needed. Just like for speak(), you can use an optional utterance identifier to be notified on the completion of the synthesis to the file:
HashMap<String, String> myHashRender = new HashMap(); String wakeUpText = "Are you up yet?"; String destFileName = "/sdcard/myAppCache/wakeUp.wav"; myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, wakeUpText); mTts.synthesizeToFile(wakuUpText, myHashRender, destFileName);
Once you are notified of the synthesis completion, you can play the output file just like any other audio resource with android.media.MediaPlayer.
But the TextToSpeech class offers other ways of associating audio resources with speech. So at this point we have a WAV file that contains the result of the synthesis of “Wake up” in the previously selected language. We can tell our TTS instance to associate the contents of the string “Wake up” with an audio resource, which can be accessed through its path, or through the package it’s in, and its resource ID, using one of the two addSpeech() methods:
mTts.addSpeech(wakeUpText, destFileName);
This way any call to speak() for the same string content as wakeUpText will result in the playback of destFileName. If the file is missing, then speak will behave as if the audio file wasn’t there, and will synthesize and play the given string. But you can also take advantage of that feature to provide an option to the user to customize how “Wake up” sounds, by recording their own version if they choose to. Regardless of where that audio file comes from, you can still use the same line in your Activity code to ask repeatedly “Are you up yet?”:
mTts.speak(wakeUpText, TextToSpeech.QUEUE_ADD, myHashAlarm);
When not in use…
The text-to-speech functionality relies on a dedicated service shared across all applications that use that feature. When you are done using TTS, be a good citizen and tell it “you won’t be needing its services anymore” by calling mTts.shutdown(), in your Activity onDestroy() method for instance.
Conclusion
Android now talks, and so can your apps. Remember that in order for synthesized speech to be intelligible, you need to match the language you select to that of the text to synthesize. Text-to-speech can help you push your app in new directions. Whether you use TTS to help users with disabilities, to enable the use of your application while looking away from the screen, or simply to make it cool, we hope you’ll enjoy this new feature.
View full post on Android Developers Blog
Tags: "does samsung epic have speech to text", "droid 2" speech synthesis engine, "droid speak" .wav, "google translate" android tts, "how to get mobile to speak time", "install voice data on moment", "nexus one" "how to use text to speech", "speak text" samsung epic 4g, "speak to type" on "galaxy s", "speech synthesis data", "speech to text droid ", "speech to text" android 1.6 app, "text to speech" "nexus one", "tts data" download, "windows mobile" talks tts, 'speechsynthesis data installer' android market, activate talk to text android, add language and locale android romanian, alarm android tts, all, Android, android "speech synthesis" missing option, android 1.6 "speech-to-text", android add new language, android advanced tts install, android alarm clock change language, android alarm to load data, android app, android app talk to text free, android app voice synth, android apps voice to text free, android change default language, android current locale, android dev 1 voice text messaging, android dev texttospeech local.us, android dev texttospeech setlanguage, android develop tts voice, android dragon text for hero, android droid setting the language, android evo speech synthesis, android finnish tts, android free apps voice to text, android free voice apps for text, android hashmap read key value, android how config new voicedata, android how to install voice data, android how to install voice data required for speech synthesis, android hungarian tts download, android instal voice datal, android install german tts, android install voice data, android install voice data tts, android live holdem dragon, android locale spanish, Android Market, android market talk to text, android market talk to text app, android new language, android new language locale, android reinstall voice data, android resource given locale, android resources specific locale, android russian tts, android sdk: how to change voice of tts?, android set language, android setlanguage called with unsupported language, android sharing text to speech accross activities, android speak to type, android speak tts hashmap, android speech syntesis polish, android speech synthesis, android speech synthesis data download unsuccessful, android speech synthesis data installer, android speech synthesizer install voice data, android speech synthesizer voice data, android speech to text, android speech to text app, android speech to text app free, android speech to text french, android speech to text local, android speech tts example, android speechsynthesis data installer, android speechsynthesis data installer download unsuccessfull, android support for tts in phones, android synthesize voice app, android talk to text, android talk to text application, android talking pet, android test if compass is off intent, android text to speech, android text to speech droid, android text to speech hungarian, android text to speech pass a string, android text to speech voices, android text to voice voices, android texttospeech add language locale, android texttospeech add locale, android texttospeech how to set french, android texttospeech lang not supported, android texttospeech speak parameter, android texttospeech won't change language, android top voice control tts files download, android tts, android tts addspeech method, android tts data, android tts example, android tts finnish, android tts method, android tts norwegian, android tts russian, android tts sample, android tts select language, android tts set language to chinese, android tts spanish locale, android tts voice, android tts voice data, android tts voices, android tts.setlanguage spanish, android voice data, android voice data path, android voice line audio, android voice stream, android voice synthesis, android voice synthesizer, android voice synthesizer app, android voice to text app free, android what is locale for spanich, android.speech.tts, android.speech.tts.texttospeech, android.speech.tts.texttospeech download, android: locale for spanish, appli speech to text french android, best apps for motorola droid, best free speech to text android, british accents, cache:qexqmd0qgpij:blog.7touchgroup.com/tag/install-the-voice-data-required-for-speech-synthesis/ install voice data required speech synthesis, Canada, change android voice tts, change text to speech voice droid, change voice installer, code for alarm ringing at selected time, create droid wav, data synthesis tts android, def, descargar speech synthesis data installer, dictionary, different languages, different voice for droid, directions to install text to speech droid, does droid eris have text-to-speech, does epic have talk to text, does samsung epic have talk to text, does the droid have a text to apeech app?, does the epic have speech synthesis, does the epic have talk text, does the eris talk to text, does the samsung epic have speech to talk, does the sprint epic have speech to text, download android text-to-speech, download hindi locale for android, download speech synthesis data installer, download speech synthesis data installer android market, dragon app for droid, dragon droid holdem, dragon for android market, dragon hold em, dragon live hold'em for droid, dragon live texas holdem, dragon play - live holdem, dragon play hold 'em live, dragon play hold live, dragon play holdem, dragon play holdem live facebook, dragon play live hold'em iphone, dragon play texas hold em, dragon speak for android, dragon speech android, dragon speech to text android, dragon texas hold'em live, dragon text android, dragon text to speech, dragon text to speech android, dragon text to speech demo, dragon text to speech for android, dragondroid software, dragonplay hold'em, dragonplay iphone, driod applications voice typing, Droid, droid 2 install the voice data required for speech synthesis, droid 2 install voice data, droid 2 speechsynthesis engine, droid 2 tts engines, droid 2 tts voices, droid app, droid app read text to speech, droid app speak to text, droid app text to speech, droid app text to voice, droid app that plays liquid compass streams, droid apps dragon, droid apps install voice data, droid apps text to speech, droid apps with text to speech, droid different voice, droid different voices, droid dragon app text, droid dragon speak, droid eris and voice to text, droid eris tts, droid eris tts english bulgarian, droid htc text to speech feature, droid incredible how to use "text to speech", droid install voice data, droid locale text, droid locale voice, droid market, droid more voices for tts, droid more voices tts, droid phone speak and type, droid speak apps, droid speak text, droid speak text message, droid speak text option, droid speak to text, droid speech engines, droid speech synthesis, droid speech synthesis engine, droid speech to text, droid speech to text app, droid speech to text free, droid speech to text message, droid speech to texts apps, droid talking text, droid talking tom cat won't speak, droid test to speech, droid text to speech, droid text to speech app, droid text to speech demo, droid text to speech talk, droid text to speech voices, droid text-to-speech apps, droid text-to-speech install, droid text-to-speech settings install voice data, droid tts, droid tts different voices, droid tts service, droid tts speak, droid tts voices, droid voice data, droid voice data install, droid voice synthesis, droid voice synthesizer, droid voice to text, droid voice typing, droid x install the voice data required for speech synthesis, droid x installing voice data, droid x text to speech install voice data, droid x text to speech voice data, droid x tts, droid x tts service, droid x tutorials text to speech, droid x voice talk, droid.startactivity, droiddragon, droidx locale, droidx talk to text, droidx tts engines, enable speech synthesis android, Engine, epic 4g korean language support, epic 4g language, epic 4g speak to text, eris text to speech, evo application for text synthesis, evo install speech output android, evo install voice data, evo speak text, evo tts service, facebook dragon play live holdem poker, finnish text to speech android, France, free "speech to text" android app, free android speak to text app, free android speech to text, free android speech to text app, free download android audiomanager, free live holdem for android app dragon, free samsung using spoke text to record your email, free speech to text android, free speech to text android apps, free speech to text open source, free talk to text app for android, free voice text app for android, free voice to text android app, g1 1.6 speak name of person who texted as alert, galaxy install voice data, galaxy s text to speech sms, gmail tts android, Google, google translate droid chinese language, google translate for eris, google translate on droid, google translate optional arguments example, google translate tts missing, greek voice for android tts, hashmap android share, hold'em live by dragonplay, hot to do speech to text android, how do i enable tts on droid, how do i get my droid to speak a text message, how do i install voice data for speech synthesis, how do i use text to speech on droid, how do u make a droid do text to speech, how do you install the voice data required for speech synthesis on android phone, how do you make droid 2 text ring continually, how do you text to speech on a droid eris, how do you use tts on android droid 1, how install voice data on droid, how to activate android speech synthesis, how to activate text to speach on htc hero, how to activate text to speech on evo, how to activate text to speech on ipad, how to activate tts in ipad, how to activate tts on android, how to activate tts on droid eris, how to change the language on a nexus tts, how to enable email text to speech on evo, how to enable voice text entry in android, how to enable voice typing on droid phones, how to get droid to speak text, how to get eris to text to speech, how to get new tts voice for motorola droid, how to instal voice data for synthesis, how to install a voice data in a droid phone, how to install nexus one speech synthesis, how to install speech droid, how to install speech synthesis, how to install speechsynthesis data installer, how to install tts in android, how to install tts on android phone, how to install voice data droid, how to install voice data for speech synthesis android, how to install voice data on droid, how to install voice data on droid motorola, how to install voice data on evo, how to install voice data on nexus one, how to install voice data on the droid, how to install voice text on android, how to make droid speak texts, how to nexus one tts, how to proxy google tts api, how to save recorded files on android talking tom, how to set language in android, how to set spanish for tts android, how to setup text to speech on htc hero, how to speak text message on droid, how to talk a text message on droid, how to turn off speech synthesis android, how to turn off speech synthesizer on my touch phone, how to use different voices in android tts, how to use droid eris speech to text, how to use eris to text to speech, how to use on utterance complete listener in android examples, how to use speak to text on droid eris, how to use speech synthesis htc, how to use speech synthesis my touch, how to use speech synthesis on g1, how to use speech synthesis on mytouch, how to use text to speak in android app?, how to use text to speech droid eris, how to use text to speech galaxy s, how to use text to speech on droid, how to use text to speech on droid eris, how to use text to speech on htc hero, how to use text to speech on nexus one, how to use text to speech on the droid eris, how to use text to speech with google translate on droid eris, how to use text-to-speech droid, how to use tts droid eris, how to use tts on htc hero, how to use voice synthesis android, htc desire text to speech speech synthesis, htc hero "how to use tts", htc hero spanish locale how to, htc speech synthesis, htc voice synthesizer, instal the voice data required for speech synthesis, install android text to speech, install text to speech nexus, install the voice data required for speech synthesis, install the voice data required for speech synthesis evo, install voice data, install voice data android, install voice data droid, install voice data for speech synthesis, install voice data for speech synthesis on nexus, install voice data moment, install voice data motorola droid, install voice data nexus one, install voice data on android, install voice data on droid, install voice data on droid incredible, install voice data on droid x, install voice data on nexus phone, install voice data required for speech synthesis, install voice data required speech synthesis, install voice data samsung galaxy s, install voice data speech synthesis, install voice data text to speech hero, install voice synthesis data on droid, installing different voices on droid, installing speech synthesizer data, installing voice data on droid, instance, introduction, is the application textfree free for out of the country, key_param_stream, Language, language files, liquid compass, liquid compass android, liquidcompass android, liquidcompass droid, live hold 'em by dragon play, live hold em dragon play, live hold em dragon play iphone, live hold'em app dragonplay iphone, live hold'em dragon play online, live hold'em dragonplay, live hold'em for droid, live hold'em-dragon play, live holdem android level up?, live holdem by dragon play, live holdem by dragon play facebook, live holdem dragon, live holdem won't connect to facebook, Locale, market talk sound file, moto droid speak to text, moto droid voices for text to speech, motorola droid install voice data, motorola droid install voice data required for speech synthesis, motorola droid speach, motorola droid speak text, motorola droid speak to text, motorola droid speech, motorola droid speech synthesis, motorola droid speech to text, motorola droid speech to text app, motorola droid speech-to-text message, motorola droid text to speech, motorola droid text to speech feature, motorola droid tts api, motorola text to speech, music voice synthesizer android, my touch android install voice data not functional, myHashAlarm, myText, new feature, new tts voices droid, nexus one "install voice data", nexus one android texttospeech.engine.action_check_tts_data, nexus one instal voice data, nexus one speech synthasys, nexus one speech synthesis, nexus one synthesizer data, nexus one text to speech, nexus one tts, play live hold em dragon play, proxy, Q, qr code to speech synthesis, qr speech synthesis, que hace el speech synthesis g1, QUEUE, resource files, result code, sample text to speech android code free, samsung epic 4g korean language, samsung epic speak to text, samsung epic speech to text, samsung galaxy s install voice data, samsung galaxy s text to speech install voice data disabled, samsung galaxy s text-to-speech voice data, samsung galaxy s use text to speech, scarica voice data android, set google translate tts default engine, setonutterancecompletedlistener, setonutterancecompletedlistener return -1, share text to speech between activities android, show spanish string when locale settings is english android, smartphone speech to text droid, sony ericsson x10 speech synthesis, speak text messages droid, speak thai apps android, speak to text droid, speak to text motorola droid, speak to text samsung epic, specific resources, speech on android phones, speech senthesis on htc, speech synthesis, speech synthesis android, speech synthesis croatian data installer android, speech synthesis data android, speech synthesis data installer, speech synthesis data installer android, speech synthesis data installer download, speech synthesis data installer telecharger, speech synthesis desire not installing, speech synthesis droid, speech synthesis engine droid, speech synthesis for droid, speech synthesis for htc, speech synthesis htc evo, speech synthesis on droid, speech synthesis on htc hero, speech synthesizer voice talk android, speech to text android hindi, speech to text app for droid, speech to text apps for droid, speech to text droid app, speech to text droid apps, speech to text for android free app, speech to text free download for android, speech to text htc eris speech synthesis, speech to text messaging on droid, speech to text motorola droid, speech to text mytouch, speech to text on motorola droid, speech-to-text android example, speechsyntesis data, speechsynthesis android, speechsynthesis android more language, speechsynthesis data, speechsynthesis data download, speechsynthesis data droid, speechsynthesis data installer, speechsynthesis data installer download, speechsynthesis data installer download unsuccessful, speechsynthesis data installer installation unsuccessful, speechsynthesis droid, speechsynthesis droid worth it, speechsynthesis htc desire, speechsynthesis won't install htc hero, speechvoice android, speed synthesis data installer, speedsynthesis data samsung galaxy s, sprint what do i need to download to use speech synthesis, Start, Stream, stream liquid compass stations on droid, String, talk and browse internet with droidx, talk text messages on the droid, talk to text android, talk to text app for android, talk to text app for droid eris, talk to text app htc, talking text app, talking text app droid, talking text app for droid, talking text feature on droid, talking text for droid, talking time app for droid, talking tom android different voice, talking tom app for samsung impression, talking tom droid options, talking tommy, talking tommy droid, test to speach no locale data, test-to-speech droid x, text to speech, text to speech "install voice data", text to speech app for droid, text to speech apps for the droid, text to speech best apps droid, text to speech coice data, text to speech droid, text to speech droid app, text to speech droid apps, text to speech engine windows mobile sdk german english, text to speech english bulgarian droid eris, text to speech eris, text to speech for droid, text to speech for eris, text to speech htc hero, text to speech install voice data htc android verizon, text to speech instructions for droid x, text to speech instructions on droid eris, text to speech on droid, text to speech samsung epic, text to speech setting on nexus, text to speech sms samsung galaxy disable, text to speech voice data android, text to speech voices android, text to talk service droid, textfree android, texting groups from droid, TextToSpeech, tg01 speech synthesis, ttapp speech, tts android data, tts app droid, tts czech android, tts data not installed droid incredible, tts driod, tts droid, tts engine, tts engine windows mobile open source, tts for droid, tts not working motorola droid, tts on android won't speak, tts sdk windows mobile, tts service on droid x, tts services/droid phone, tts typing ipad, tts voice data, tts voices android, tts voices for android, tts voices for android phones, tts voices for droid, ttsapp text speech download, ttsengine :: setlanguage called with unsupported languages, ttsengine setlanguage called with unsupported language, ttsengine.synthesizetext, ttsengine::setlanguage called with unsupported language, turkish speech synthesis android, turn off speach synthesis htc my touch, UK, US, use text to speech on hero, verizon droid apps, vioce data required for speech synthesis, voice data, voice data droid, voice data for droid, voice data for the driod, voice data install android, voice data on android, voice data speech synthesis for droid, voice data synthesis, voice recorder call utterances droid, voice recorder utterances droid, voice synthesis android, voice synthesis android does not install, voice synthesizer amdroid app, voice synthesizer android, voice synthesizer app for htc hero, voice synthesizer droid, voice synthesizer for droid x, voice synthesizer for htc evo, voice to speech for droid, voice to text droid, voice to text on droid, voice typing for droid, voice typing on android, voices for android, void synthezator sdk android, wallpapermanager setwallpaper intent android, what are good text to speech apps for the droid, what is speech synthesis data for droid?, what is speech synthesis htc, what is text to speech on eris, what is the best app speech to text on motorola droid, why won't text2speech work on droid, www, www.youtube.com, Youtube.com
This entry was posted on Sunday, December 27th, 2009 at 8:40 pm and is filed under Mobile Development. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.





























































Blog Post: An introduction to Text-To-Speech in Android http://bit.ly/4wsJ6w
[...] the original post: An introduction to Text-To-Speech in Android « 7touch Group Blog By admin | category: android, install android | tags: after-the-creation, creation, [...]
RT @7Touch: Blog Post: An introduction to Text-To-Speech in Android http://bit.ly/4wsJ6w
RT @7Touch: Blog Post: An introduction to Text-To-Speech in Android http://bit.ly/4wsJ6w
An introduction to Text-To-Speech in Android http://bte.tc/-Nq #RTW
An introduction to Text-To-Speech in Android http://bte.tc/-Nq #RTW