Frequently Asked Questions
I have this problem, found this bug, need this help! What can I do to get a good answer?
The place to ask questions and report problems is the mary-users mailing list (or the mary-dev mailing list if the questions are very technical).
A good answer is possible only if you send an informative problem report. Sending an excerpt of an exception, saying that some component "behaves strangely" etc. is not sufficiently informative to diagnose the problem.
An informative problem report should include sufficient details to reproduce the problem.
- which platform are you working on (Linux, MacOSX, Windows);
- which Java version are you using (output of java -version);
- which command have you been running *exactly*?
If your call involved the starting of MARY TTS:
- any custom config files that you may have created, e.g. for a new language;
- the debug output log (MARYBASE/log/server.log by default, i.e., run with maryserver -Dlog4j.logger.marytts=DEBUG,logfile, or maryserver -Dlog.level=debug -Dlog.tofile=true for versions older than 4.1 or r2556).
If you used voice building tools:
- trace the problem to the exact input file that caused it and attach that.
Can I install additional voices/components after the main installation, or do I have to reinstall everything "from scratch"?
To install or uninstall additional languages and voices, please run the MARY TTS/bin/mary-component-installer.
Maryserver takes ages to start up! What can I do?
What takes time is starting components and, in particular, unit selection voices. So the more languages and voices you install, the longer maryserver will take to start up. Use the mary-component-installer to uninstall what you don't need.
What exactly is the license for the software?
The OpenMary core system is released under the Lesser GNU General Public License [LGPL|http://www.gnu.org/licenses/lgpl-3.0-standalone.html]. Language components for English, German, Telugu and Turkish are currently also released under the LGPL.
Different speech synthesis voices are distributed under different licenses:
- the Arctic license
- the Creative Commons Attribution-NoDerivatives license
- The MBROLA license
- maybe other licenses in the future.
The installer should show you the respective license for a component you select. You must agree to a license before you can install and use a component.
How difficult is it to add support for Hebrew/Italian/Spanish/Hindi/...? Is Mary modular in that sense?
MARY 4.0 comes with substantial support for adding new languages, see NewLanguageSupport. This should help you get started; to do intelligent language-specific things, of course additional work will be needed.
I have no experience with Java. I have made some changes in the Mary source code -- how I can compile and test my changes?
make sure you have a recent (>= 1.5) Java SDK installed (try "javac -version" on the command line). If you don't have it, get it from http://java.sun.com. You also need the tool "ant", which you can get from http://ant.apache.org.
Assuming both is installed correctly, you can simply go to the MARY install directory, and type:
ant
This should read the file build.xml in the current directory (as a C++ developer, think of it as a Makefile), and execute the default target, which in this case is "jars". The system will compile all the .java source files into .class files and package them into mary*.jar files in the java/ subdirectory. If no errors occur, you should be able to restart the server and your modified code should be taken into account. If in doubt, add some
System.out.println("Hello world");
or
logger.info("Hello world");
statements into your code.
If you do more than just a few minor edits, I highly recommend using an integrated development environment like the open source Java IDEs Eclipse or NetBeans. Eclipse project specification files are included with the OpenMary source package.
Will there be support for the open 'ogg vorbis' format for audio output?
If someone writes a reliable ogg vorbis encoder in Java, we will be happy to add support for it. We do not intend to use native libraries though, the deployment issues are simply too complex and time-consuming.