🚀 Parler-TTS Mini v1 ft. ParaSpeechCaps-Base
Parler-TTS Mini v1をParaSpeechCapsデータセットの人間によるアノテーションが行われたサブセットでファインチューニングした、スタイル制御可能なテキスト-to-speechモデルです。
このモデルは、parler-tts/parler-tts-mini-v1 を、ParaSpeechCaps データセットの人間によるアノテーションが行われたBaseサブセットでファインチューニングすることで作成されました。これにより、テキスト形式のスタイルプロンプト(例:'A male speaker's speech is distinguished by a slurred articulation, delivered at a measured pace in a clear environment.')を使用して、豊富なスタイル(ピッチ、リズム、明瞭さ、感情など)を制御しながら音声を生成できるTTSモデルを実現します。
ParaSpeechCaps全体でファインチューニングされた改良版モデルについては、ajd12342/parler-tts-mini-v1-paraspeechcaps をご覧ください。
ParaSpeechCaps (PSC) は、音声発話に対して豊富なスタイルアノテーションを提供する大規模なデータセットです。このデータセットは、話者レベルの固有スタイルタグと発話レベルの状況スタイルタグを含む59種類のスタイルタグをサポートしています。人間によるアノテーションが行われたサブセットParaSpeechCaps-Baseと、自動的にアノテーションが行われた大規模なサブセットParaSpeechCaps-Scaledで構成されています。オフザシェルフのテキストと音声の埋め込みモデル、分類器、およびオーディオ言語モデルを組み合わせた独自のパイプラインにより、このような多様なスタイルタグに対して初めて自動的に豊富なタグアノテーションを拡張することができます。
詳細については、論文、コードベース、およびデモサイト をご覧ください。
ライセンス: CC BY-NC SA 4.0
📦 インストール
このリポジトリはPython 3.11 (conda create -n paraspeechcaps python=3.11
) でテストされていますが、他のバージョンでも動作する可能性があります。
git clone https://github.com/ajd12342/paraspeechcaps.git
cd paraspeechcaps/model/parler-tts
pip install -e .[train]
💻 使用例
基本的な使用法
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model_name = "ajd12342/parler-tts-mini-v1-paraspeechcaps-only-base"
guidance_scale = 1.5
model = ParlerTTSForConditionalGeneration.from_pretrained(model_name).to(device)
description_tokenizer = AutoTokenizer.from_pretrained(model_name)
transcription_tokenizer = AutoTokenizer.from_pretrained(model_name, padding_side="left")
input_description = "In a clear environment, a male voice speaks with a sad tone.".replace('\n', ' ').rstrip()
input_transcription = "Was that your landlord?".replace('\n', ' ').rstrip()
input_description_tokenized = description_tokenizer(input_description, return_tensors="pt").to(model.device)
input_transcription_tokenized = transcription_tokenizer(input_transcription, return_tensors="pt").to(model.device)
generation = model.generate(input_ids=input_description_tokenized.input_ids, prompt_input_ids=input_transcription_tokenized.input_ids, guidance_scale=guidance_scale)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("output.wav", audio_arr, model.config.sampling_rate)
ASRベースの選択を含む完全な推論スクリプトやその他のスクリプトについては、コードベース を参照してください。
📄 ライセンス
このモデル、データセット、およびリポジトリは CC BY-NC SA 4.0 ライセンスの下で提供されています。
📚 引用
このモデル、データセット、またはリポジトリを使用する場合は、以下のように引用してください。
@misc{diwan2025scalingrichstylepromptedtexttospeech,
title={Scaling Rich Style-Prompted Text-to-Speech Datasets},
author={Anuj Diwan and Zhisheng Zheng and David Harwath and Eunsol Choi},
year={2025},
eprint={2503.04713},
archivePrefix={arXiv},
primaryClass={eess.AS},
url={https://arxiv.org/abs/2503.04713},
}
📋 モデル情報
属性 |
详情 |
ベースモデル |
parler-tts/parler-tts-mini-v1 |
言語 |
en |
ライブラリ名 |
transformers |
パイプラインタグ |
text-to-speech |
ライセンス |
CC BY-NC SA 4.0 |