Varying Speaking Styles with Neural Text-to-Speech
developer.amazon.com
developer.amazon.com
With this achievement of Amazon, and the recent development by China in AI news-anchors [2], one is not far off to see news reporting being done mostly by machines. Yes, some videography must still be done manually, but the rest could be automated.
What that means for the TV news industry? I don't know, but it certainly deserves discussion.
[1] https://www.youtube.com/watch?v=aHun58mz3vI
[2] https://www.fastcompany.com/90264587/watch-chinas-new-ai-anc...
Audio Samples: https://soundcloud.com/user-565970875
If your interested in helping improve this, spread the wors about the Common Voice project by Mozilla, a public speech corpus that is easy to help improve, which makes high caliber TTS and transcription possible ouside of walled gardens: https://voice.mozilla.org
Mozilla DeepSpeech also does Speech to Text surprisingly well: https://github.com/mozilla/DeepSpeech
The best quality I have heard in OSS is probably [1] from Ryuichi using the Tacotron 2 implementation of Rayhane Mamah, which is loosely what NVidia based some of their baseline code on recently as well [3][4].
There's also a colab notebook for this stuff, so you can try it directly without any pain https://colab.research.google.com/github/r9y9/Colaboratory/b...
I also have my own pipeline for this (using some utilities from the above authors + a lot of my own hacks), for a forthcoming paper release here https://github.com/kastnerkyle/representation_mixing/tree/ma... , see the minimal demo. It has pretty fast sampling, but the audio quality is not as high as WaveNet. I'd really like to tie in with WaveGlow, but it's work in progress for me so far.
NOTE: None of these have voice adaptivity per se, but given a model which trains well already + a multispeaker dataset with IDs such as VCTK, a lot of things become possible as getting a baseline model and data pipeline for TTS is quite difficult.
[0] https://github.com/keithito/tacotron
[1] https://r9y9.github.io/blog/2018/05/20/tacotron2/
[2] https://github.com/Rayhane-mamah/Tacotron-2
IMO that is why it is critical to spread the word about Common Voice (a CC0 licensed voice corpus) and get a large variety of people contributing to it: https://voice.mozilla.org
This all gets worse if you want multi-speaker output of course - getting even a few speakers who all read the same large corpus is difficult. The two datasets I've gotten the most out of so far are "LJSpeech" (a subset of the LibriVox corpus), and the "Nancy Corpus / Blizzard 2013" dataset [0][1].
There's a pretty interesting corpus here that I hope to start using soon [2].
To me, the biggest issue / gap between commercial interests and publically available data is curation - TTS really hinges on well curated, clean data at least for now. And if that dataset has a very balanced coverage of triphones, that's even better.
I'd like to try on the voice.mozilla data, but given current stuggles on even 1 speaker, a truly "in the wild" set of many speakers seems pretty difficult if training from scratch. For voice cloning using pretrained weights it may be a different story.
[0] https://keithito.com/LJ-Speech-Dataset/
[1] https://www.synsig.org/index.php/Blizzard_Challenge_2013
[2] http://www.m-ailabs.bayern/en/the-mailabs-speech-dataset/
We followed this approach in char2wav [2], but "voice cloning" has come much farther in my opinion [3][4][5]. There's a lot of relevant research on techniques for this beyond concatenating indicators or embeddings, if people are interested in the research side of this technology.
[0] https://arxiv.org/abs/1308.0850
[1] https://www.youtube.com/watch?v=-yX1SYeDHbg&t=38m30s
[2] http://josesotelo.com/speechsynthesis/
[3] https://twitter.com/Jeanne_Heo/status/972089715225542657 (lyrebird.ai)
[4] https://google.github.io/tacotron/publications/gmvae_control...
[5] https://google.github.io/tacotron/publications/speaker_adapt...