🚀 大规模多语言语音 (MMS):提格雷尼亚语文本转语音
本仓库包含提格雷尼亚语(tir) 的文本转语音(TTS)模型检查点。该项目旨在为多种语言提供语音技术,解决了不同语言在语音技术方面的应用难题,为多语言交流和应用提供了有力支持。
🚀 快速开始
MMS-TTS 从 🤗 Transformers 库的 4.33 版本起开始支持。若要使用此检查点,需先安装该库的最新版本:
pip install --upgrade transformers accelerate
然后,使用以下代码片段进行推理:
from transformers import VitsModel, AutoTokenizer
import torch
model = VitsModel.from_pretrained("facebook/mms-tts-tir")
tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-tir")
text = "some example text in the Tigrigna language"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
output = model(**inputs).waveform
生成的波形可以保存为 .wav
文件:
import scipy
scipy.io.wavfile.write("techno.wav", rate=model.config.sampling_rate, data=output)
或者在 Jupyter Notebook / Google Colab 中展示:
from IPython.display import Audio
Audio(output, rate=model.config.sampling_rate)
⚠️ 重要提示
对于此检查点,输入文本必须先使用 uroman 工具转换为拉丁字母。
✨ 主要特性
本项目基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)模型,它是一种端到端的语音合成模型,可根据输入的文本序列预测语音波形。其具有以下特点:
- 采用条件变分自编码器(VAE),由后验编码器、解码器和条件先验组成。
- 基于流的模块预测一组基于频谱图的声学特征,该模块由基于 Transformer 的文本编码器和多个耦合层组成。
- 频谱图使用一组转置卷积层进行解码,风格类似于 HiFi - GAN 声码器。
- 包含随机持续时间预测器,允许模型从相同的输入文本合成具有不同节奏的语音。
- 模型通过变分下界和对抗训练的损失组合进行端到端训练。
- 为提高模型的表达能力,对条件先验分布应用了归一化流。
- 由于持续时间预测器的随机性,模型具有非确定性,因此需要固定种子才能生成相同的语音波形。
📦 安装指南
要使用此检查点,需先安装 🤗 Transformers 库的最新版本:
pip install --upgrade transformers accelerate
💻 使用示例
基础用法
from transformers import VitsModel, AutoTokenizer
import torch
model = VitsModel.from_pretrained("facebook/mms-tts-tir")
tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-tir")
text = "some example text in the Tigrigna language"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
output = model(**inputs).waveform
高级用法
将生成的波形保存为 .wav
文件:
import scipy
scipy.io.wavfile.write("techno.wav", rate=model.config.sampling_rate, data=output)
或者在 Jupyter Notebook / Google Colab 中展示:
from IPython.display import Audio
Audio(output, rate=model.config.sampling_rate)
🔧 技术细节
VITS 是一种端到端的语音合成模型,它基于输入的文本序列预测语音波形。它是一个条件变分自编码器(VAE),由后验编码器、解码器和条件先验组成。基于流的模块预测一组基于频谱图的声学特征,该模块由基于 Transformer 的文本编码器和多个耦合层组成。频谱图使用一组转置卷积层进行解码,风格类似于 HiFi - GAN 声码器。由于文本转语音问题的一对多性质,即相同的文本输入可以有多种发音方式,模型还包含一个随机持续时间预测器,允许模型从相同的输入文本合成具有不同节奏的语音。
模型通过变分下界和对抗训练的损失组合进行端到端训练。为提高模型的表达能力,对条件先验分布应用了归一化流。在推理过程中,文本编码根据持续时间预测模块进行上采样,然后通过流模块和解码器的级联映射到波形。由于持续时间预测器的随机性,模型具有非确定性,因此需要固定种子才能生成相同的语音波形。对于 MMS 项目,为每种语言单独训练一个 VITS 检查点。
📄 许可证
该模型采用 CC - BY - NC 4.0 许可证。
📚 详细文档
BibTex 引用
该模型由 Meta AI 的 Vineel Pratap 等人开发。如果使用该模型,请考虑引用 MMS 论文:
@article{pratap2023mms,
title={Scaling Speech Technology to 1,000+ Languages},
author={Vineel Pratap and Andros Tjandra and Bowen Shi and Paden Tomasello and Arun Babu and Sayani Kundu and Ali Elkahky and Zhaoheng Ni and Apoorv Vyas and Maryam Fazel-Zarandi and Alexei Baevski and Yossi Adi and Xiaohui Zhang and Wei-Ning Hsu and Alexis Conneau and Michael Auli},
journal={arXiv},
year={2023}
}