Speech Output Network synthesis problem with new Google TTS

Post your questions and help other users.

Moderator: Martin

vnk
Posts: 7
Joined: 16 Jul 2017 08:21

Speech Output Network synthesis problem with new Google TTS

Post by vnk » 09 Mar 2019 02:59

After updating to the latest version of Google Text-to-Speech app (5 March 2019), the action Speech Output is unable to produce any sound most of time time. This only happens when Systhesis type is set to Network (Embedded type still works normally). The behaviour is as below:
  • Rarely there is speech output as normal
  • Most of the time, there is no sound when the Speech Output action is executing, and there is no error in the log
  • Sometimes there is no sound but there is the error message in the log:
    Bundle: unavailableVoicesunavailableVoices=, ], availableVoicesavailableVoices=tur-tur, availableVoices=sun-idn, availableVoices=vie-vnm, availableVoices=kan-ind, availableVoices=ita-ita, availableVoices=jpn-jpn, availableVoices=deu-deu, availableVoices=nob-nor, availableVoices=por-bra, availableVoices=swe-swe, availableVoices=ell-grc, availableVoices=tel-ind, availableVoices=mar-ind, availableVoices=eng-aus, availableVoices=zho-twn, availableVoices=ces-cze, availableVoices=spa-esp, availableVoices=spa-usa, availableVoices=fra-can, availableVoices=nld-nld, availableVoices=nep-npl, availableVoices=est-est, availableVoices=por-prt, availableVoices=tha-tha, availableVoices=eng-ind, availableVoices=ben-ind, availableVoices=zho-chn, availableVoices=fil-phl, availableVoices=eng-gbr, availableVoices=fin-fin, availableVoices=hin-ind, availableVoices=ukr-ukr, availableVoices=ron-rou, availableVoices=rus-rus, availableVoices=kor-kor, availableVoices=eng-usa, availableVoices=khm-khm, availableVoices=tam-ind, availableVoices=ben-bgd, availableVoices=yue-hkg, availableVoices=hun-hun, availableVoices=pol-pol, availableVoices=jav-idn, availableVoices=urd-pak, availableVoices=fra-fra, availableVoices=sin-lka, availableVoices=guj-ind, availableVoices=dan-dnk, availableVoices=mal-ind, availableVoices=slk-svk, availableVoices=ind-idn, ] resultCode: 1
After uninstalling the update of Google Text-to-Speech (revert to original version 3.15.18.200023596 bundled in ROM), everything works normally. Maybe some newer versions also can work.

Xiaomi Mi A2, Android 9, 5Dec18 security patch
Attachments
flow_Test_flow_20190309_105249.zip
test flow for Speech Output
(1.38 KiB) Downloaded 794 times
Last edited by vnk on 09 Mar 2019 15:04, edited 1 time in total.

User avatar
Martin
Posts: 4468
Joined: 09 Nov 2012 14:23

Re: Speech Output doesn't work with latest Google Text-to-Sp

Post by Martin » 09 Mar 2019 14:40

Hi,

I can reproduce the problem on my device. It looks like the TTS network feature does not work reliably at the moment.
I see following error in the system log of the device:
2019-03-09 15:21:46.455 13134-13857/? E/TTS.NetworkSynthesizer: ExecutionException during NetworkFetchTask
java.util.concurrent.ExecutionException: clx: RESOURCE_EXHAUSTED: Quota exceeded for quota metric 's3-sessions' and limit 's3-session-limit' of service 'speechs3proto2-pa.googleapis.com' for consumer 'project_number:529030122437'.
at java.util.concurrent.FutureTask.report(FutureTask.java:123)
...
This is a Google internal project so I assume that Google will increase the limitation when the operation guys notice the problem.

You could try to check option 'Embedded' which will likely not use the network and should therefore work more reliably.
Maybe the old version of the TTS engine does not support the network mode yet which would explain why it works.

Regards,
Martin

vnk
Posts: 7
Joined: 16 Jul 2017 08:21

Re: Speech Output doesn't work with latest Google Text-to-Sp

Post by vnk » 09 Mar 2019 14:59

Martin wrote:Hi,

I can reproduce the problem on my device. It looks like the TTS network feature does not work reliably at the moment.
I see following error in the system log of the device:
2019-03-09 15:21:46.455 13134-13857/? E/TTS.NetworkSynthesizer: ExecutionException during NetworkFetchTask
java.util.concurrent.ExecutionException: clx: RESOURCE_EXHAUSTED: Quota exceeded for quota metric 's3-sessions' and limit 's3-session-limit' of service 'speechs3proto2-pa.googleapis.com' for consumer 'project_number:529030122437'.
at java.util.concurrent.FutureTask.report(FutureTask.java:123)
...
This is a Google internal project so I assume that Google will increase the limitation when the operation guys notice the problem.

