• Stars
    star
    2,220
  • Rank 19,939 (Top 0.5 %)
  • Language
    Java
  • License
    Other
  • Created over 12 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MARY TTS -- an open-source, multilingual text-to-speech synthesis system written in pure java

CI

MaryTTS

This is the source code repository for the multilingual open-source MARY text-to-speech platform (MaryTTS). MaryTTS is a client-server system written in pure Java, so it runs on many platforms.

For a downloadable package ready for use, see the releases page.

Older documentation can also be found at https://github.com/marytts/marytts-wiki, http://mary.dfki.de and https://mary.opendfki.de.

This README is part of the the MaryTTS source code repository. It contains information about compiling and developing the MaryTTS sources.

The code comes under the Lesser General Public License LGPL version 3 -- see LICENSE.md for details.

Running MaryTTS

Run ./gradlew run (or gradlew.bat run on Windows) to start a MaryTTS server. Then access it at http://localhost:59125 using your web browser.

If you want to start a MaryTTS on a different address and port, you can use the following options:

./gradlew run -Dsocket.port=5920 -Dsocket.addr=0.0.0.0 --info

where 5920 is the new port and 0.0.0.0 the new address. In case of the address being 0.0.0.0, all the interfaces will be listened.

By using the option --info, you set the logger of gradle AND MaryTTS at the level INFO. By using --debug, you set the level to DEBUG.

It is also possible to set the MaryTTS logger level to INFO or DEBUG by defining the system variable log4j.logger.marytts.

Downloading and installing voices

Run ./gradlew runInstallerGui to start an installer GUI to download and install more voices. A running MaryTTS server needs to be restarted before the new voices can be used.

Building MaryTTS

Run ./gradlew build. This will compile and test all modules, and create the output for each under build/.

Note that previously, MaryTTS v5.x was built with Maven. Please refer to the 5.x branch.

Packaging MaryTTS

Run ./gradlew distZip or ./gradlew distTar to build a distribution package under build/distributions. You can also "install" an unpacked distribution directly into build/install by running ./gradlew installDist.

The distribution contains all the files required to run a standalone MaryTTS server instance, or to download and install more voices. The scripts to run the server or installer GUI can be found inside the distribution in the bin/ directory.

Using MaryTTS in your own Java projects

The easiest way to use MaryTTS in your own Java projects is to declare a dependency on a relevant MaryTTS artifact, such as the default US English HSMM voice:

Maven

Add to your pom.xml:

<repositories>
  <repository>
    <url>https://mlt.jfrog.io/artifactory/mlt-mvn-releases-local</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>de.dfki.mary</groupId>
    <artifactId>voice-cmu-slt-hsmm</artifactId>
    <version>5.2.1</version>
    <exclusions>
      <exclusion>
        <groupId>com.twmacinta</groupId>
        <artifactId>fast-md5</artifactId>
      </exclusion>
      <exclusion>
         <groupId>gov.nist.math</groupId>
         <artifactId>Jampack</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
</dependencies>

Gradle

Add to your build.gradle:

repositories {
   mavenCentral()

   exclusiveContent {
      forRepository {
         maven {
            url 'https://mlt.jfrog.io/artifactory/mlt-mvn-releases-local'
         }
      }
      filter {
         includeGroup 'de.dfki.lt.jtok'
      }
   }
}

dependencies {
   implementation group: 'de.dfki.mary', name: 'voice-cmu-slt-hsmm', version: '5.2.1', {
      exclude group: 'com.twmacinta', module: 'fast-md5'
      exclude group: 'gov.nist.math', module: 'Jampack'
   }
}

Synthesizing speech

Text to wav basic examples are proposed in this repository

Using MaryTTS for other programming languages

If you want to use MaryTTS for other programming languages (like python for example), you need to achieve 3 steps

  1. compiling marytts
  2. starting the server
  3. query synthesis on the server

Synthesize speech using the server

Synthesizing speech, using the server, is pretty easy. You need to generate proper HTTP queries and deal with the associated HTTP responses. Examples are proposed :

Extra documentation

Server as service (Linux specific)

An example of how to define marytts server as service is proposed here.

User dictionaries

You can extend the dictionaries by adding a user dictionary. The documentation of how to do it is here.

Contributing

The recommended workflow for making contributions to the MaryTTS source code is to follow the GitHub model:

  1. fork the MaryTTS repository into your own profile on GitHub, by navigating to https://github.com/marytts/marytts and clicking "fork" (of course you need a GitHub account);

  2. use the git clone, commit, and push commands to make modifications on your own marytts repository; in this process, make sure to git pull upstream master regularly to stay in sync with latest developments on the master repo;

  3. when you think a reusable contribution is ready, open a "pull request" on GitHub to allow for easy merging into the master repository.

