モデル概要
モデル特徴
モデル能力
使用事例
🚀 SpeechT5 (TTSタスク)
SpeechT5モデルは、LibriTTSで音声合成(テキスト読み上げ)用にファインチューニングされています。
このモデルは、Junyi Ao、Rui Wang、Long Zhou、Chengyi Wang、Shuo Ren、Yu Wu、Shujie Liu、Tom Ko、Qing Li、Yu Zhang、Zhihua Wei、Yao Qian、Jinyu Li、Furu WeiによるSpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processingで紹介されました。
SpeechT5は、このリポジトリで最初に公開され、元の重みが提供されています。使用されているライセンスはMITです。
🚀 クイックスタート
🤗 Transformersの使用方法
SpeechT5 TTSを🤗 Transformersライブラリを使ってローカルで実行することができます。
- まず、🤗 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)
# この埋め込みを独自のものに置き換えることもできます。
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のモデリングコードを介して推論を実行します。より細かい制御のために、プロセッサ + 生成コードを使用して、テキストをモノラル16kHzの音声波形に変換できます。
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")
# データセットから話者の声の特徴を含むxvectorをロードします
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)
モデルのファインチューニング
別のデータセットまたは新しい言語でTTS用にSpeechT5をファインチューニングする方法の例については、このColabノートブックを参照してください。
直接使用
このモデルは音声合成に使用できます。関心のあるタスクでファインチューニングされたバージョンを探すには、モデルハブを参照してください。
✨ 主な機能
T5(Text-To-Text Transfer Transformer)が事前学習された自然言語処理モデルで成功したことに触発され、自己教師付き音声/テキスト表現学習のためのエンコーダ - デコーダ事前学習を探索する統一モーダルのSpeechT5フレームワークを提案します。SpeechT5フレームワークは、共有エンコーダ - デコーダネットワークと6つのモダリティ固有(音声/テキスト)の事前/事後ネットワークで構成されています。事前ネットワークを介して入力音声/テキストを前処理した後、共有エンコーダ - デコーダネットワークがシーケンス間変換をモデル化し、その後事後ネットワークがデコーダの出力に基づいて音声/テキストモダリティの出力を生成します。
大規模なラベルなし音声とテキストデータを活用して、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)
📚 ドキュメント
モデルの説明
- 開発者: Junyi Ao、Rui Wang、Long Zhou、Chengyi Wang、Shuo Ren、Yu Wu、Shujie Liu、Tom Ko、Qing Li、Yu Zhang、Zhihua Wei、Yao Qian、Jinyu Li、Furu Wei。
- 共有者 [オプション]: Matthijs Hollemans
- モデルタイプ: テキスト読み上げ
- 言語 (NLP): [詳細情報が必要]
- ライセンス: MIT
- ファインチューニング元のモデル [オプション]: [詳細情報が必要]
モデルのソース [オプション]
- リポジトリ: [https://github.com/microsoft/SpeechT5/]
- 論文: [https://arxiv.org/pdf/2110.07205.pdf]
- ブログ記事: [https://huggingface.co/blog/speecht5]
- デモ: [https://huggingface.co/spaces/Matthijs/speecht5-tts-demo]
モデルの検証
広範な評価により、提案されたSpeechT5フレームワークが、自動音声認識、音声合成、音声翻訳、音声変換、音声強化、話者識別などの幅広い音声言語処理タスクで優れていることが示されています。
環境への影響
炭素排出量は、Lacoste et al. (2019)で提示されたMachine Learning Impact calculatorを使用して推定できます。
- ハードウェアタイプ: [詳細情報が必要]
- 使用時間: [詳細情報が必要]
- クラウドプロバイダー: [詳細情報が必要]
- コンピュートリージョン: [詳細情報が必要]
- 排出された炭素量: [詳細情報が必要]
技術仕様 [オプション]
モデルアーキテクチャと目的
SpeechT5フレームワークは、共有エンコーダ - デコーダネットワークと6つのモダリティ固有(音声/テキスト)の事前/事後ネットワークで構成されています。
事前ネットワークを介して入力音声/テキストを前処理した後、共有エンコーダ - デコーダネットワークがシーケンス間変換をモデル化し、その後事後ネットワークがデコーダの出力に基づいて音声/テキストモダリティの出力を生成します。
コンピュートインフラストラクチャ
[詳細情報が必要]
ハードウェア
[詳細情報が必要]
ソフトウェア
[詳細情報が必要]
引用 [オプション]
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チームによって作成されました。
モデルカードの連絡先
[詳細情報が必要]
🔧 技術詳細
トレーニングデータ
LibriTTS
トレーニング手順
前処理 [オプション]
大規模なラベルなし音声とテキストデータを活用して、SpeechT5を事前学習し、統一モーダル表現を学習し、音声とテキストの両方のモデリング能力を向上させることを目指しています。
トレーニングハイパーパラメータ
- 精度: [詳細情報が必要]
- 方式: [詳細情報が必要]
速度、サイズ、時間 [オプション]
[詳細情報が必要]
📄 ライセンス
このモデルはMITライセンスの下で提供されています。




