JoTTS is a German text-to-speech engine.
Project description
jotts
JoTTS is a German text-to-speech engine using tacotron and griffin-lim or wavernn as vocoder. The synthesizer model has been trained on my voice using tacotron1. Using grifin-lim as vocoder makes the audio generation much faster whereas using a trained vocoder returns better results in most cases.
API
-
First create an instance of JoTTS.
-
(optional) List all models that are available using list_models(). You can also look them up in the browser: https://github.com/padmalcom/Real-Time-Voice-Cloning-German/releases
-
Load a model of your choice using load_models() which takes force_model_download as an optional parameter in case that the last download of the synthesizer failed and the model cannot be applied. The parameter model_name is validated against all available models on the release page.
-
Call speak with a text parameter that contains the text to speak out loud. The second parameter wait_for_end can be set to True, to wait until speaking is done, e.g. to prevent your application to close. If you want to use a trained vocoder, set use_wavernn_vocoder to True.
-
Use textToWav to create a wav file instead of speaking the text. out_path specifies where the wav file is written to. Use use_wavernn_vocoder to use a trained vocoder.
Example usage
from jotts import JoTTS
if __name__ == "__main__":
tts = JoTTS()
tts.list_models()
tts.load_models(force_model_download=False, model_name="jonas_v0.1")
tts.speak("Das ist ein Test mit meiner Stimme.", wait_for_end = True, use_wavernn_vocoder=True)
tts.speak("Das ist ein Test mit meiner Stimme.", wait_for_end = True, use_wavernn_vocoder=False)
tts.textToWav(text="Das ist ein Test mit meiner Stimme.", out_path="vocoder_out.wav", use_wavernn_vocoder=True)
tts.textToWav(text="Das ist ein Test mit meiner Stimme.", out_path="griffin_lim_out.wav", use_wavernn_vocoder=False)
Todo
- Add an option to change the default audio device to speak the text
- Add threading or multi processing to allow speaking without blocking
- Add a parameter to avoid online communication in case of running JoTTS on edge.
- Add a feature to quickly finetune a model with a arbitrary voice
Training a model for your own voice
Training a synthesizer model is easy - if you know how to do it. I created a course on udemy to show you how it is done. Don't buy the tutorial for the full price, there is a discout every month :-)
https://www.udemy.com/course/voice-cloning/
If you neither have the backgroud or the resources or if you are just lazy or too rich, contact me for contract work. Cloning a voice normally needs ~15 Minutes of clean audio from the voice you want to clone.
Disclaimer
I hope that my (and any other person's) voice will be used only for legal and ethical purposes. Please do not get into mischief with it.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file jotts-1.0.5-py3-none-any.whl
.
File metadata
- Download URL: jotts-1.0.5-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80dcdbf428501f7b6b00a69b0504980a272a987e3e2d65cec46452550978eaf4 |
|
MD5 | d9aa1927b97817a0c538200be64e632d |
|
BLAKE2b-256 | df59885809de817414572dd80bdadcb87b8cda6f2dc0f9c0a0a6872e1e022bc3 |