はじめに
Parler-TTSは、Hugging Face社によって開発された、高品質で自然な音声を生成するためのオープンソースの音声合成(TTS)モデルライブラリです。Parler-TTSは、論文 "Natural language guidance of high-fidelity text-to-speech with synthetic "の研究成果に基づいています。Parler-TTSは、論文「Natural language guidance of high-fidelity text-to-speech with synthetic annotations(合成アノテーションを用いた高忠実度音声合成の自然言語ガイダンス)」の研究成果に基づいており、データセット、前処理、学習コード、重みのすべてが公開されている完全なオープンソースです。
機能一覧
- 高品質スピーチ生成複数の話者スタイルをサポートし、自然で滑らかな音声を生成します。
- オープンソースすべてのコードとモデルのウエイトは、地域社会の発展と改善のために一般に公開されている。
- 軽量な依存関係インストールも使用も簡単で、依存関係もほとんどありません。
- 複数のモデル・バージョン例えば、Parler-TTS MiniとParler-TTS Largeです。
- クイック・ジェネレーションSDPAとフラッシュ・アテンション2に対応し、生成速度を最適化。
- データセットとウェイト豊富なデータセットと訓練済みモデルの重みを提供し、訓練と微調整を容易にします。
ヘルプの使用
設置プロセス
- Python環境がインストールされていることを確認する。
- Parler-TTSライブラリをインストールするには、以下のコマンドを使用します:
pip install git+https://github.com/huggingface/parler-tts.git
- アップル・シリコン・ユーザーの場合は、以下のコマンドを実行してbfloat16をサポートする:
pip3 install --pre torch torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
使用方法
ランダムスピーチの生成
- 必要なライブラリをインポートする:
インポートトーチ
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
sf としてサウンドファイルをインポート
- モデルとスプリッターをロードする:
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-v1").to(device)
tokeniser = AutoTokenizer.from_pretrained("parler-tts/parler-tts-mini-v1")
- テキストを入力し、音声を生成します:
prompt = "やあ、ご機嫌いかが?"
description = "女性の話し手が、少し表情豊かで生き生きとしたスピーチを、適度なスピードと ピッチ."
inputs = tokeniser(prompt, return_tensors="pt").to(device)
outputs = model.generate(**inputs, description=description)
sf.write("output.wav", outputs.cpu().numpy(), 22050)
特定のスピーカーのスタイルでスピーチを作成する
- 特定のスピーカーのスタイルを使った説明:
description = "深い声とゆっくりとしたテンポの男性スピーカー"
inputs = tokeniser(prompt, return_tensors="pt").to(device)
outputs = model.generate(**inputs, description=description)
sf.write("output_specific.wav", outputs.cpu().numpy(), 22050)
トレーニングモデル
- データセットをダウンロードして準備する。
- モデルのトレーニングは、提供されたトレーニングコードを使用して実行されます:
python train.py --dataset_path /path/to/dataset --output_dir /path/to/output
最適化された推論
- SDPAとFlash Attention 2を使用して最適化:
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-v1", use_flash_attention=True).to(device)