Mobileread
Kindle voice packs & usertts hack
#1  dsmid 10-11-2011, 04:27 AM
This is an attempt to both standardize and simplify the installation of custom TTS voices on Kindle.

As of now, the installation of custom TTS voices is tricky and requires launchpad or usbnetwork.
It would be nice to install the voices as easily as any other hack.
However, it cannot be achieved by putting them into a single .bin update file, that would make the installation process very long, error prone and potentially dangerous.

I've made a simple hack that makes the voice pack installation easy - it's called usertts.

The voicepack should be installed by simple copying to the Kindle root directory (speaking about user store here). The usertts hack then takes care of the rest.

To make the installation even more simple, I propose the following voice pack structure:

Code
usertts/ install/ update_usertts_*_(un)install.bin data/ depes_enu_cfg1.dat depes_enu_cfg3.dat ... install-voicepack.txt install-voicepack.*.txt (translation to other languages)
You can get the idea by downloading an empty sample voice pack - kindle-voicepack-sample.zip

You can also download few voice packs (Czech Zuzana + British Daniel, Slovak Laura + British Daniel, ...) and voices (can be used by usertts to create custom voicepacks) here: http://ge.tt/8HHrZe8
On the same page you can download the usertts hack source and installation packages (normally part of the voice pack).


************** install-voicepack.txt contents ****************

Make sure you have already jailbroken your Kindle.
In case you've installed jailbreak version <= 0.9N from NiLuJe to achieve that, add update_usertts to the whitelist at *linkjail/etc/whitelist*.
First, unpack the downloaded voice pack contents. The voice pack contains a usertts directory.
Copy the usertts directory to the root directory of your Kindle. The usertts directory should contain an *install* subdirectory with a bunch of .bin files.
Copy the correct *update_usertts_3r3_*_install.bin* file for your Kindle to the root directory of your Kindle.
(As always, k3g means K3 3G (US [serial number starts with B006]), k3w means K3 WiFi [B008] and k3gb means K3 3G (UK [B00A]).
For a Kindle 3 WiFi, that would be *update_usertts_3r3_k3w_install.bin* for example.
Now, eject your Kindle, and go to *[HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle*. It should be quick.

The usertts hack forces your Kindle to use *[user store]/usertts/data* directory instead of the built-in voice pack
if, and only if, the directory is present when the Kindle is starting up.
Once installed, it is easy to change the voice pack - just copy its contents to your Kindle and reboot it.
No need to reinstall the usertts hack.

The usertts hack uses "mount --bind" on Kindle OS boot to mount *[user store]/usertts/data* directory to */usr/share/nuance/data* directory in order to effectively replace the target directory contents with the source while not touching anything on the flash storage.
Thus the mount effects are not permanent and this method isn't supposed to break your Kindle firmware.

MAKING YOUR OWN VOICE PACK

From version 3r2, usertts has a feature that lets you mix your own voice pack.
First, select and download two voice sources of your choice, e.g. kindle-voice-en_GB-daniel.src.zip and kindle-voice-cs-zuzana.src.zip .
Create subdirectories *usertts/male/* and *usertts/female/* in your Kindle.
Then extract the first voice zip contents to *usertts/male/* and the second voice zip contents to *usertts/female/* - or vice versa
(the voice copied to the male subdir will be refered to as "Male" in Kindle GUI while the voice copied to the female subdir will be refered to as "Female" in Kindle GUI)
Then just eject and restart your Kindle, after reboot both *male* and *female* subdirs will disappear and you'll get a new *data* subdir instead containing your voice pack data.
Kindle will be using this new voice pack for TTS immediately.

Should you need to switch more than two voices, install launchpad and copy provided usertts.ini file to *launchpad* directory.
Then copy the second voice pack to *usertts/data2*, the third one to *usertts/data3* etc. You can have up to five voice packs.
Reload launchpad (SHIFT SHIFT SPACE) and then you can switch the voice packs with these shortcuts:

SHIFT T Q - *usertts/data*
SHIFT T W - *usertts/data2*
SHIFT T E - *usertts/data3*
SHIFT T R - *usertts/data4*
SHIFT T T - *usertts/data5*

************************************************** *******
Reply 

#2  seaniko7 10-11-2011, 06:22 AM
Indeed it makes things really simple, thank you dsmid.
Reply 

#3  synchrone 10-11-2011, 02:44 PM
Still, it is unclear which format the TTS-voice-db files should be, and where to get them. Nuance seems to have so many products...
Reply 

#4  dsmid 10-12-2011, 01:52 AM
It's quite clear - you need a voice for Nuance Vocalizer 5 (rssolv5), coder 155mrf22.
You can find such voices in Linux based GPS navigation devices.
Currently I'm uploading all voices I can get to the place mentioned above.
Reply 

#5  seaniko7 10-12-2011, 04:35 AM
You can also extract voices from SuperNova Screen Reader.
Reply 

#6  micione20 10-12-2011, 06:24 AM
is it possible to use TTS of Tomtom or Garmin navigator ? i need a TTS in italian language
Reply 

#7  dsmid 10-12-2011, 07:18 AM
The Italian voice (Silvia) can be found on http://ge.tt/8HHrZe8
Download Silvia and another voice and make your own voice pack (see the first message in this topic, "MAKING YOUR OWN VOICE PACK").
Reply 

#8  Kindlevarazs 10-18-2011, 03:49 PM
Hi!
Is it work on Kindle 3 with 3.3 firmware?
Reply 

#9  dsmid 10-19-2011, 02:16 AM
Yes, it works without problems on firmware 3.3.
Reply 

#10  maia1958 10-19-2011, 07:47 AM
Congratulations, great post.

If you could make one, I need a TTS in portuguese or brazilian language.

Thanks in advance
Reply 

  Next »  Last »  (1/13)
Today's Posts | Search this Thread | Login | Register