许可协议: cc-by-nc-4.0
标签:
大规模多语言语音(MMS): 英语文本转语音模型
本仓库包含**英语(eng)**文本转语音(TTS)模型检查点。
该模型隶属于Meta的大规模多语言语音项目,旨在为多种语言提供语音技术支持。您可以在MMS语言覆盖概览查看支持语言及其ISO 639-3代码,并在Hugging Face Hub浏览所有MMS-TTS模型:facebook/mms-tts。
MMS-TTS模型已集成至🤗 Transformers库(4.33版本起)。
模型详情
VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种端到端语音合成模型,可根据输入文本序列预测语音波形。该模型由后置编码器、解码器和条件先验组成的条件变分自编码器(VAE)。
基于流的模块(由Transformer文本编码器和多个耦合层构成)预测声学特征谱图,随后通过转置卷积层堆栈进行解码(类似HiFi-GAN声码器)。针对TTS任务中"一对多"的特性(同一文本可对应多种发音方式),模型还包含随机时长预测器,使相同文本能合成不同节奏的语音。
模型通过结合变分下界损失和对抗训练的端到端方式进行训练。为增强表现力,在条件先验分布中应用了标准化流技术。推理时,文本编码经时长预测模块上采样后,通过流模块和HiFi-GAN解码器级联映射为波形。由于时长预测器的随机性,该模型具有非确定性,需固定随机种子才能生成相同语音。
在MMS项目中,每种语言都训练了独立的VITS检查点。
使用方式
MMS-TTS模型已集成至🤗 Transformers库(4.33版本起)。使用前请先安装最新版库:
pip install --upgrade transformers accelerate
运行以下代码进行推理:
from transformers import VitsModel, AutoTokenizer
import torch
model = VitsModel.from_pretrained("facebook/mms-tts-eng")
tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-eng")
text = "这是一段示例英语文本"
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.float().numpy())
或在Jupyter Notebook/Google Colab中直接播放:
from IPython.display import Audio
Audio(output.numpy(), rate=model.config.sampling_rate)
文献引用
本模型由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}
}
许可
本模型采用CC-BY-NC 4.0许可协议。