PortaSpeech 项目介绍
PortaSpeech 是一个基于 PyTorch 的项目,旨在提供便携且高质量的文本到语音合成(TTS)技术。该项目包含多个模块,实现简便并支持灵活的控制和定制,以适应多样的应用场景。
项目概述
PortaSpeech 是一个生成式文本到语音的系统,由多个模块组成,这些模块在设计上考虑到了模型的尺寸大小和性能的平衡。标准模型大小包括正常版本及小型版本,符合不同的设备和计算资源需求。
语音示例
用户可以在项目的音频示例页面听取实际的合成效果,以便对系统生成的语音质量有初步的了解。
快速开始
PortaSpeech 项目支持快速的安装和使用,通过简单的命令行操作,用户可轻松上手。
依赖项安装
安装项目依赖的 Python 包,只需运行以下命令:
pip3 install -r requirements.txt
对于 Docker 用户,项目还提供了 Dockerfile
以便更快速地部署环境。
语音合成
项目提供单发和批量合成功能。在使用之前,需要从提供的链接下载预训练模型,并放置在 output/ckpt/DATASET/
目录。单发合成命令如下:
python3 synthesize.py --text "YOUR_DESIRED_TEXT" --restore_step RESTORE_STEP --mode single --dataset DATASET
生成的语音文件会存储在 output/result/
目录。
批量合成
项目同样支持批处理合成,用户可通过以下命令一次性合成大量文本对应的语音:
python3 synthesize.py --source preprocessed_data/DATASET/val.txt --restore_step RESTORE_STEP --mode batch --dataset DATASET
发音控制
控制合成语音的语速功能是 PortaSpeech 的一大特色,可通过指定持续时间比例实现。例如,为了加快语速20%,可以设置:
python3 synthesize.py --text "YOUR_DESIRED_TEXT" --restore_step RESTORE_STEP --mode single --dataset DATASET --duration_control 0.8
数据预处理与训练
PortaSpeech 支持单一说话人数据集,如 LJSpeech。在数据预处理过程中,使用 Montreal Forced Aligner 来对齐发音与音素序列。
以下命令用于数据预处理:
python3 prepare_align.py --dataset DATASET
运行以上命令后,再执行以下命令进行预处理:
python3 preprocess.py --dataset DATASET
模型训练
完成数据准备后,通过下面的命令开始模型训练:
python3 train.py --dataset DATASET
可选添加 --use_amp
参数来使用自动混合精度,以提高训练效率。
可视化工具
通过运行以下命令启用 TensorBoard,可在本地查看训练过程中生成的损失曲线、谱图以及音频等信息:
tensorboard --logdir output/log
其他注意事项
PortaSpeech 支持 HiFi-GAN 和 MelGAN 作为声码器。为了改善字音对齐,PortaSpeech 还提供了两种辅助损失选项:"ctc" 和 "dga"。默认情况下,使用 "dga" 可以在字音对齐强度和输出质量间取得平衡。
项目引用
用户在使用 PortaSpeech 项目时,可以通过 在GitHub项目页面上的 "Cite this repository" 功能进行学术引用。