Re: How to specify a compatible TTS engine?

1,200 views
Skip to first unread message

Wes Stacey

unread,
Jul 30, 2012, 7:49:48 PM7/30/12
to tas...@googlegroups.com
Different manufactuers will put their own TTS engines on their devices so you will probably have to use different engines for each device, i know when i transfered my tasks from my HTC EVO to my Galaxy Nexus i have to go in and tweak some of the tasks to work with the new HW. The TTS engine did seem to work, even though the task called out the Pico Engine (the engine on the EVO) Tasker was able to use the google one just fine when reading text, if you go into the task it would still show an error but it would still read the text regardless. The only thing that threw me off was that I use the Great Britain English instead of the USA English because for some reason the GBR English sounds less computerized than the USA, in Pico GBR English is a Female voice in the Google TTS it is male so it threw me off the first time i heard it. 

for the most part you may have to tweak tasks slightly for different HW, If you absolutely must have the same tasks on each device then downloading the same 3rd party TTS Engine onto both devices is probably the only  way you will be absolutely sure that it will work.

-Wes

On Monday, July 30, 2012 11:23:10 AM UTC-5, Rarry wrote:
Hi, this is my first post here. :) I've been playing with Tasker for several weeks now and think it's really clever. I started out messing with on(X) but that led me to Tasker, which I found is a lot more comprehensive. I'm still learning the basics but well impressed that it's been put together by just one guy. Well done Pent! :) Anyway, I've been doing lots of reading here and getting the hang of the simple stuff but now I'm stuck on something so hoping for some help?
I've made my first app and it's working well so far, but now I want to add some speech output. That seemed ok testing on my Galaxy S (2.3.3) until I tried it on my new toy, a Nexus 7 (4.1.1). The TTS engines seem to be completely different - and I don't know anything about TTS engines?

Anyway,  I can make the speech work on either now but only by using different apks. Is that the only way to do it? I've got 'Pico TTS' on the Galaxy, (Is that standard on most Androids pre JB, or just Samsungs?) and got 'google TTS' on the Nexus. So I can specify 'com.svox.pico:eng-USA' on the phone and 'com.google.android.tts' on the tablet, which works but only for the single device (having loaded all possible languages to stop JB TTS error, but you can delete them again once you get past that!). Is there any way to make the speech work for both from the same apk or is two apks the only way? 

Why does the engine need to be specified anyway - isn't there some way that be left to Android to decide depending on what's loaded? I saw someone else asked that but I didn't really understand the reply. Is this just a JB bug that'll get ironed out in time? How should the engine be specified usually in Tasker for max compatibility in a factory app?

I've also tried loading 'SVOX Classic TTS' (UK Victoria is a nice voice) and can get a single apk to talk on both devices using that, but it's not a very good solution as it's not standard. 

Rarry

unread,
Jul 31, 2012, 9:00:25 AM7/31/12
to tas...@googlegroups.com
Thanks for the reply, but I'm still confused, sorry. From what you say, I'd have to make a different apk for every possible TTS engine? Surely that can't be right, or is Pico so common that it's all that's needed until Jelly Bean came along with only Google TTS available? I don't know because I've only got the two devices and don't know what TTS setup is 'normal'.

So suppose I make an apk on Jelly Bean and specify Google TTS, it won't install on my phone because it's calling for a TTS engine that's not available. But if If make it call for Pico so it will install, I can then tell Android to use a different one instead as a default, and never use Pico anyway. So what was the point in Android refusing to load it in the first place? Is App Factory being unnecessarily specific, or is Android being too picky? Or am I still missing something obvious? :) That''s the most likely answer, as I'm a bit of a newbie on this, but I'd appreciate if someone could explain. Thanks. 

Pent

unread,
Jul 31, 2012, 11:26:31 AM7/31/12
to Tasker
Try:

default:en

How's that ?

Pent

Rarry

unread,
Jul 31, 2012, 1:03:47 PM7/31/12
to tas...@googlegroups.com
Hi Pent. Thanks, but that doesn't work. I've made a test project with just a flash message and a short 'say' task. The apk installs but when I try to open it I get:

"This application requires the speech engine default.
Should I try to retreive it now?"

I tried 'Default:en' too, but with the same result. Tried it on Nexus and Galaxy just to be sure and same result with both. 

It works ok in Tasker and reads out the test phrase, but not when the project is made into an apk. 

Pent

unread,
Jul 31, 2012, 1:09:13 PM7/31/12
to Tasker
> Hi Pent. Thanks, but that doesn't work. I've made a test project with just
> a flash message and a short 'say' task. The apk installs but when I try to
> open it I get:
>
> "This application requires the speech engine default.
> Should I try to retreive it now?"

And of you click yes ?

> It works ok in Tasker and reads out the test phrase, but not when the
> project is made into an apk.

Ah, interesting, will look at that.

Pent

Rarry

unread,
Jul 31, 2012, 1:42:41 PM7/31/12
to tas...@googlegroups.com

>And of you click yes ?

It just goes off and looks on the Play Store and says Item not found. 

If I just put the word 'frogs' in the engine voice box in the say dialog, Tasker says 'TTS unsupported locale frogs', so it needs to have something sensible like 'en' or 'eng' and it works ok. But when made into an apk with 'en', Android is saying it can't find the speech engine 'en', so is there some problem with Tasker specifing the locale but Android seeing that as the name of the speech engine?

Pent

unread,
Aug 1, 2012, 8:32:52 AM8/1/12
to Tasker
The problem was the kid checks needed speech engines are installed
before running, and I hadn't put an exception in for 'default'.

It wasn't a problem with the actual Say action.

Anyway, default:en should work next version.

Pent

Rarry

unread,
Aug 1, 2012, 10:36:50 AM8/1/12
to tas...@googlegroups.com
That's great, thanks Pent. That'll be a real help.
 
Any idea when that might be available? :)

Rarry

unread,
Aug 1, 2012, 1:53:36 PM8/1/12
to tas...@googlegroups.com
That was quick! :) I just saw the new beta and installed it on the Nexus. 

I remade the apk from the say/flash test project and it works fine on the Nexus and the Galaxy. Both now install and talk using the same apk.

Thanks, that's really great, it's amazing how fast you do things!

Pent

unread,
Aug 2, 2012, 3:22:04 AM8/2/12
to Tasker
> Thanks, that's really great, it's amazing how fast you do things!

Don't say that, you'll annoy people who have been waiting for a
feature on the todo list for the last 2 years :-)

Pent

Pent

unread,
Sep 27, 2012, 2:20:29 AM9/27/12
to Tasker
> I was having the same issue with the default-EN set in the TTS engine
> setting, and it was fixed by changing it to default:en but when the app is
> installed

You mean 'run', right ?

Pent

>for the first time, it is still trying to open the market, and
> get the page stating it couldn't find the app.  It's no longer stating it
> needs to install it, it just goes right to that page.  Is there anything
> else I need to do?
> Thanks
Reply all
Reply to author
Forward
0 new messages