PaddlePaddle / PaddleSpeech

Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.
https://paddlespeech.readthedocs.io
Apache License 2.0
10.99k stars 1.83k forks source link

🎉 PaddleSpeech 实现多种卡通音色和方言的中英文混合 TTS #2491

Closed yazone closed 2 years ago

yazone commented 2 years ago

实现单模型TTS中英文发音初步尝试了3种方案:单发音人方式、多发音人语料混合方式、finetune方式。

示例句子:

大家好,我是parrot虚拟老师,我们来读一首诗,我与春风皆过客, I and the spring breeze are passing by,你携秋水揽星河, you take the autumn water to take the galaxy。

(一)单发音人方式(有数据才行!)

使用同一发音人中文、英文语料,这种方式效果最佳,听听效果:

中英文女:

https://user-images.githubusercontent.com/10195479/193219058-5a98685b-c93d-4c74-8356-914c781b4d27.mp4

中英文男:

https://user-images.githubusercontent.com/10195479/193215189-501ab75b-7eca-4675-a304-2ad7488922a5.mp4

(二)多发音人语料混合方式(音色串了!)

有开源数据中文baker、英文ljspeech数据,将数据混合成单发音人训练出一个模型,能听出一句话中文是baker、英文是ljspecch两种音色,我想音色差别不大的时候可以选用这种方式,听听效果:

https://user-images.githubusercontent.com/10195479/193216645-30394fd8-d4e4-4e4b-9612-436f130cfad9.mp4

(三)finetune方式(音色一致了!)

在第一种中英文预训练模型上进行finetune,实现特色语音、动漫语音、方言,效果如下:

特色普通话

Baker说中英文:

https://user-images.githubusercontent.com/10195479/193209914-fdc5e771-c7bc-4be3-b6ef-00016f0089a5.mp4

抖音鸡汤女说中英文:

https://user-images.githubusercontent.com/10195479/193210117-774d58e4-eefd-4c8a-8018-826fc2b1d4ae.mp4

动漫

蜡笔小新说中英文:

https://user-images.githubusercontent.com/10195479/193217824-2eda00ba-1760-4da9-adf9-91beae36cd36.mp4

海绵宝宝说中英文:

https://user-images.githubusercontent.com/10195479/193218064-f0111d64-7d6d-4e2a-918e-58ebe228b9cb.mp4

方言

东北话:

https://user-images.githubusercontent.com/10195479/193218466-4213202a-b3ac-4ce6-9d8f-cd09e641c155.mp4

广西话:

https://user-images.githubusercontent.com/10195479/193218528-f191e296-fb64-4cfc-90a0-22407c04eb2c.mp4

河南话:

https://user-images.githubusercontent.com/10195479/193218587-0a5cd848-c6ae-44e5-956f-980e9f233bd7.mp4

四川话:

https://user-images.githubusercontent.com/10195479/193218647-84c18656-de58-499e-a180-67b2aae1b9b3.mp4

天津话:

https://user-images.githubusercontent.com/10195479/193218707-944f5801-2894-4e64-83c2-c92176df63cb.mp4

粤语:

https://user-images.githubusercontent.com/24568452/193232486-25b64f7a-164a-4433-8e7e-02f11c4036d4.mp4


后续是否可以在第二种方案的模型上进行finetune达到好的效果再进行验证,这样就不需要单发音人的中英文预训练模型了,只需要开源数据就OK了。

×××××××××××PaddleTTS实现起来还是很方便的,感谢各位大佬...××××××××××

yt605155624 commented 2 years ago

(二)多发音人语料混合方式(音色串了!)

我们目前的中英文混合是用 4 个开源数据进行混合可以实现音色和语言解耦,如果只用 CSMSC 和 LJSpeech 确实音色无法解耦,我们也实验过在 CSMSC + LJSpeech + 1000 条的同一个说话人中英文混合语料训练,也能达到解耦,得到的结论是:

  1. CSMSC + LJSpeech 训练(但是我们不是合成单发音人,还是用 2 个 spk_id),中文音素只见过 CSMSC 的,英文音素只见过 LJSpeech 的所以无法解耦
  2. 再加一个说话人(这个说话人是中英文混合的,单语的没试过),就能解耦
  3. CSMSC + LJSpeech + AISHELL3 + VCTK 可以解耦(我们目前开源的方案)