EmotiVoice
网易有道开源的多音色情感TTS引擎,支持2000+音色和提示词情感控制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
网易有道开源的多音色情感TTS引擎,支持2000+音色和提示词情感控制
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:深夜,你正在为一条产品演示视频录制旁白。你录了十几遍,要么语气太平淡,要么情绪不到位,好不容易录完发现底噪太大。那种挫败感,每一个内容创作者都懂——文字内容已经精心打磨,但声音传达出来的情感,却始终差那么一点。
这就是文本转语音(TTS)技术存在的意义。而 EmotiVoice,正是这个领域里一个值得关注的存在。
EmotiVoice 由网易有道团队开源发布,是一款完全免费的多音色、提示控制型 TTS 引擎。项目发布后在 GitHub 上迅速积累了大量关注,成为中文 TTS 开源领域的标杆项目之一。
有道做 TTS 有天然的积累——其商业产品(如有道词典、有道云笔记)长期深耕语音技术。EmotiVoice 的出现,可以看作是有道将部分技术能力回馈给开源社区的尝试。2023 年底,团队还顺势推出了 Mac 一键安装包和 HTTP API 服务,进一步降低了使用门槛。
如果把传统的语音合成比作黑白打印,那么 EmotiVoice 就像是给声音装上了一套完整的调色板。传统 TTS 只能把文字念出来,而 EmotiVoice 不只能选择"谁来念"(2000+ 音色),还能控制"用什么样的情绪来念"(快乐、悲伤、愤怒、兴奋等),甚至"用什么语气和风格来念"(提示词 Prompt)。
这种提示控制能力,是近年来 TTS 技术最重要的进化方向之一。
EmotiVoice 底层基于 Transformer 架构,核心模型融合了 JETS(Joint Embedding between Text and Speech)架构和 HiFi-GAN 声码器。技术栈方面,项目以 PyTorch 作为深度学习框架,配合 transformers 库加载预训练语言模型,使用 Streamlit 构建 Web 界面。
核心推理入口为 inference_tts.py,支持通过命令行和 Python API 两种方式调用。前端处理(文本正则化、中文分词、韵律预测)由 frontend.py 统一调度,中英文分别由 frontend_cn.py 和 frontend_en.py 处理。音频合成后,通过 g2p_en(英文)和 jieba/pypinyin(中文)完成文本到音素的映射。
情感控制通过 StyleEncoder(SimBERT) 模块实现,用户在提示词中传入情感描述(如 "happy, excited"),模型据此调整声学特征。2000+ 音色的背后,是不同说话人的声纹特征库,通过说话人嵌入(speaker embedding)实现多说话人合成。
Docker 方式(推荐):官方维护 Docker 镜像,一行命令即可启动 Web UI 和 HTTP API,适合快速体验,但需配合 NVIDIA GPU。
Conda 手动安装:通过 requirements.txt 安装所有依赖,适合需要定制或调试代码的开发者。Python 3.8 + CUDA 11.x/12.x 是推荐环境。
Mac DMG 包:2023 年 12 月发布的 arm64 一键安装包,适合苹果芯片 Mac 用户,无 GPU 也能运行但合成速度较慢。
HTTP API:2023 年 12 月上线,通过 /8000/ 端口提供类 OpenAI TTS 接口,支持调速,有超过 13,000 次免费调用额度,适合集成到其他应用。
情感合成的"真实感"仍有提升空间。虽然支持多种情感标签,但在一些复杂情感或微妙情绪的表达上,合成语音与真人录音之间仍有可感知的差距,尤其是在中文语境下的表现略弱于英文。
2000+ 音色中,中文高质量音色占比相对较少,部分音色存在机械感。私有化部署对 GPU 有硬性要求,CPU 推理速度较慢,不适合实时性要求高的场景。
此外,模型推理需要加载较大的预训练模型,显存占用约 4GB+,在显存有限的消费级显卡上可能面临压力。
EmotiVoice 的出现,让"让AI有感情地说话"这件事,从学术论文走进了普通开发者的电脑。它所代表的"提示词控制 + 多音色 + 情感合成"路线,已经成为 TTS 开源领域的主流方向。随着开源社区不断贡献新的音色和微调模型,EmotiVoice 的生态正在逐步壮大。
对于内容创作者、有声书制作者、游戏语音 NPC 开发者,以及需要批量生成语音的应用场景,EmotiVoice 提供了一个免费、可控、不依赖云服务 API 的本地解决方案。