Have a look at the GitHub documentation for further details.

IDE configuration

Wiki pages are available to help you to configure your IDE to develop MaryTTS. The following IDEs have been tested and documented:

More Repositories

1

marytts-txt2wav

An example project demonstrating use of MaryTTS in a deliberately standalone application
50
star
2

marytts-installer

Standalone installer for MaryTTS
Shell
17
star
3

gradle-marytts-voicebuilding-plugin

A replacement for the legacy VoiceImportTools in MaryTTS
Groovy
16
star
4

pavoque-data

PAVOQUE Corpus of Expressive Speech
Groovy
12
star
5

dfki-ot-data

Speech database for the OT Turkish TTS voices in MaryTTS
Groovy
5
star
6

marytts-lexicon-fr

French lexicon for MaryTTS
3
star
7

upmc-pierre-data

UPMC Pierre Voice Data
3
star
8

marytts-lexicon-de

German lexicon for MaryTTS
3
star
9

dfki-semaine-data

Speech databases for the SEMAINE TTS voices
Groovy
2
star
10

marylux-data

2
star
11

voice-dfki-pavoque-styles

A male German unit selection voice built from from the PAVOQUE Corpus of Expressive Speech
2
star
12

voice-dfki-spike-hsmm

A male British English hidden semi-Markov model voice
2
star
13

marytts.github.io

HTML
2
star
14

marytts-lang-pl

Java
2
star
15

marytts-lang-hsb

Upper Sorbian language component for MaryTTS
Java
2
star
16

marytts-lexicon-pl

Polish lexicon for MaryTTS
2
star
17

voice-cmu-slt

2
star
18

gradle-marytts-kaldi-mfa-plugin

Groovy
2
star
19

upmc-jessica-data

UPMC Jessica Voice Data
2
star
20

marytts-http-server

Java
2
star
21

gradle-marytts-lexicon-compiler-plugin

Lexicon compiler plugin for MaryTTS (incubating)
Java
2
star
22

voice-marylux-lb

A female Luxembourgish unit selection voice for MaryTTS
1
star
23

voice-amu-waldek-hsmm

1
star
24

mary-ru

1
star
25

marytts-lexicon-en_GB-oald

British English lexicon for MaryTTS (based on OALD)
1
star
26

voice-dfki-ot

A male Turkish unit selection voice
1
star
27

serbski-institut-hsb-data

Upper Sorbian voice data for MaryTTS
1
star
28

serbski-institut-dsb-data

Lower Sorbian voice data for MaryTTS
1
star
29

voice-enst-dennys-hsmm

A male Québécois French hidden semi-Markov model voice, built at Télécom ParisTech (ENST)
1
star
30

voice-istc-lucia-hsmm

Italian female Hidden semi-Markov model voice kindly made available by Fabio Tesser
1
star
31

gradle-acoustic-parameter-extraction-plugin

Acoustic parameter extraction plugin for gradle
Groovy
1
star
32

voice-amu-waldek

1
star
33

marytts-lexicon-dsb

Lower Sorbian lexicon for MaryTTS
1
star
34

marytts-lexicon-hsb

Upper Sorbian lexicon for MaryTTS
1
star
35

marytts-voicebuilding

Utility classes for MaryTTS voicebuilding
Groovy
1
star
36

marytts-tensorflow-dnn

Tensorflow helpers for MaryTTS
Java
1
star
37

marytts-lexicon-lb

Luxembourgish lexicon for MaryTTS
1
star
38

marytts-dockerfiles

Dockerfile
1
star
39

enst-camille-data

ENST Camille Voice Data
1
star
40

marytts-lang-dsb

Lower Sorbian language component for MaryTTS
Java
1
star
41

voice-serbski-institut-dsb-juro

A male Lower Sorbian unit selection voice for MaryTTS, built from recordings provided by Serbski Institut
1
star
42

jsptk

Java wrapper around SPTK
Java
1
star
43

marytts-wiki

Legacy wiki
1
star
44

voice-serbski-institut-hsb-matej

A male Upper Sorbian unit selection voice for MaryTTS, built from recordings provided by Serbski Institut
1
star
45

voice-dfki-poppy-hsmm

A female British English hidden semi-Markov model voice
1
star
46

marytts-lang-hi

Hindi language components (from Blizzard Challenge 2013)
Java
1
star
47

voice-enst-florent-hsmm

A male French hidden semi-Markov model voice, built at Télécom ParisTech (ENST)
Java
1
star
48

voice-cmu-slt-hsmm

1
star
49

gradle-marytts-component-plugin

Utility plugin to build MaryTTS components with Gradle
Groovy
1
star