1 有用
13 下载

中文语音克隆兼中文语音合成系统

文件列表(压缩包大小 14.06M)

免费

概述

注意事项:

  • 这个说明是新版GMW版本的语音克隆框架的说明,使用ge2e(编码器)-mellotron-waveglow的模块(简称GMW),运行更简单,效果更稳定和合成语音更加优质。
  • 基于项目Real-Time-Voice-Cloning改造为中文支持的版本ESV版本的说明见README-ESV,该版本使用encoder-synthesizer-vocoder的模块(简称ESV),运行比较复杂。
  • 需要进入zhrtvc项目的代码子目录【zhrtvc】运行代码。
  • zhrtvc项目默认参数设置是适用于数据目录中的样本数据,仅用于运行通整个流程。
  • 推荐使用mellotron的语音合成器和waveglow的声码器,mellotron设置多种模式适应多种任务使用。

中文语料

包含8个开源数据集,3200个说话人,900小时语音,1300万字

合成样例

https://github.com/KuangDD/zhrtvc/tree/master/data/files/examples

目录介绍

zhrtvc

代码相关的说明详见zhrtvc目录下的readme文件。

models

预训练的模型在百度网盘下载,下载后解压,替换models文件夹即可。

data

语料样例,包括语音和文本对齐语料。

注意:
  • 该语料样例用于测试跑通模型,数据量太少,不可能使得模型收敛,即不会训练出可用模型。 在测试跑通模型情况下,处理自己的数据为语料样例的格式,用自己的数据训练模型即可。
  • 该存储库是通过实时工作的声码器实现从说话者验证到多说话者语音合成的转换学习(SV2TTS)的实现。

代码说明

使用指引

主要做语音合成器Mellotron,声码器WaveGlow。 新版GMW版本的语音克隆框架,用ge2e(编码器)-mellotron-waveglow的模块(简称GMW),运行更简单,效果更稳定和合成语音更加优质。 旧版ESV版本是基于项目的Real-Time-Voice-Cloning改造为中文支持的版本,使用encoder-synthesizer-vocoder的模块(简称ESV),运行比较复杂。 建议使用GMW版本开发,本项目重点维护GMW版。

容器环境

仅限基于ubuntu18.04,python环境是python3.7版本,用anaconda的环境。必要依赖已经安装好,TensorFlow和Torch可以根据自己的实际情况安装。

# 执行路径为Dockerfile文件所在目录的路径
# 构建镜像
sudo docker build -t ubuntu/zhrtvc .

# 打开交互环境的容器
# 用-v参数设置挂载数据路径
sudo docker run -it -v [current absulte dir path]:/home/zhrtvc ubuntu/zhrtvc

安装依赖环境

建议用zhrtvc / makefile.py来安装依赖包,如果有依赖包没有成功安装,再单独处理不能成功安装的依赖包。 执行: python makefile.py 或者: python makefile.py [requirement.txt的路径]

注意:

  • GMW版本的依赖:requirements_gmw.txt
  • ESV版本的依赖:requirements_esv.txt
  • 全部版本适用的依赖:requirements.txt

语音合成器mellotron

处理语料

生成用于训练mellotron的数据。

  • 语料格式
  • metadata.csv 一行描述一个音频文件。 每一行的数据格式: 音频文件相对路径\ t文本内容\ n 例如: aishell / S0093 / BAC009S0093W0368.mp3有着对美和品质感执着的追求 注意: 文本可以是汉字,拼音,汉字可以是分词后的汉字序列。

训练mellotron模型

用处理好的数据训练mellotron的模型。

执行:

python mellotron_train.py

说明:

usage: mellotron_train.py [-h] [-i INPUT_DIRECTORY] [-o OUTPUT_DIRECTORY]
                          [-l LOG_DIRECTORY] [-c CHECKPOINT_PATH]
                          [--warm_start] [--n_gpus N_GPUS] [--rank RANK]
                          [--group_name GROUP_NAME]
                          [--hparams_json HPARAMS_JSON]
                          [--hparams_level HPARAMS_LEVEL] [--cuda CUDA]

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT_DIRECTORY, --input_directory INPUT_DIRECTORY
                        directory to save checkpoints
  -o OUTPUT_DIRECTORY, --output_directory OUTPUT_DIRECTORY
                        directory to save checkpoints
  -l LOG_DIRECTORY, --log_directory LOG_DIRECTORY
                        directory to save tensorboard logs
  -c CHECKPOINT_PATH, --checkpoint_path CHECKPOINT_PATH
                        checkpoint path
  --warm_start          load model weights only, ignore specified layers
  --n_gpus N_GPUS       number of gpus
  --rank RANK           rank of current gpu
  --group_name GROUP_NAME
                        Distributed group name
  --hparams_json HPARAMS_JSON
                        comma separated name=value pairs
  --hparams_level HPARAMS_LEVEL
                        hparams scale
  --cuda CUDA           设置CUDA_VISIBLE_DEVICES

