https://zhuanlan.zhihu.com/p/669118264

README: EN | 中文

EmotiVoice易魔声 😊: 多音色提示控制TTS

              

EmotiVoice是一个强大的开源TTS引擎,完全免费,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。

EmotiVoice提供一个易于使用的web界面,还有用于批量生成结果的脚本接口。

以下是EmotiVoice生成的几个示例:

热闻速递

开发中的特性

  • 更多语言支持,例如日韩 #19 #22

易魔声倾听社区需求并积极响应,期待您的反馈!

快速入门

EmotiVoice Docker镜像

尝试EmotiVoice最简单的方法是运行docker镜像。你需要一台带有NVidia GPU的机器。先按照LinuxWindows WSL2平台的说明安装NVidia容器工具包。然后可以直接运行EmotiVoice镜像:

docker run -dp 127.0.0.1:8501:8501 syq163/emoti-voice:latest

Docker镜像更新于2024年1月4号。如果你使用了老的版本,推荐运行如下命令进行更新:

docker pull syq163/emoti-voice:latest
docker run -dp 127.0.0.1:8501:8501 -p 127.0.0.1:8000:8000 syq163/emoti-voice:latest

现在打开浏览器,导航到 http://localhost:8501 ,就可以体验EmotiVoice强大的TTS功能。从2024年的docker镜像版本开始,通过 http://localhost:8000/ 可以使用类 OpenAI TTS 的 API功能。

完整安装

conda create -n EmotiVoice python=3.8 -y
conda activate EmotiVoice
pip install torch torchaudio
pip install numpy numba scipy transformers soundfile yacs g2p_en jieba pypinyin pypinyin_dict

准备模型文件

强烈推荐用户参考如何下载预训练模型文件的维基页面,尤其遇到问题时。

git lfs install
git lfs clone https://huggingface.co/WangZeJun/simbert-base-chinese WangZeJun/simbert-base-chinese

或者你可以运行:

git clone https://www.modelscope.cn/syq163/WangZeJun.git

推理

  1. 通过简单运行如下命令来下载预训练模型:
git clone https://www.modelscope.cn/syq163/outputs.git
  1. 推理输入文本格式是:<speaker>|<style_prompt/emotion_prompt/content>|<phoneme>|<content>.

    • 例如: 8051|非常开心|<sos/eos> uo3 sp1 l ai2 sp0 d ao4 sp1 b ei3 sp0 j ing1 sp3 q ing1 sp0 h ua2 sp0 d a4 sp0 x ve2 <sos/eos>|我来到北京,清华大学.
  2. 其中的音素(phonemes)可以这样得到:python frontend.py data/my_text.txt > data/my_text_for_tts.txt.

  3. 然后运行:

    TEXT=data/inference/text
    python inference_am_vocoder_joint.py \
    --logdir prompt_tts_open_source_joint \
    --config_folder config/joint \
    --checkpoint g_00140000 \
    --test_file $TEXT

    合成的语音结果在:outputs/prompt_tts_open_source_joint/test_audio.

  4. 或者你可以直接使用交互的网页界面:

    pip install streamlit
    streamlit run demo_page.py

类OpenAI TTS的API

非常感谢 @lewangdev 的相关该工作 #60。通过运行如下命令来完成配置:

pip install fastapi pydub uvicorn[standard] pyrubberband
uvicorn openaiapi:app --reload

Wiki页面

如果遇到问题,或者想获取更多详情,请参考 wiki 页面。

训练

用你自己的数据定制音色已于2023年12月13日发布上线。

路线图和未来的工作

  • 我们未来的计划可以在 ROADMAP 文件中找到。

  • 当前的实现侧重于通过提示控制情绪/风格。它只使用音高、速度、能量和情感作为风格因素,而不使用性别。但是将其更改为样式、音色控制并不复杂,类似于PromptTTS的原始闭源实现。

微信群

欢迎扫描下方左侧二维码加入微信群。商业合作扫描右侧个人二维码。

qrqr

致谢

许可

EmotiVoice是根据Apache-2.0许可证提供的 - 有关详细信息,请参阅许可证文件

交互的网页是根据用户协议提供的。

运行 EmotiVoice 需要两种类型的预训练模型:

第一类是提供超过 2000 种声音的 TTS 模型。
您可以通过下载预训练模型来获取它们。或者,我强烈建议使用以下命令来获取它们,我强烈推荐。

git clone https://www.modelscope.cn/syq163/outputs.git

确保目录结构安排如下:

如果您遇到任何困难,请参阅问题#27或#21寻求帮助。

另一个必需的预训练模型是“simbert-base-chinese”。
您可以使用以下命令获取它:

git lfs install
git lfs clone https://huggingface.co/WangZeJun/simbert-base-chinese WangZeJun/simbert-base-chinese

或者,您可以使用以下命令来获取它:

git clone https://www.modelscope.cn/syq163/WangZeJun.git
作者:Jeebiz  创建时间:2024-06-28 12:57
最后编辑:Jeebiz  更新时间:2025-05-12 09:20