1. MaryTTS and it's support for languages
1.1. General
MaryTTS is an open-source, multilingual Text-to-Speech Synthesis platform written in Java. ( BTW: Does it has a service page? )
It supports many languages each with it's own set of voices.
Important: A language is NOT the same thing as a voice. To function properly both the language as well as the voice files are required! A lanugage may have several according speeches.
A language file is just an .jar, e.g. "lib/marytts-lang-de-5.1.2.jar".
A voice pack consists out of 1 jar, e.g. "lib/voice-dfki-pavoque-neutral-5.1.jar" and some .mry-files (not sure what they do, yet), but they are required if a voice has them. Not every voice has .mry files. They are stored at "lib/voices/dfki-pavoque-neutral/[...].mry".
1.2. Structure
Some functions I guess the directories have:
bin | some startup files for the MaryTTS-server, the -client and a -component-installer |
doc | examples |
download | temp-dir for downloading |
installed | config- / info- files for the languages/speeches |
lib | MaryTTS dependencies, all .jar's for languages and speeches and .mry-files for all speeches |
log | should be pretty self-explanatory |
user-dictionaries | dictonaries for some languages (not completly sure about them) |
1.3. Included Voices (in official MaryTTS distribution
There may be more voices (and languages) available, but these are the voices officially registered in MaryTTS and therefor distributed with it (through an additional download, MaryTTS does this itself using the component-installer).
NOTE: I don't feel responsible for errors in this matrix.
DATE: 06.11.2015
Language | Voice-name | gender | type | version | description | license | size | depends |
DE | bits1-hsmm | female | hsmm | 5.1 | [TODO] | [TODO] | 1360761 | DE, 5.1 |
DE | bits3 | male | unit selection | 5.1 | 278237075 | DE, 5.1 | ||
DE | bits3-hsmm | male | hsmm | 5.1 | 1557124 | DE, 5.1 | ||
DE | dfki-pavoque-neutral | male | unit selection | 5.1 | 446054145 | DE, 5.1 | ||
DE | dfki-pavoque-neutral-hsmm | male | hsmm | 5.1 | 2835023 | DE, 5.1 | ||
DE | dfki-pavoque-styles | male | unit selection | 5.1 | 692113207 | DE, 5.1 | ||
EN_GB | dfki-poppy | female | unit selection | 5.1 | 99318417 | EN-GB, 5.1 | ||
EN_GB | dfki-poppy-hsmm | female | hsmm | 5.1 | 1015901 | EN-GB, 5.1 | ||
EN_GB | dfki-prudence | female | unit selection | 5.1 | 250841190 | EN-GB, 5.1 | ||
EN_GB | dfki-prudence-hsmm | female | hsmm | 5.1 | 1560473 | EN-GB, 5.1 | ||
EN_GB | dfki-obadiah | male | unit selection | 5.1 | 146431509 | EN-GB, 5.1 | ||
EN_GB | dfki-obadiah-hsmm | male | hsmm | 5.1 | 1216409 | EN-GB, 5.1 | ||
EN_GB | dfki-spike | male | unit selection | 5.1 | 136165028 | EN-GB, 5.1 | ||
EN_GB | dfki-spike-hsmm | male | hsmm | 5.1 | 1083544 | EN-GB, 5.1 | ||
EN_US | cmu-slt | female | unit selection | 5.1 | 105909149 | EN-US, 5.1 | ||
EN_US | cmu-bd1-hsmm | male | hsmm | 5.1 | 1017477 | EN-US, 5.1 | ||
EN_US | cmu-rms-hsmm | male | hsmm | 5.1 | 1028060 | EN-US, 5.1 | ||
FR | enst-camille | female | unit selection | 5.1 | 183466604 | FR, 5.1 | ||
FR | enst-camille-hsmm | female | hsmm | 5.1 | 1518635 | FR, 5.1 | ||
FR | upmc-jessica | female | unit selection | 5.1 | 126834351 | FR, 5.1 | ||
FR | upmc-jessica-hsmm | female | hsmm | 5.1 | 1118972 | FR, 5.1 | ||
FR | enst-dennys-hsmm | male | hsmm | 5.1 | 1676376 | FR, 5.1 | ||
FR | upmc-pierre | male | unit selection | 5.1 | 171764059 | FR, 5.1 | ||
FR | upmc-pierre-hsmm | male | hsmm | 5.1 | 1557436 | FR, 5.1 | ||
IT | istc-lucia-hsmm | female | hsmm | 5.1 | 1466943 | IT, 5.1 | ||
RU | voxforge-ru-nsh | male | unit selection | 5.1 | 175120753 | RU, 5.1 | ||
TE | cmu-nk | female | unit selection | 5.1 | 495885808 | TE, 5.1 | ||
TE | cmu-nk-hsmm | female | hsmm | 5.1 | 3397557 | TE, 5.1 | ||
TR | dfki-ot | male | unit selection | 5.1 | 157783972 | TR, 5.1 | ||
TR | dfki-ot-hsmm | male | hsmm | 5.1 | 1366536 | TR, 5.1 |
1.4. Licenses
Many voices have their own license, this is a point to keep an eye on!
2. MaryTTS in MyRobotLab
To use MaryTTS in MyRobotLab it's dependencies are required (not so surprising). From what I know the server should be sufficient and the client could be skipped.
Further we need the language-files (e.g. "lib/marytts-lang-de-5.1.2.jar") in the classpath.
Then we need the voice file in the classpath.
Also the dirs lib & installed are needed. I think user-dictionaries is needed as well. But about download I'm not sure at all.
The voice can be changed in several ways:
locale: marytts.setLocale(Locale.GERMAN);
voice: marytts.setVoice("dfki-pavoque-neutral");
The biggest problem I see is that if we would download all voices, they would be around 5 GB.
3.Sources
MaryTTS homepage -> http://mary.dfki.de/
MaryTTS GitHub main repository -> https://github.com/marytts/marytts
Excellent Post MaVo ! This
Excellent Post MaVo !
This explains a lot. I would recommend that we surface controls, which allow user to select voices & languages he might be interested in during mrl runtime.
As for the service page, yes we'll create one. But of a higher priority is cleaning up the "Speech" services.
We need to create interfaces to standardize the Big 3
I've also add much more functionality to AduioFile service - it can now play "Tracks" similar to a mixer, potentially it will need some work or refactoring to get the speech services working correctly with it (and caching in the case of Mary)
Great post of information MaVo - this will help us considerably going forward. :D
I think the user dictionaries
I think the user dictionaries are used to prompt MaryTTS how to pronounce words that it has problems with, or that differ due to regional variations.
I wonder how much work it would be to modify the voice installer to download the voices a user is interested in and copy them to the correct locations in the MRL distribution.
A function call to support
A function call to support the various effects would be nic to have as well
Yessssss ! We can surface
Yessssss ! We can surface all the config !
I had playing with some of the controls as well.. MaryTTS is a great project.
Hi, It's great to have a
Hi,
It's great to have a robot that speak a lot of languages, but if i'm right, sphinx reconize only english in MRL
I know that it's just needed to change the model file, but like for maryTTS , download all models is huge.
So for both, the good way (i think), is write a function that look if the model for the asked language is already added in MRL path . If not, download it .
The current plan for MaryTTS
The current plan for MaryTTS is to put up a component-installer, there you can select which voice you want to download, ...
At the moment Sphinx isn't used as much as before anymore cause it can not support free-form recognition. The recognition in Chrome will probably become the new "default" speech-recognition.
Greeeting, MaVo
Here is the Voice I am trying to create