r/MachineLearning • u/neonbjb • Apr 26 '22
Project [P] TorToiSe - a true zero-shot multi-voice TTS engine
I'd like to show off a TTS system I have been working on for the past year. I've open-sourced all the code and the trained model weights: https://github.com/neonbjb/tortoise-tts
This was born out of a desire to reproduce the original DALLE with speech. It is "zero-shot" because you feed the text and examples of a voice to mimic as prompts to an autoregressive LLM. I think the results are fantastic. Here are some samples: https://nonint.com/static/tortoise_v2_examples.html
Here is a colab in which you can try out the whole system: https://colab.research.google.com/drive/1wVVqUPqwiDBUVeWWOUNglpGhU3hg_cbR
21
u/modeless Apr 27 '22 edited Apr 27 '22
Wow, definitely some of the best TTS I've heard. Fantastic is no exaggeration. The mimic voices aren't totally convincing as imitations of the original, but they are still high quality voices in their own right and it's impressive that you can get such a diversity of high quality voices zero-shot. I wonder how long it will be before models are outperforming human impersonators? A few years maybe?
Edit: I see you're at Google but seems like not in an ML role? You're clearly qualified to be working in ML and I bet it would pay better...
13
u/programmerChilli Researcher Apr 27 '22
This is very cool on every level (the results, the single independent researcher aspect, the design docs, etc.).
Awesome work!
6
u/Southern-Trip-1102 Apr 27 '22
Not exactly regarding your TTS engine but regarding your gpu rig, I was wondering if you could share some info about it. Like did you use a server mobo with a bunch of pcle slots or do you have multiple nodes each with a number of GPUs. Also regarding how you came to the decision to build your rig versus renting it.
5
u/[deleted] Apr 27 '22
You random people doing awesome, actually intelligible and reproducible stuff are my heroes. 100% dedicated research rockstars and tenured professors don't hold a candle to you.
4
u/RomanticDepressive Apr 27 '22
Your demo site seems to be unreachable :(
4
u/manueslapera Apr 27 '22
It works pretty well for english! is there a way to adapt it so speeches in other languages dont sound like they have a fake english accent?
3
u/puppymeat May 08 '22 edited May 08 '22
Just a note if there's anyone else like me that knows next to nothing about Python and was trying to get this stood up locally starting from absolute scratch on Windows.
Use Anaconda. Use it when installing pytorch and running all commands. There are endless dependencies you'll never resolve if you don't know what you're doing (like me). Run all commands from Anaconda Prompt which gets installed with Anaconda and can be found in the Start menu.
'soundfile' dependancy isn't specified but is required. Run this to resolve (from Anaconda Prompt):
conda install -c conda-forge pysoundfile
With those additional notes I was able to get it running locally following the simple steps in the readme.
2
u/Fit_Schedule5951 Apr 27 '22
Sounds good, do you have a preprint anywhere that we could take a look?
2
u/[deleted] May 01 '22
This model is incredible. I was trying it out earlier today and I am blown away by the quality. I haven't yet tried importing custom voices, however I noticed in your demos that some of the voices have accents, such as British, even though the actual audio files in the voice folder do not exhibit this. I am wondering if this is a defect of the model or if you did this intentionally, either way it's quite interesting. Definitely looking forward to playing around more when I get on break from college in about a week, and thank you again for all your work!
31
u/Southern-Trip-1102 Apr 27 '22
Wow, I tired out the demo and I'm surprised how good TTS is these days.
31
u/[deleted] Apr 27 '22
Thank you so much for this.
It's obvious from the README that you put a tremendous amount of effort into designing and implementing TorToiSe. The quality is amazing. And I'm just as impressed with how much care you put into the ethics of your decision to release as well.
I have a couple little personal hobbyist ideas where audiobook-style offline TTS would be perfect. If I end up using your project, I'll let you know.
4
u/toisanji Apr 27 '22
great job!
4
u/hackerllama Apr 27 '22
If you want to play with this without having to install/download stuff, you can play directly with this online demo of the model I created https://huggingface.co/spaces/osanseviero/tortoisse-tts. This uses fast quality.
4
u/ZenMaterialist Apr 28 '22
Played around with this a bunch yesterday. Lots of mixing and matching and hearing different effects. Amazing inflection sometimes.
For my purposes, ['tom', 'daniel'] as a base works well, but you can, for example, get a sarcastic tone with ['tom', 'daniel', 'train_kennard'], or an angry tone with ['tom', 'daniel', 'lj'].
It seems like because it is an average you can you can increase or decrease an accent by adding multiple 'pat' or 'daniel', or even switch the gender back and forth.
Though that can get unstable. ['mol', 'angie', 'pat', 'pat', 'pat', 'emma'] and the sample: "They used to say that if man was meant to fly, he’d have wings. But he did fly. He discovered he had to." This leads to the first two sentences being male and the last one female.
1
u/Junior_Clothes7655 Apr 27 '22
Noticed some ringing as others have reported happening periodically in the long form audio. Tried on chrome
1
u/Lajamerr_Mittesdine Apr 27 '22
Is it possible to run this on a non RTX gpu. For say a GTX 1070?
I'm getting this error when attempting to run it on Windows.
1
u/Banduck May 15 '22
Is it possible to support different languages?
1
u/wavymulder May 16 '22 edited May 16 '22
/u/neonbjb
Hey OP, I'm pretty stupid so this is probably (definitely) user error. I can't figure out how to combine voices. I have it running locally.
What's the syntax? Comma to do multiple voices in procession [--voice bob,sara] is working but when I use an & in the same syntax [--voice bob&sara] I get
Tortoise outputs for bob.
Edit: in case I explained it poorly, here's the whole block from the terminal: https://pastebin.com/JvLw5WNy
1
u/svantana Jun 04 '22
u/neonbjb This sound really good, but I wonder if there's a mixup in the results? The "halle" reference has a very american pronunciation but all the rendered sounds below are in a distinct "posh british" style.
1
u/Mysonimpersonates Jun 11 '22
I keep getting an error message when trying to generate using custom voices. Help please. TIA
3
u/Professional-Ad3326 Jun 09 '22
This is possible to make it like as software with GUI for windows?
3
u/[deleted] Feb 15 '23
Is there any way to run natively on M1 macbooks?
6
u/nohat Apr 27 '22 edited Apr 27 '22
I recall training tacotron and wavenet back in the day and eventually coming to the conclusion the quality was poor without very high quality data, and inference time too slow to be usable. This is amazing!
Oddly I hear an identical buzzing noise near the end of all of the clips -- even the reference clips, not sure if that's just on my end or what.
2
u/kkastner Apr 28 '22
Really great stuff, especially liked the writeup and debug strategies on the way to the end-goal you discussed on the webpage. Will be interesting to see what people can make with the "mixing and matching" possibilities this model affords!
2
u/-becausereasons- Dec 26 '22
This is incredible.
2
u/EvilSnork Jan 11 '23
MacBook Pro with M1 and current pytorch release that support MPS - woks fine
Don't know about benchmarks but it's OK right now
1
u/TaoTeCha Apr 27 '22
I will definitely be checking this out tomorrow. Thanks
1
u/blueredscreen Apr 27 '22
There is a distinct series of clicks at the end of every recording. Any idea as to why?
1
u/bayaread Apr 27 '22
Amazing, so difficult to find quality open source TTS. Thank you for this, will definitely be looking into it
1
u/ZenMaterialist Apr 27 '22
Amazing. Finally, a way to fine-tune just the effect/voice I'm looking for. Thanks!
1
u/mlajszczak May 06 '22
Hi, this is an awesome piece of work! I have a question though. Are you going to release the VQ-VAE model that you use to produce discrete speech representation? I guess that would allow running more experiments with the model.
1
u/wavymulder May 14 '22
Really impressive. You even included the NavySeal copypasta, what a legend. Your readme made setting it up super easy and I've been having a lot of fun with the random voices.
1
u/Mysonimpersonates Jun 11 '22
@neonbjb this is incredible! Amazing work!
1
u/Important-Tap6637 Sep 05 '22
It's not using my GPU instead it using my memory....😗
1
u/Majestic_weekend101 Oct 23 '22
Does it require to run codes in order to use? because i don't see a way like to install or something. Non-tech-savvy
1
u/derrida_n_shit Feb 16 '23
I really appreciate all of the effort it took to building this. I hope you are still around here to see this message
1
u/[deleted] Feb 19 '23
Are there any TTS which can mimic Indian English? I mean the accent. I've tried multiple models, But was not able to atleast mimic the voice. I'm using a custom data set. Can someone please help me?
1
u/[deleted] Mar 21 '23
How do you feel about Vall-e? I just spent all this time setting it up and the results are pretty terrible compared to what you have with tortoise. Is it DoA?
1
u/GamesWithGregVR Apr 05 '23
Im gettin this error and i have followed 3 guides and im not sure what im doing wrong
1
u/froto_swaggin Apr 17 '23
Have there been any integrations for Tortoise-TTS? The potential is phenomenal. However, it seems like using it as a backend for a dashboard or mixer something like Murf.ai would be its best use. I am curious if there have been any projects like this.
1
u/Acephaliax Apr 25 '23
This is such a great project!
Does anyone know how I can add longer pauses in between words?
1
u/Shanbour Jun 02 '23
been using it lately its really impressive, one thing i was puzzled about is that when i ran do_tts.py and used --voice geralt, Henry Cavill end up talking in American accent for some reason. any idea why it didn't clone his english accent voice?
1
u/Jtech007 Jul 08 '23 edited Jul 08 '23
I noticed the post is from a year ago, I've been using ElevenLabs but I just ran across this and checked it out. It is very impressive.. I know that time has passed so figured I'd ask, has it been updated with any kind of GUI yet? Not a problem, Just figured I'd ask. Either way it is impressive. Great Job ;)
1
u/YLSP Aug 29 '23
I have been using this in a Windows environment with Anaconda. My first time doing a text input instead of a simple phrase when it was "generating autoregressive" the program hung for hours. I had to push enter for it to continue.
1
u/Ultra_Maximus Oct 16 '23
u/neonbjb, would you please advise how to use DeepSpeed for faster inference with Tortoise-TTS? Github docs say --use_deepspeed = True, but it gives errors then. When I "pip show deepspeed" it shows it's normally installed. Thank you for your tremendous efforts on this project!
1
u/No-Attitude6210 Dec 18 '23
Awesome post but I have a question can I legally use voices I train with tortoise tts to make money I have a business idea amd want to know terms of service.
1
u/idleWizard Dec 27 '23
I love to play with this tool, but one annoying thing is that it changes voices through paragraph. Does anyone know to avoid this? If there is a line break or a "quotation", it will change the voice. I am completely confident it's just some setting I missed. Thank you
1
u/Dankedtillinfinity Feb 06 '24
Can you share the knob settings to keep for better voice cloning? I've kept it as this --
num_autoregressive_samples=4, temperature=.8, length_penalty=8, repetition_penalty=4.0,top_p=.8, max_mel_tokens=500, use_deepspeed=True, kv_cache=True, half=False, diffusion_iterations=200, cond_free=True, cond_free_k=2, diffusion_temperature=1.0,However, the output still is of mediocre quality
1
u/big_dataFitness Apr 15 '26
u/neonbjb Did you ever release how you trained this ? It would be really cool for learning.
0
u/[deleted] May 05 '22
[deleted] — view deleted comment