本地部署 EmotiVoice易魔声 多音色提示控制TTS
- [EmotiVoice易魔声 介绍](#EmotiVoice易魔声 介绍)
- [ChatGLM3 Github 地址](#ChatGLM3 Github 地址)
- [部署 EmotiVoice](#部署 EmotiVoice)
- 准备模型文件
- 准备预训练模型
- 推理
EmotiVoice易魔声 介绍
EmotiVoice是一个强大的开源TTS引擎,支持中英文双语,包含2000多种不同的音色,以及特色的情感合成功能,支持合成包含快乐、兴奋、悲伤、愤怒等广泛情感的语音。
EmotiVoice提供一个易于使用的web界面,还有用于批量生成结果的脚本接口。
ChatGLM3 Github 地址
https://github.com/netease-youdao/EmotiVoice
部署 EmotiVoice
克隆代码库,
git clone https://github.com/netease-youdao/EmotiVoice
cd EmotiVoice
创建虚拟环境,
conda create -n EmotiVoice python=3.10 -y
conda activate EmotiVoice
使用 pip 安装 pytorch,
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# conda install -y -c "nvidia/label/cuda-12.1.0" cuda-runtime
验证 cuda 可用,
python -c "import torch;print(torch.cuda.is_available());"
使用 pip 安装依赖,
pip install numpy numba scipy transformers==4.26.1 soundfile yacs g2p_en jieba pypinyin
准备模型文件
git lfs install
git clone https://huggingface.co/WangZeJun/simbert-base-chinese WangZeJun/simbert-base-chinese
准备预训练模型
下载预训练模型, 然后运行:
mkdir -p outputs/style_encoder/ckpt
mkdir -p outputs/prompt_tts_open_source_joint/ckpt
将 g_*
, do_*
文件放到outputs/prompt_tts_open_source_joint/ckpt
,将checkpoint_*
放到outputs/style_encoder/ckpt
中.
推理
推理输入文本格式是:<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>|我来到北京,清华大学
.
其中的 speaker 说明,可以参考这个页面。
其中的音素(phonemes)可以这样得到:python frontend.py data/my_text.txt > data/my_text_for_tts.txt
.
然后运行:
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.
或者你可以直接使用交互的网页界面:
pip install streamlit
streamlit run demo_page.py
完结!