You could try to check option 'Embedded' which will likely not use the network and should therefore work more reliably.
Maybe the old version of the TTS engine does not support the network mode yet which would explain why it works.

Regards,
Martin
Thanks for the fast response.
Your suggestion to fall back to embedded synthesis is working for both old and new version of Google TTS, but I feel that the intonation is a bit machine-like, so I will stick with the old version of Google TTS and use Network synthesis option (hopefully they will not block the old version). I'm not sure if the old version of Google TTS really supports network mode or not, but there is noticeable difference between network and embedded mode.
Please help me to edit the misleading title of the thread; I cannot add more words to it due to the character limit.

User avatar
Martin
Posts: 4468
Joined: 09 Nov 2012 14:23

Re: Speech Output doesn't work with latest Google Text-to-Sp

Post by Martin » 09 Mar 2019 15:45

Maybe Google already supported the network mode in the old TTS versions but changed the implementation in one of the latest TTS releases and now runs into the S3 session limit.
I'll improve the error handling so that such errors will not go unnoticed in the future. The API does not provide the error reason to the app but now at least allows the app to know that something went wrong.

How would you like to change the title?

vnk
Posts: 7
Joined: 16 Jul 2017 08:21

Re: Speech Output doesn't work with latest Google Text-to-Sp

Post by vnk » 09 Mar 2019 15:59

how about "Speech Output Network synthesis doesn't work with latest Google Text-to-Speech"

User avatar
Desmanto
Posts: 2709
Joined: 21 Jul 2017 17:50

Re: Speech Output Network synthesis problem with new Google

Post by Desmanto » 11 Mar 2019 14:42

Maybe the new version now reflect the new quotas here :
https://cloud.google.com/text-to-speech/quotas
There is limit 5000 chars per request, max 300 requests per minute and 150.000 chars per minute. Whenever any one of these is reached, error raised. The limitation can still change from time to time.

I personally use vocalizerEx2 for long time already (offline). You can download it from xda, follow the instruction from OP to download and install the voices.
https://forum.xda-developers.com/showth ... st76941998
The voice is much better than google TTS, but of course now have been surpassed by google Wavenet. Google wavenet now is still more expensive. Hopefully someone will make the offline version of the wavenet in the future.
Index of Automagic useful thread List of my other useful posts (and others')
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.

vnk
Posts: 7
Joined: 16 Jul 2017 08:21

Re: Speech Output Network synthesis problem with new Google

Post by vnk » 11 Mar 2019 15:24

Thanks for pointing out the limit.
After a quick glance I see that the limit applies to the API key given to the app developer instead of the IP address of each end user, maybe that's why the limit is reached quickly. Also I see that there is a link to request for rasing the quota/limit, it may worth a try.
Or probably it's much better that each end user can opt to input his own API key to use this feature.


I've just installed VocalizerEx2, let me try it for a few days, thanks for your suggestion.
It's a bit off topic, but which voice is the best in your opinion?

User avatar
Martin
Posts: 4468
Joined: 09 Nov 2012 14:23

Re: Speech Output Network synthesis problem with new Google

Post by Martin » 11 Mar 2019 20:46

The API key used in the TTS app is the one from Google TTS and is not related to Automagic so the developers of the Google TTS app have to raise the limit.
It seems that other apps are encountering the same issue so I assume that a solution will become available soon.

vnk
Posts: 7
Joined: 16 Jul 2017 08:21

Re: Speech Output Network synthesis problem with new Google

Post by vnk » 12 Mar 2019 01:31

Thanks for the clarification. I'll check Google TTS once in a while and update when it returns to normal.

User avatar
Desmanto
Posts: 2709
Joined: 21 Jul 2017 17:50

Re: Speech Output Network synthesis problem with new Google

Post by Desmanto » 12 Mar 2019 15:51

For now, Google wavenet is the best, but there is no offline version yet and the cloud API is very expensive and not practical for our flow building. Then comes the nuance vocalizer and ivona TTS. I prefer nuance because it has more variety for other languages outside Europe. I can use Indonesian, Japanese, Korean, Chinese and many more.
Just download it from https://vocalizer-nvda.com/downloads, pick the premium high version. It is bigger in size, but it is more expressive when reading out paragraph. The difference between the plus and premium high is plus seems to read word by word, but premium high read the whole sentence. You can test it and hear the difference.
Index of Automagic useful thread List of my other useful posts (and others')
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.

Post Reply