注意: 如果多个数据一起用,可以用绝对路径表示,汇总到一个metadata.csv文件,便于训练。

应用mellotron模型。

执行:
python mellotron_inference.py

说明:
用法:mellotron_inference.py [-h] [-m CHECKPOINT_PATH]
                              [--is_simple IS_SIMPLE] [-s SPEAKER_PATH]
                              [-a AUDIO_PATH] [-t TEXT_PATH] [-o OUT_DIR]
                              [-p PLAY] [--n_gpus N_GPUS]
                              [--hparams_path HPARAMS_PATH]
                              [-e ENCODER_MODEL_FPATH]
                              [--save_model_path SAVE_MODEL_PATH]
                              [--CUDA CUDA]

可选参数:
  -h,--help显示此帮助消息并退出
  -m CHECKPOINT_PATH,--checkpoint_path CHECKPOINT_PATH
                        模型路径。
  --is_simple IS_SIMPLE
                        是否简易模式。
  -s SPEAKER_PATH,--speaker_path SPEAKER_PATH
                        显示人映射表路径。
  -a AUDIO_PATH,--audio_path AUDIO_PATH
                        参考音频路径。
  -t TEXT_PATH,-text_path TEXT_PATH
                        文本路径。
  -o OUT_DIR,--out_dir OUT_DIR
                        保存合成的数据路径。
  -p PLAY,-​​-play PLAY是否合成语音后自动播放语音。
  --n_gpus N_GPUS gpu数
  --hparams_path HPARAMS_PATH
                        逗号分隔的名称=值对
  -e ENCODER_MODEL_FPATH,--encoder_model_fpath ENCODER_MODEL_FPATH
                        路径您训练有素的编码器模型。
  --save_model_path SAVE_MODEL_PATH
                        保存模型为可以直接torch.load的格式
  --cuda CUDA设置CUDA_VISIBLE_DEVICES

语音合成器waveglow

处理语料

生成用于训练waveglow的数据。 方法同处理mellotron的数据方法。 因为训练声码器只需要音频即可,不需要文本和适当人的标注,故可以任意指定文本和适当的人,格式如训练mellotron的数据格式即可。

训练waveglow模型。
执行:
python waveglow_train.py

说明:
usage: waveglow_train.py [-h] [-c CONFIG] [-r RANK] [-g GROUP_NAME]
                         [--cuda CUDA]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        JSON file for configuration
  -r RANK, --rank RANK  rank of process for distributed
  -g GROUP_NAME, --group_name GROUP_NAME
                        name of group for distributed
  --cuda CUDA           Set CUDA_VISIBLE_DEVICES
应用waveglow模型。
执行:
python waveglow_inference.py

说明:
usage: waveglow_train.py [-h] [-c CONFIG] [-r RANK] [-g GROUP_NAME]
                         [--cuda CUDA]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        JSON file for configuration
  -r RANK, --rank RANK  rank of process for distributed
  -g GROUP_NAME, --group_name GROUP_NAME
                        name of group for distributed
  --cuda CUDA           Set CUDA_VISIBLE_DEVICES

(base) E:\github-kuangdd\zhrtvc\zhrtvc>python waveglow_inference.py --help
usage: waveglow_inference.py [-h] [-w WAVEGLOW_PATH] [--is_simple IS_SIMPLE]
                             [-i INPUT_PATH] [-o OUTPUT_PATH] [-c CONFIG_PATH]
                             [--kwargs KWARGS] [--cuda CUDA]
                             [--save_model_path SAVE_MODEL_PATH]

optional arguments:
  -h, --help            show this help message and exit
  -w WAVEGLOW_PATH, --waveglow_path WAVEGLOW_PATH
                        Path to waveglow decoder checkpoint with model
  --is_simple IS_SIMPLE
                        是否简易模式。
  -i INPUT_PATH, --input_path INPUT_PATH
  -o OUTPUT_PATH, --output_path OUTPUT_PATH
  -c CONFIG_PATH, --config_path CONFIG_PATH
  --kwargs KWARGS       Waveglow kwargs json
  --cuda CUDA           Set CUDA_VISIBLE_DEVICES
  --save_model_path SAVE_MODEL_PATH
                        Save model for torch load

参考项目

实时语音克隆 此存储库是一个从语音验证到多说话者文本到语音合成(SV2TTS)的迁移学习的实现,其语音编码器可以实时工作 SV2TTS是一个三阶段的深度学习框架,它允许从几秒钟的音频中创建语音的数字表示,并使用它来调节经过训练的文本到语音模型,以推广到新的语音。

结果展示

转载自:https://github.com/KuangDD/zhrtvc

理工酷提示:

如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈

评论(0)

0/250