WeTTS是由微软亚洲研究院开源的一款端到端语音合成(Text-to-Speech, TTS)工具包。该项目专注于为生产环境打造高质量、高效率的TTS系统,同时兼顾设备端部署的需求。WeTTS的设计理念是"生产优先、随时可用",意在为开发者和研究人员提供一个功能完备、性能优异且易于使用的TTS开发平台。

端到端架构:采用先进的端到端模型,如VITS,简化了传统TTS流程。
生产导向:专为实际生产环境设计,注重系统的稳定性和效率。
多平台支持:可在x86、Android、树莓派等多种硬件平台上运行。
开源友好:采用Apache 2.0开源协议,鼓励社区贡献和创新。
中文优化:针对中文语音合成进行了特别优化。
WeTTS的技术路线主要分为前端和后端两大部分:
文本正规化:使用WeTextProcessing工具进行文本预处理。
韵律和多音字处理:采用基于BERT蒸馏模型的统一中文TTS前端方法。
主要采用端到端的VITS(Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech)模型。VITS通过结合变分自编码器和对抗学习,实现了高质量的语音合成。
WeTTS计划支持多个开源TTS数据集,包括但不限于:
这些数据集的支持使得WeTTS能够在不同场景下训练出高质量的语音合成模型。
WeTTS提供了多个预训练模型,方便用户快速开始:
| 数据集 | 语言 | 检查点模型 | 运行时模型 |
|---|---|---|---|
| Baker | 中文 | BERT | BERT |
| 多语言 | 中文 | VITS | VITS |
这些预训练模型涵盖了不同的应用场景,用户可以根据需求选择合适的模型进行使用或微调。
WeTTS提供了简便的Python包安装方式:
pip install git+https://github.com/wenet-e2e/wetts.git
安装完成后,可以通过命令行或Python脚本使用WeTTS:
命令行使用示例:
wetts --text "今天天气怎么样" --wav output.wav
Python脚本使用示例:
import wetts # TODO: 具体使用方法待补充
对于希望进行开发或部署的用户,WeTTS推荐使用Anaconda或Miniconda搭建环境:
git clone https://github.com/wenet-e2e/wetts.git
conda create -n wetts python=3.8 -y conda activate wetts pip install -r requirements.txt
WeTTS计划支持多种硬件平台和运行环境,包括:
以下是在x86平台上运行WeTTS的示例:
export GLOG_logtostderr=1 export GLOG_v=2 cd runtime/onnxruntime cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build ./build/bin/tts_main \ --frontend_flags baker_bert_onnx/frontend.flags \ --vits_flags multilingual_vits_v3_onnx/vits.flags \ --sname baker \ --text "hello我是小明。" \ --wav_path audio.wav
这个例子展示了如何使用预训练的BERT前端和VITS后端模型生成语音。
WeTTS项目非常重视社区贡献和用户反馈。开发团队提供了多种交流渠道:
GitHub Issues: 用户可以直接在项目页面提出问题或建议。
微信群: 中国用户可以扫描官方二维码加入微信讨论群,与开发者和其他用户进行更快速的交流。

WeTTS的开发过程中借鉴了多个开源项目的经验:
VITS: WeTTS的VITS实现参考了该项目的代码。
PaddleSpeech: WeTTS的拼音词典生成部分参考了PaddleSpeech的实现。
作为一个持续发展的开源项目,WeTTS的未来发展方向包括:
WeTTS作为一个面向生产的端到端语音合成工具包,为研究人员和开发者提供了一个强大而灵活的平台。无论是学术研究还是商业应用,WeTTS都能满足不同场景下的语音合成需求。我们期待更多的开发者和研究人员加入WeTTS社区,共同推动语音合成技术的发展和应用。
🚀 立即访问WeTTS GitHub页面开始您的语音合成之旅吧!