sanoTTS (ultra-light offline)

VoicesOfflineCPU onlyCommercial use OK

Dubs your subtitles with sanoTTS, neural voices of 294k to 2.3M parameters that run on the CPU. Its 28 voices in 14 languages download on first use, a few MB each, and work offline after that.

Install it from Subtitld

Settings Add-ons sanoTTS (ultra-light offline) Install

Subtitld downloads it, checks its SHA-256, and keeps it updated.

Source on GitHub
Languages
14
Voices
28
Add-on download
38–63 MB
RAM, at least
512 MB

What it does

A voice per speaker

Choose sanoTTS as the Dubbing engine and pick a voice for each speaker. Generate all speeches dubs that speaker's lines: all of them, a range, or the selection.

A few MB per voice

Each voice downloads the first time you use it, 0.3 to 9 MB, from Hugging Face or, if that fails, from GitHub. After that it works offline.

Light on your computer

No graphics card needed. sanoTTS runs on two CPU threads by default, so it doesn't take every core while you edit.

Fits the subtitle

With Fit dub to subtitle duration on, each new clip is sped up or slowed down to last as long as its subtitle. The original clip is kept too.

Voices

Most languages have one voice, or a standard one and a compact -tiny one: Czech, German, Spanish, Italian, Portuguese, Romanian, Russian and Turkish have both. English (US) has seven:

  • Heart, marked as the most natural, and Heart Nano, the fastest, at 294k parameters.
  • Amy in three sizes: smallest, balanced and highest quality.
  • Hfc and Kristin, two more timbres.

The first line with a voice waits for it to download and load; the lines after it reuse it.

Long lines on Heart and Heart Nano. These two voices fail on long input, so the add-on splits any subtitle over 170 characters at sentence ends and joins the pieces. The joins can be faintly audible.

28 voices in 14 languages.

  • ar-jo 1
  • cs-cz 2
  • de-de 2
  • en-us 7
  • es-es 2
  • fr-fr 1
  • id-id 1
  • it-it 2
  • pt-br 2
  • ro-ro 2
  • ru-ru 2
  • tr-tr 2
  • vi-vn 1
  • zh-cn 1

Where voices are kept

Outside the add-on, so updating or uninstalling it keeps your voices.

System Folder
Linux ~/.cache/sanotts
macOS ~/.cache/sanotts

Options

Subtitld hands these settings to the add-on when it starts it. After a change, they apply once the add-on restarts: after five minutes without use, or when you restart Subtitld.

In Settings › Add-ons › sanoTTS (ultra-light offline) › Configure.

Speaking rate
Default: 1.0

Applied at synthesis time by stretching phoneme durations, which sounds better than resampling afterwards.

CPU threads
Default: 2

Threads numpy/OpenBLAS may use. The default of 2 keeps synthesis from saturating every core while you are editing.

Download voices from
Default: empty

Where voice packs are fetched from on first use. Pin one if the other is blocked on your network.

Local voice directory
Default: empty

Optional. A folder holding one extracted voice pack, for working with no network at all. Every sanoTTS voice you pick then speaks with this pack, so leave it empty to use the voice list. Type the folder's path; Browse picks files only.

Languages

Ten of the 14 languages are pronounced with espeak-ng, which comes inside the add-on, so there's nothing else to install. sanoTTS's own website lists Hindi and Nepali too, but those exist only in its browser demo, not in the build this add-on uses.

  • ar-jo
  • cs-cz
  • de-de
  • en-us
  • es-es
  • fr-fr
  • id-id
  • it-it
  • pt-br
  • ro-ro
  • ru-ru
  • tr-tr
  • vi-vn
  • zh-cn

Platforms

System DownloadTested
Linux x86-64 63.2 MBReal synthesis in CI
macOS (Apple silicon) 37.6 MBReal synthesis in CI

Before every release, CI runs each packaged build and has it speak English and German lines. There's no Windows build yet: on Windows, sanoTTS can stop mid-line while it sets up espeak-ng, and the add-on's fix for that hasn't been tested on a real Windows machine.

Troubleshooting

When a line fails, it's left without a dub. These are the reasons the add-on gives.

  • model_missingThe voice pack couldn't be downloaded from Hugging Face or GitHub. Check your connection and try again. If one of the two is blocked on your network, choose the other in Download voices from.
  • network_unavailableThe voice pack's download failed. Check your connection and try again; a voice that's already downloaded works offline.
  • disk_fullNot enough disk space. Free some and try again.
  • bad_paramsThe subtitle is empty, or too long for the voice. Split it into shorter subtitles, or pick another voice.
  • unsupported_voiceThe voice saved for this line isn't a sanoTTS voice. Pick one from the Voice list again.
  • internalSomething failed inside the add-on. If it happens only with voices that use espeak-ng (all but English, Chinese, Vietnamese and Indonesian), the bundled espeak-ng didn't load. That's a fault in the add-on, not your computer: please report it.

License

Add-on
GPL-3.0-or-later
Includes espeak-ng and phonemizer-fork
Engine
MIT
sanoTTS 0.7.0
Voices
GPL-3.0
Downloaded on first use

The GPL allows commercial use. Every release also includes the source of its GPL parts, as the license requires.

Versions

  • 0.1.0

    Source for the GPL components

    This add-on is distributed under the GNU General Public License v3.0 or later. Complete Corresponding Source for the GPL-licensed parts (espeak-ng, phonemizer-fork) is attached to this release as *-corresponding-source.tar.gz, at no charge, per GPL-3.0 section 6(d).

    Each binary archive also contains a THIRD_PARTY_LICENSES/ directory with the full licence texts and the exact upstream revisions used.

Other Voices add-ons