模型概述
模型特點
模型能力
使用案例
🚀 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。




