🚀 🍵 Matxa-TTS加泰罗尼亚语多说话人模型
本项目基于Matcha-TTS架构,专为加泰罗尼亚语多说话人文本转语音系统设计,能够快速进行声学建模,生成高质量语音。
🚀 快速开始
安装
本模型使用开源文本转语音软件espeak - ng进行训练。包含加泰罗尼亚语音素化器的espeak - ng可以在这里找到。
创建虚拟环境:
python -m venv /path/to/venv
source /path/to/venv/bin/activate
要使用加泰罗尼亚语Matxa - TTS进行训练和推理,你需要编译提供的带有加泰罗尼亚语音素化器的espeak - ng:
git clone https://github.com/projecte-aina/espeak-ng.git
export PYTHON=/path/to/env/<env_name>/bin/python
cd /path/to/espeak-ng
./autogen.sh
./configure --prefix=/path/to/espeak-ng
make
make install
pip cache purge
pip install mecab-python3
pip install unidic-lite
克隆仓库:
git clone -b dev-cat https://github.com/langtech-bsc/Matcha-TTS.git
cd Matcha-TTS
从源代码安装包:
pip install -e .
推理
PyTorch
可以结合加泰罗尼亚语Matxa - TTS进行语音端到端推理。两个模型(加泰罗尼亚语Matxa - TTS和alVoCat)都从HF hub远程加载。
首先,导出以下环境变量以包含已安装的espeak - ng版本:
export PYTHON=/path/to/your/venv/bin/python
export ESPEAK_DATA_PATH=/path/to/espeak-ng/espeak-ng-data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/espeak-ng/lib
export PATH="/path/to/espeak-ng/bin:$PATH"
然后你可以运行推理脚本:
cd Matcha-TTS
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya."
你还可以修改生成样本的长度比例(语速)和温度:
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya." --length_scale=0.8 --temperature=0.7
ONNX
我们还发布了模型的ONNX版本。
训练
整个检查点也被发布以继续训练或微调。请参阅仓库说明。
✨ 主要特性
- 高效架构:基于Matcha - TTS的编码器 - 解码器架构,专为快速声学建模而设计。
- 多说话人支持:能够处理加泰罗尼亚语多说话人的文本转语音任务。
- 低内存消耗:通过将2D CNN替换为1D CNN,实现了内存消耗的大幅降低和快速合成。
- 高质量输出:使用最优传输条件流匹配(OT - CFM)训练,在较少的合成步骤中生成高质量输出。
📦 安装指南
见“快速开始”部分的安装步骤。
💻 使用示例
基础用法
cd Matcha-TTS
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya."
高级用法
python3 matcha_vocos_inference.py --output_path=/output/path --text_input="Bon dia Manel, avui anem a la muntanya." --length_scale=0.8 --temperature=0.7
📚 详细文档
模型描述
🍵 Matxa - TTS基于Matcha - TTS,这是一种为文本转语音中的快速声学建模而设计的编码器 - 解码器架构。编码器部分基于文本编码器和音素持续时间预测,共同预测平均声学特征。解码器本质上具有受Grad - TTS启发的U - Net主干,它基于Transformer架构。在后者中,通过将2D CNN替换为1D CNN,实现了内存消耗的大幅降低和快速合成。
Matxa - TTS是一个使用最优传输条件流匹配(OT - CFM)训练的非自回归模型。这产生了一个基于ODE的解码器,能够在比使用分数匹配训练的模型更少的合成步骤中生成高质量输出。
预期用途和限制
此模型旨在作为加泰罗尼亚语多说话人文本转语音系统的声学特征生成器。它使用加泰罗尼亚语音素化器进行了微调,因此如果将该模型用于其他语言,在将其输出映射到语音波形后可能无法产生可理解的样本。
样本的质量可能因说话人而异。这可能是由于模型学习特定频率的敏感性,也可能是由于每个说话人的样本质量不同。
训练详情
训练数据
该模型在2个加泰罗尼亚语语音数据集上进行训练:
训练过程
加泰罗尼亚语Matcha - TTS 是从英语多说话人检查点微调而来的,该检查点使用VCTK数据集进行训练,并由模型作者提供。
嵌入层使用加泰罗尼亚语说话人的数量(47)进行初始化,并保留了原始超参数。
训练超参数
- 批量大小:32(x2 GPUs)
- 学习率:1e - 4
- 说话人数量:47
- n_fft:1024
- n_feats:80
- 采样率:22050
- 跳长:256
- 窗长:1024
- f_min:0
- f_max:8000
- 数据统计:
- mel_mean:- 6578195
- mel_std:2.538758
- 样本数量:13340
评估
从第2399个epoch的tensorboard获得的验证值:
- val_dur_loss_epoch:0.38
- val_prior_loss_epoch:0.97
- val_diff_loss_epoch:2.195
(请注意,微调从第1864个epoch开始,因为之前的epoch是使用VCTK数据集进行训练的)
引用
如果此代码对你的研究有帮助,请引用以下工作:
@misc{mehta2024matchatts,
title={Matcha-TTS: A fast TTS architecture with conditional flow matching},
author={Shivam Mehta and Ruibo Tu and Jonas Beskow and Éva Székely and Gustav Eje Henter},
year={2024},
eprint={2309.03199},
archivePrefix={arXiv},
primaryClass={eess.AS}
}
附加信息
作者
巴塞罗那超级计算中心的语言技术部门。
联系方式
如需更多信息,请发送电子邮件至 langtech@bsc.es。
版权
版权所有 (c) 2023 巴塞罗那超级计算中心语言技术部门。
许可证
Apache 2.0
资助
这项工作由加泰罗尼亚政府通过Aina项目推动和资助。