模型简介
模型特点
模型能力
使用案例
🚀 🍵 Matxa-TTS (Matcha-TTS) 加泰罗尼亚语多口音模型
本项目推出了首款多说话人、多方言的神经文本转语音(TTS)模型 🍵 Matxa。它与声码器模型 🥑 alVoCat 协同工作,能够高效生成四种方言的高质量、富有表现力的语音:
- 巴利阿里方言
- 中部方言
- 西北方言
- 瓦伦西亚方言
这两个模型均使用开放数据进行训练。🍵 Matxa 模型可免费用于非商业用途,但用于商业用途时,需要获得语音艺术家的许可。你可以访问 专用空间 聆听这些语音。
🚀 快速开始
📦 安装指南
模型使用开源文本转语音软件 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/espeak-ng/espeak-ng
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
克隆仓库:
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
此外,你可以从以下表格中选择说话人 ID:
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 --speaker_id 3
口音 | 姓名 | 说话人 ID |
---|---|---|
巴利阿里方言 | quim | 0 |
巴利阿里方言 | olga | 1 |
中部方言 | grau | 2 |
中部方言 | elia | 3 |
西北方言 | pere | 4 |
西北方言 | emma | 5 |
瓦伦西亚方言 | lluc | 6 |
瓦伦西亚方言 | gina | 7 |
请注意,根据不同的口音,你应选择合适的文本清理器作为参数,默认使用中部加泰罗尼亚语清理器。
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 --speaker_id 0 --cleaner "catalan_balear_cleaners"
口音 | 清理器 |
---|---|
巴利阿里方言 | catalan_balear_cleaners |
中部方言 | catalan_cleaners(默认) |
西北方言 | catalan_occidental_cleaners |
瓦伦西亚方言 | catalan_valencia_cleaners |
ONNX
我们还发布了模型的 ONNX 版本,你可以通过 OVOS 插件使用它。只需从 pypi 安装插件:
pip install ovos-tts-plugin-matxa-multispeaker-cat
然后进行合成:
from ovos_tts_plugin_matxa_multispeaker_cat import MatxaCatalanTTSPlugin
sent = "Això és una prova de síntesi de veu."
tts = MatxaCatalanTTSPlugin()
tts.get_tts(sent, "test.wav", voice="valencia/gina")
高级用法
训练
请参阅 仓库说明
📚 详细文档
🔧 技术细节
模型描述
🍵 Matxa-TTS 基于 Matcha-TTS,这是一种为文本转语音(TTS)中的快速声学建模而设计的编码器 - 解码器架构。 编码器部分基于文本编码器和音素时长预测,共同预测平均声学特征。 解码器本质上采用了受 Grad-TTS 启发的 U-Net 主干结构,该结构基于 Transformer 架构。在后者中,通过将 2D CNN 替换为 1D CNN,实现了内存消耗的大幅降低和快速合成。
Matxa-TTS 是一个使用最优传输条件流匹配(OT-CFM)训练的非自回归模型。这使得基于常微分方程(ODE)的解码器能够在比使用分数匹配训练的模型更少的合成步骤中生成高质量的输出。
训练详情
训练数据
该模型在 多口音加泰罗尼亚语 语音数据集上进行训练:
数据集 | 语言 | 时长(小时) | 说话人数量 |
---|---|---|---|
LaFrescat | 加泰罗尼亚语 | 3.5 | 8 |
训练过程
Matxa 多口音加泰罗尼亚语 模型是从加泰罗尼亚语 Matxa-base 模型微调而来。这个 Matxa-base 模型是从英语多说话人检查点微调得到的,使用了加泰罗尼亚语 CommonVoice v.16 数据库的 100 小时子集。通过使用 UTMOS 系统选择了这一小部分样本,UTMOS 系统是一种预测平均意见得分(MOS)的指标,该得分通常由人类评估者根据他们对语音质量的主观感知来设定。
嵌入层使用每个口音的加泰罗尼亚语说话人数量(总共 8 个)进行初始化,并保留了原始的超参数。
训练超参数
- 批量大小:32(x2 GPU)
- 学习率:1e-4
- 说话人数量:2
- n_fft:1024
- n_feats:80
- 采样率:22050
- 跳长:256
- 窗长:1024
- f_min:0
- f_max:8000
- 数据统计:
- 梅尔均值:-6578195
- 梅尔标准差:2.538758
- 样本数量:13340
评估
从第 2399 个 epoch 的 TensorBoard 中获得的验证值:
- val_dur_loss_epoch:0.38
- val_prior_loss_epoch:0.97
- val_diff_loss_epoch:2.195
多口音推理分析
这里展示了使用四种口音生成的相同推理的音素对齐频谱图。以下频谱图对应句子 La seva gerra sembla molt antiga。这句话展示了区分加泰罗尼亚语变体的三个语音特点。
在巴利阿里方言和瓦伦西亚方言中,[t] 会发音,而在其他两种方言中则不发音。可以看到,seva 中的 -v- 在中部方言中发音为 [β],而在瓦伦西亚方言中发音为 [w]。此外,还可以观察到 gerra 中的 /ʒ/ 在瓦伦西亚方言中有塞擦音发音 ([d͡ʒ])。
巴利阿里方言推理
中部方言推理
西北方言推理
瓦伦西亚方言推理
预期用途和限制
此模型旨在作为加泰罗尼亚语文本转语音系统的声学特征生成器。它使用加泰罗尼亚语音素化器进行了微调,因此如果将该模型用于其他语言,在将其输出映射到语音波形后,将无法产生可理解的样本。
样本质量可能因说话人而异。这可能是由于模型在学习特定频率时的敏感性,也可能是由于每个说话人的样本质量不同。
如许可证部分所述,这些模型仅可用于非商业目的。任何有商业使用意向的各方需要联系权利持有者,即语音艺术家,以获得其语音的使用许可。更多信息请参阅 附加信息 部分下的许可证部分。
📄 许可证
本项目采用 知识共享署名 - 非商业性使用 4.0 国际许可协议。这些模型可免费用于非商业和研究目的。商业使用仅可通过获得语音艺术家的许可来实现。如需更多信息,请联系 langtech@bsc.es 和 lafrescaproduccions@gmail.com。
引用
如果本代码对您的研究有帮助,请引用以下文献:
@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 巴塞罗那超级计算中心语言技术部门
资助
本工作由加泰罗尼亚政府通过 Aina 项目 推动和资助。
部分模型训练得益于加利西亚超级计算中心 CESGA(Centro de Supercomputación de Galicia)以及 巴塞罗那超级计算中心 在 MareNostrum 5 上提供的计算时间。




