36,875
stars
+4+-8+-22
5,151
forks
298
watchers
102
prs
889
issues
1
releases
20
discussions
README
实时语音克隆 - 中文/普通话
!mockingbird
English | 中文
DEMO VIDEO | Wiki教程) | 训练教程
特性
🌍 中文 支持普通话并使用多种中文数据集进行测试:aidatatang_200zh, magicdata, aishell3, biaobei, MozillaCommonVoice, data_aishell 等
🤩 PyTorch 适用于 pytorch,已在 1.9.0 版本(最新于 2021 年 8 月)中测试,GPU Tesla T4 和 GTX 2060
🌍 Windows + Linux 可在 Windows 操作系统和 linux 操作系统中运行(苹果系统M1版也有社区成功运行案例)
🤩 Easy & Awesome 仅需下载或新训练合成器(synthesizer)就有良好效果,复用预训练的编码器/声码器,或实时的HiFi-GAN作为vocoder
🌍 Webserver Ready 可伺服你的训练结果,供远程调用
开始
1. 安装要求
1.1 通用配置
按照原始存储库测试您是否已准备好所有环境。
运行工具箱(demo_toolbox.py)需要 Python 3.7 或更高版本 。
安装 PyTorch。
如果在用 pip 方式安装的时候出现 ERROR: Could not find a version that satisfies the requirement torch==1.9.0+cu102 (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2) 这个错误可能是 python 版本过低,3.9 可以安装成功
安装 ffmpeg。
运行pip install -r requirements.txt 来安装剩余的必要包。
这里的环境建议使用 Repo Tag 0.0.1 Pytorch1.9.0 with Torchvision0.10.0 and cudatoolkit10.2 requirements.txt webrtcvad-wheels 因为 requiremants.txt 是在几个月前导出的,所以不适配新版本
安装 webrtcvad pip install webrtcvad-wheels。
或者
- 用conda 或者 mamba 安装依赖
conda env create -n env_name -f env.yml
mamba env create -n env_name -f env.yml
会创建新环境安装必须的依赖. 之后用 conda activate env_name 切换环境就完成了.
env.yml只包含了运行时必要的依赖,暂时不包括monotonic-align,如果想要装GPU版本的pytorch可以查看官网教程。
1.2 M1芯片Mac环境配置(Inference Time)
以下环境按x86-64搭建,使用原生的demo_toolbox.py,可作为在不改代码情况下快速使用的workaround。
如需使用M1芯片训练,因demo_toolbox.py依赖的PyQt5不支持M1,则应按需修改代码,或者尝试使用web.py。
安装PyQt5,参考这个链接
用Rosetta打开Terminal,参考这个链接
用系统Python创建项目虚拟环境
/usr/bin/python3 -m venv /PathToMockingBird/venv
source /PathToMockingBird/venv/bin/activate
升级pip并安装PyQt5
pip install --upgrade pip
pip install pyqt5
安装pyworld和ctc-segmentation
这里两个文件直接pip install的时候找不到wheel,尝试从c里build时找不到Python.h报错
安装pyworld
brew install python 通过brew安装python时会自动安装Python.h
export CPLUS_INCLUDE_PATH=/opt/homebrew/Frameworks/Python.framework/Headers 对于M1,brew安装Python.h到上述路径。把路径添加到环境变量里
pip install pyworld
安装ctc-segmentation
因上述方法没有成功,选择从github clone源码手动编译
git clone https://github.com/lumaku/ctc-segmentation.git 克隆到任意位置
cd ctc-segmentation
source /PathToMockingBird/venv/bin/activate 假设一开始未开启,打开MockingBird项目的虚拟环境
cythonize -3 ctc_segmentation/ctc_segmentation_dyn.pyx
/usr/bin/arch -x86_64 python setup.py build 要注意明确用x86-64架构编译
/usr/bin/arch -x86_64 python setup.py install --optimize=1 --skip-build用x86-64架构安装
安装其他依赖
/usr/bin/arch -x86_64 pip install torch torchvision torchaudio 这里用pip安装PyTorch,明确架构是x86
pip install ffmpeg 安装ffmpeg
pip install -r requirements.txt
运行
参考这个链接
,让项目跑在x86架构环境上
vim /PathToMockingBird/venv/bin/pythonM1
写入以下代码
!/usr/bin/env zsh
mydir=${0:a:h}
/usr/bin/arch -x86_64 $mydir/python "$@"
chmod +x pythonM1 设为可执行文件
如果使用PyCharm,则把Interpreter指向pythonM1,否则也可命令行运行/PathToMockingBird/venv/bin/pythonM1 demo_toolbox.py
2. 准备预训练模型
考虑训练您自己专属的模型或者下载社区他人训练好的模型:
近期创建了知乎专题 将不定期更新炼丹小技巧or心得,也欢迎提问
2.1 使用数据集自己训练encoder模型 (可选)
Top issues
#20保姆级别教程(持续更新各类社区/非官方教程----145 comments · 2021-08-19#10想要支持更多数据集?在这里提建议40 comments · 2021-08-16#423新的ppg模式相关问题29 comments · 2022-03-05#165来贡献模型了,aishell3的24 comments · 2021-10-23#345模型声音问题23 comments · 2022-01-16#765分享合成器模型22 comments · 2022-10-11#314运行demo_toolbox后不能部分功能用不了报错8 comments · 2022-01-04#239分享600kstep模型20 comments · 2021-11-28
Discussions
#1000[NEW RELEASE] Introducing MARS5, open-source, insanely prosodic text-to-speech (TTS) model.0 comments · 2024-06-10#986PydanticImportError: `pydantic:parse_raw_as` has been removed in V2. For further information visit https://errors.pydantic.dev/2.6/u/import-error。运行web.py说Pydantic版本有问题,怎么解决0 comments · 2024-02-02#970请问日志中的Epoch: x/y 是什么意思?是否支持在命令行中指定一个训练步数,训练完成后停止训练?1 comments · 2023-11-21#959I found after added user library for postman API use, the results of voice synthesis are not at all like the user's voice0 comments · 2023-09-18#941请问语音合成中编码,声码,合成器的基本概念是什么?0 comments · 2023-07-28#935master程序运行错误1 comments · 2023-07-10#907ModuleNotFoundError: No module named 'streamlit'1 comments · 2023-05-31#905请问这个项目需要多高的硬件支持0 comments · 2023-05-29