marytts logo

marytts

marytts/marytts

An open-source multilingual text-to-speech synthesis system written in pure Java

GraphCanon updated 3w · GitHub synced 3w

2.6k stars770 forksLast push 1y Java Other

Decision brief

Open-source Java multilingual TTS system for generating spoken output from text.

Good fit when

  • When you need a pure Java-based solution for integrating TTS in your software projects.
  • For developing custom voices or experimenting with speech synthesis techniques.

Avoid when

  • If real-time performance is critical, as MaryTTS may not be optimized for such use-cases.
  • When looking for a cloud-hosted service, as MaryTTS requires local deployment.

Observed Jul 17, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Dormant (557d since push)
As of 3w
Provenance
Not a fork · Organization account
As of 3w
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

git clone https://github.com/marytts/marytts

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

MARY TTS offers a comprehensive platform for generating spoken output from text inputs with support for multiple languages.

Capability facts

Languages
java

Source: github.language · Jul 29, 2026

Categories

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Jul 29, 2026)

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

Tags

README

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://raw.githubusercontent.com/DFKI-MLT/Maven-Repository/main</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>de.dfki.mary</groupId>
    <artifactId>voice-cmu-slt-hsmm</artifactId>
    <version>5.2.1</version>
  </dependency>
</dependencies>

Gradle

Add to your build.gradle:

repositories {
   mavenCentral()

   exclusiveContent {
      forRepository {
         maven {
            url 'https://raw.githubusercontent.com/DFKI-MLT/Maven-Repository/main'
         }
      }
      filter {
         includeGroup 'de.dfki.lt.jtok'
      }
   }
}

dependencies {
   implementation group: 'de.dfki.mary', name: 'voice-cmu-slt-hsmm', version: '5.2.1'
}

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

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.