模型简介
模型特点
模型能力
使用案例
🚀 SpeechT5 (TTS任务)
SpeechT5模型在LibriTTS数据集上进行了微调,用于语音合成(文本转语音)。该模型能够将文本高效准确地转换为自然流畅的语音,在多种语音处理场景中具有重要应用价值。
🚀 快速开始
你可以使用🤗 Transformers库在本地运行SpeechT5 TTS。
- 首先安装🤗 Transformers库、sentencepiece、soundfile和datasets(可选):
pip install --upgrade pip
pip install --upgrade transformers sentencepiece datasets[audio]
- 通过
Text-to-Speech
(TTS)管道运行推理。只需几行代码,你就可以通过TTS管道访问SpeechT5模型!
from transformers import pipeline
from datasets import load_dataset
import soundfile as sf
synthesiser = pipeline("text-to-speech", "microsoft/speecht5_tts")
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
# You can replace this embedding with your own as well.
speech = synthesiser("Hello, my dog is cooler than you!", forward_params={"speaker_embeddings": speaker_embedding})
sf.write("speech.wav", speech["audio"], samplerate=speech["sampling_rate"])
- 通过Transformers建模代码运行推理 - 你可以使用处理器 + 生成代码将文本转换为单声道16 kHz语音波形,以进行更精细的控制。
from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
from datasets import load_dataset
import torch
import soundfile as sf
from datasets import load_dataset
processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
inputs = processor(text="Hello, my dog is cute.", return_tensors="pt")
# load xvector containing speaker's voice characteristics from a dataset
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embeddings = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
speech = model.generate_speech(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
sf.write("speech.wav", speech.numpy(), samplerate=16000)
✨ 主要特性
- 统一模态框架:受T5(Text-To-Text Transfer Transformer)在预训练自然语言处理模型中取得成功的启发,提出了统一模态的SpeechT5框架,探索了用于自监督语音/文本表示学习的编码器 - 解码器预训练。
- 多任务优势:广泛的评估表明,所提出的SpeechT5框架在各种口语语言处理任务中具有优越性,包括自动语音识别、语音合成、语音翻译、语音转换、语音增强和说话人识别。
📦 安装指南
安装所需的库:
pip install --upgrade pip
pip install --upgrade transformers sentencepiece datasets[audio]
💻 使用示例
基础用法
from transformers import pipeline
from datasets import load_dataset
import soundfile as sf
synthesiser = pipeline("text-to-speech", "microsoft/speecht5_tts")
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
# You can replace this embedding with your own as well.
speech = synthesiser("Hello, my dog is cooler than you!", forward_params={"speaker_embeddings": speaker_embedding})
sf.write("speech.wav", speech["audio"], samplerate=speech["sampling_rate"])
高级用法
from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
from datasets import load_dataset
import torch
import soundfile as sf
from datasets import load_dataset
processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
inputs = processor(text="Hello, my dog is cute.", return_tensors="pt")
# load xvector containing speaker's voice characteristics from a dataset
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embeddings = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
speech = model.generate_speech(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
sf.write("speech.wav", speech.numpy(), samplerate=16000)
📚 详细文档
模型描述
受T5(Text-To-Text Transfer Transformer)在预训练自然语言处理模型中取得成功的启发,我们提出了一个统一模态的SpeechT5框架,探索了用于自监督语音/文本表示学习的编码器 - 解码器预训练。SpeechT5框架由一个共享的编码器 - 解码器网络和六个特定模态(语音/文本)的预/后网络组成。通过预网络对输入的语音/文本进行预处理后,共享的编码器 - 解码器网络对序列到序列的转换进行建模,然后后网络根据解码器的输出生成语音/文本模态的输出。
利用大规模未标记的语音和文本数据,我们对SpeechT5进行预训练,以学习统一模态的表示,希望提高对语音和文本的建模能力。为了将文本和语音信息对齐到这个统一的语义空间中,我们提出了一种跨模态向量量化方法,该方法将语音/文本状态与潜在单元随机混合,作为编码器和解码器之间的接口。
模型来源
- 论文:SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing
- 仓库:https://github.com/microsoft/SpeechT5/
- 原始权重:https://huggingface.co/mechanicalsea/speecht5-tts
模型微调
参考 此Colab笔记本 了解如何在不同数据集或新语言上对SpeechT5进行TTS微调的示例。
直接使用
你可以使用此模型进行语音合成。请参阅 模型中心 以查找针对你感兴趣的任务进行微调的版本。
训练详情
训练数据
LibriTTS
训练过程
- 预处理:利用大规模未标记的语音和文本数据,我们对SpeechT5进行预训练,以学习统一模态的表示,希望提高对语音和文本的建模能力。
- 训练超参数:
- 精度:[更多信息待补充]
- 机制:[更多信息待补充]
评估
测试数据、因素和指标
- 测试数据:[更多信息待补充]
- 因素:[更多信息待补充]
- 指标:[更多信息待补充]
结果
[更多信息待补充]
模型检查
广泛的评估表明,所提出的SpeechT5框架在各种口语语言处理任务中具有优越性,包括自动语音识别、语音合成、语音翻译、语音转换、语音增强和说话人识别。
环境影响
可以使用 Lacoste等人(2019) 提出的 机器学习影响计算器 来估算碳排放。
- 硬件类型:[更多信息待补充]
- 使用时长:[更多信息待补充]
- 云服务提供商:[更多信息待补充]
- 计算区域:[更多信息待补充]
- 碳排放:[更多信息待补充]
技术规格
模型架构和目标
SpeechT5框架由一个共享的编码器 - 解码器网络和六个特定模态(语音/文本)的预/后网络组成。通过预网络对输入的语音/文本进行预处理后,共享的编码器 - 解码器网络对序列到序列的转换进行建模,然后后网络根据解码器的输出生成语音/文本模态的输出。
计算基础设施
- 硬件:[更多信息待补充]
- 软件:[更多信息待补充]
引用
BibTeX:
@inproceedings{ao-etal-2022-speecht5,
title = {{S}peech{T}5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing},
author = {Ao, Junyi and Wang, Rui and Zhou, Long and Wang, Chengyi and Ren, Shuo and Wu, Yu and Liu, Shujie and Ko, Tom and Li, Qing and Zhang, Yu and Wei, Zhihua and Qian, Yao and Li, Jinyu and Wei, Furu},
booktitle = {Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)},
month = {May},
year = {2022},
pages={5723--5738},
}
术语表
- text-to-speech:合成音频
模型卡片作者
免责声明:发布SpeechT5的团队没有为该模型编写模型卡片,因此此模型卡片由Hugging Face团队编写。
🔧 技术细节
SpeechT5框架由一个共享的编码器 - 解码器网络和六个特定模态(语音/文本)的预/后网络组成。其核心在于利用大规模未标记的语音和文本数据进行预训练,学习统一模态的表示。为了将文本和语音信息对齐到统一的语义空间,提出了跨模态向量量化方法,将语音/文本状态与潜在单元随机混合,作为编码器和解码器之间的接口。
📄 许可证
本模型使用的许可证是 MIT。




