什么是 MockingBird
AI拟声: 克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-time
特性
- 🌍 中文 支持普通话并使用多种中文数据集进行测试: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 可伺服你的训练结果,供远程调用
安装 Anacodna
从清华镜像下载: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
搜索: MacOSX-arm64.pkg
并看更新时间,找最新版本。我下的版本为:Anaconda3-2023.03-1-MacOSX-arm64.pkg
,安装时选择仅为当前用户,否则会说版本不兼容不让安装。
安装完成后配置镜像:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
❯ conda info
active environment : base
active env location : /Users/v0/anaconda3
shell level : 1
user config file : /Users/v0/.condarc
populated config files : /Users/v0/.condarc
conda version : 23.3.1
conda-build version : 3.24.0
python version : 3.10.9.final.0
virtual packages : __archspec=1=arm64
__osx=13.3.1=0
__unix=0=0
base environment : /Users/v0/anaconda3 (writable)
conda av data dir : /Users/v0/anaconda3/etc/conda
conda av metadata url : None
channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-arm64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/osx-arm64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
https://repo.anaconda.com/pkgs/main/osx-arm64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/osx-arm64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /Users/v0/anaconda3/pkgs
/Users/v0/.conda/pkgs
envs directories : /Users/v0/anaconda3/envs
/Users/v0/.conda/envs
platform : osx-arm64
user-agent : conda/23.3.1 requests/2.28.1 CPython/3.10.9 Darwin/22.4.0 OSX/13.3.1
UID:GID : 501:20
netrc file : None
offline mode : False
看到这个配置成功。
配置 Conda 工作空间
conda create -n voice
# 中间需要回车确认
conda activate voice
安装 Pytorch
官方文档:https://pytorch.org/get-started/locally/
conda install pytorch torchvision -c pytorch
pip3 install torch torchvision
然后使用 python3
命令输入以下脚本进行测试:
import torch
x = torch.rand(5, 3)
print(x)
安装 FFmpeg
下载: https://ffmpeg.org/download.html#build-mac
下载解压后移动到 bin 目录。比如:
mv ffmpeg ~/anaconda3/bin/
# 测试一下
ffmeg -version
安装项目依赖
使用 Rosetta 打开 Terminal,然后进入该项目目录:
# 替换 PathToMockingBird, 可以用 pwd 命令查看当前目录地址
/usr/bin/python3 -m venv /PathToMockingBird/venv
source /PathToMockingBird/venv/bin/activate
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
,明确架构是x86pip install ffmpeg
安装ffmpegpip 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