It's pretty rare that we get to talk about Google's text-to-speech engine. Updates are fairly uncommon and most of them can be summarized as bug fixes and performance improvements. But every once in a while there's an update that brings a pretty cool new feature to this workhorse of an app. Version 3.8 adds one of the top requests to speech output: user selectable gender and voice variations for each language.
The official changelog has been posted for TTS v3.8. It mentions support for seven new languages, higher quality speech output, faster speech for offline voices, an updated Indian English voice, and the usual bug fixes and performance improvements. Oddly, the voice variations aren't mentioned... for reasons? Perhaps the voice modulations weren't mentioned since they are still not available to everybody. (Again, why?) Here's the changelog:
- Improved voice quality.
- Added support for Bengali (Bangladesh), Danish, English (Australia), Finnish, Hungarian, Norwegian and Mandarin (Taiwan).
- A better voice for Indian English.
- The offline voices can now speak at a faster rate.
- You can now leave feedback for us in the settings menu.
- Plus lots of bug fixes and performance improvements.
Left: previous version (v3.7). Center + Right: latest versions (v3.8).
As of version 3.8, each language's voice packs now offer a default voice (usually female) or one of six other variations split between male and female. The voices seem to be modulated variations on the original voice, but it's not clear if these are automatically generated alternatives or if they were created through a more manual process. Most of the voices sound at least a little different, but there are a few in certain languages that are too similar to tell apart.
The screen for making this selection is a bit buried, especially on phones from manufacturers that make an effort to significantly change their Settings app. On Nexus devices, just open Settings -> Language & input -> Text-to-speech output -> (tap the gear icon next to Google's TTS engine) -> Install voice data -> and continue on with the language and voice pack you want to use. There is a small 'play arrow' available to hear a sample of the voice. If you can't find it here, just try the search function in your Settings app, it should be easy enough to find from there.
Google's downloadable packs have grown slightly in size to account for the new audio capability, but they're only adding about 1 MB to the 10 MB or so that they already were. That's still a drop in the bucket compared to the old "high quality" versions that weighed upwards of 200 MB. The packs are no longer labeled with gender-specific names, but now carry the title of "Voice set" followed by a number. Once inside of the set, the gender of the original voice is obvious from the unnumbered option at the top of the list.
Pocket's Read Aloud feature, including language selector.
One thing this update calls attention to is just how many Google apps don't use the TTS engine in a way that honors a voice setting. I'm not sure if this is because some of them are selectively forcing a default setting or possibly streaming generated voices from a server–it wouldn't be the first time–but the current TTS settings don't seem to work in apps like Play Books or Maps. However, you can find plenty of other apps that work as expected, like Pocket, which offers to read articles aloud using your device's default TTS engine.
Left: previous version (v3.7). Right: latest versions (v3.8).
Just to quickly mention it, the language list has also been tweaked to give a great deal more padding to each item. The tap targets are sufficiently large, so there shouldn't be too many misses anymore.
The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.
3.8.13 [updated] 3.8.14