How can I develop new tts engine for Andriod?

5,573 views
Skip to first unread message

Hawk

unread,
Mar 18, 2010, 10:10:42 PM3/18/10
to TTS-for-Android
Hi,

I read your comment about Andriod TTS like this : " Any TTS engine
developer can plug their own engine in and have it work as long as
they implement the TTS engine interface. "

I'm TTS engine vender.
I want to develop out tts engine just like your comment.
Could I do it?
How can I do this?

I can't find the method doing that over internet.

Please inform a detailed method.

Alok Parlikar

unread,
Mar 22, 2010, 7:21:52 PM3/22/10
to TTS-for-Android
Hello,

I have been porting a C-based tts engine myself, and have got it to
work. Here is a brief description of what I did:

1. Look at the http://code.google.com/p/eyes-free/source/browse/#svn/trunk/PlaceHolderTTSEngine
code
2. Compile the native code for the tts engine, and create a static
library somewhere.
3. Implement the native/project/jni/
com_google_placeHolderTTSEngine.cpp code that calls your tts engine
for actual synthesis. Link it to the engine's library and produce a
single libs/armeabi/libttsyourenginename.so
4. Build the PlaceHolderTTSEngine project, and export an apk file.
5. Install the apk file. This will add an option to the eyes-free
settings to allow selecting the new engine.

This isn't very detailed, but I hope it is of some help.

- Alok

clchen

unread,
Mar 23, 2010, 8:14:07 PM3/23/10
to TTS-for-Android
Thanks Alok.

Hawk, what Alok said is right.

Also, we will be adding a few more Activities to make it easier to
determine which languages are potentially supported and which ones
have all the data needed to run. See:
http://code.google.com/p/eyes-free/source/browse/#svn/trunk/documentation/TextToSpeech_Plugin_Engine_Examples

I'm also working on a plugin version for eSpeak - once that is ready I
will put it up as another example.

-Charles

On Mar 22, 4:21 pm, Alok Parlikar <happy...@gmail.com> wrote:
> Hello,
>
> I have been porting a C-based tts engine myself, and have got it to
> work. Here is a brief description of what I did:
>

> 1. Look at thehttp://code.google.com/p/eyes-free/source/browse/#svn/trunk/PlaceHold...

Alok Parlikar

unread,
Mar 24, 2010, 6:15:44 AM3/24/10
to TTS-for-Android
Hi Charles,

I am eagerly waiting for the language-data-related activities to get
easier to use for engine plugins, so thank you to have mentioned you
are working on it. I have one feature-request related to this:

I am working on wrapping the Festival-lite engine (www.cmuflite.org)
as a plug-in to eyesfree. I have the diphone, clustergen and unit
selection voices for English working fine on the nexus one. If I have
two voices for the same language, (male/female or different synthesis
techniques, different accents etc.) I understand I must use the
"variant" parameter of Locale in the setLanguage function.

Currently, app developers can ask if a voice, say "eng-USA-maleA" is
available. However, if flite were to support a voice such as "eng-USA-
Alok", "eng-USA-Bob", how would it be best for applications to find
out the supported voices and select the one that their user prefers?

Two questions:
(1) Like the isLanguageAvailable() function, is there a support/plan
for listAvailableLanguages() function?
(2) When writing an application that uses TTS, what's the best way to
explicitly select an engine?

- Alok

On Mar 23, 8:14 pm, clchen <clc...@google.com> wrote:
> Thanks Alok.
>
> Hawk, what Alok said is right.
>
> Also, we will be adding a few more Activities to make it easier to
> determine which languages are potentially supported and which ones

> have all the data needed to run. See:http://code.google.com/p/eyes-free/source/browse/#svn/trunk/documenta...

Reply all
Reply to author
Forward
0 new messages