Piper Plus Base Model (Japanese) with WavLM Discriminator & Prosody Features

日本語TTS用の事前学習済みベースモデルです。WavLM Discriminatorによる高品質学習とprosody_features (A1/A2/A3) に対応しています。

Model Details

項目
アーキテクチャ VITS
言語 日本語 (ja)
サンプルレート 22050 Hz
品質 medium
音素タイプ OpenJTalk
話者数 0 (単一話者ファインチューニング用)
prosody_dim 16
WavLM Discriminator 対応
音素数 65 (Issue #204, #207 拡張トークン含む)

Features

WavLM Discriminator

Microsoft WavLMベースの知覚品質判別器を使用して学習されたモデルです。

  • MOS向上: +0.15-0.25
  • 推論速度への影響: なし(学習時のみ使用)

Prosody Features (A1/A2/A3)

OpenJTalkから抽出されるプロソディ特徴量をサポート:

フィールド 意味 値の例
A1 アクセント核からの相対位置 -4, -3, ..., 0, 1, ...
A2 アクセント句内のモーラ位置 1, 2, 3, ...
A3 アクセント句内の総モーラ数 1-10+

拡張音素

  • 疑問詞マーカー (Issue #204): ?!, ?., ?~
  • 文脈依存「ん」バリアント (Issue #207): N_m, N_n, N_ng, N_uvular

Usage

Step 1: Dataset Preprocessing

uv run python -m piper_train.preprocess \
  --input-dir /path/to/your-ljspeech-data \
  --output-dir /path/to/dataset \
  --language ja \
  --dataset-format ljspeech \
  --sample-rate 22050 \
  --single-speaker \
  --phoneme-type openjtalk

Step 2: Add Prosody Features (Recommended)

uv run python add_prosody_features.py \
  --input-dataset /path/to/dataset/dataset.jsonl \
  --output-dir /path/to/dataset-prosody \
  --workers 4

Step 3: Fine-tuning

uv run python -m piper_train \
  --dataset-dir /path/to/dataset-prosody \
  --accelerator gpu \
  --devices 1 \
  --precision 16-mixed \
  --max_epochs 100 \
  --batch-size 32 \
  --checkpoint-epochs 1 \
  --base_lr 1e-4 \
  --disable_auto_lr_scaling \
  --resume_from_checkpoint /path/to/model.ckpt \
  --default_root_dir /path/to/output

Step 4: ONNX Export

WavLMモデルは --stochastic フラグを推奨:

CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.export_onnx \
  --stochastic \
  /path/to/checkpoint.ckpt \
  /path/to/output.onnx

Step 5: Inference

CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \
  --model /path/to/output.onnx \
  --config /path/to/config.json \
  --output-dir /path/to/output \
  --text "こんにちは、今日は良い天気ですね。" \
  --speaker-id 0 --noise-scale 0.5

Recommended Parameters

パラメータ 説明
--base_lr 1e-4 事前学習より低い学習率(過学習防止)
--disable_auto_lr_scaling - 学習率の自動スケーリングを無効化
--max_epochs 50-100 少量データの場合は短め
--batch-size 32 GPUメモリに応じて調整
--noise-scale 0.5 推論時の推奨値(WavLMモデル)

Origin

このベースモデルは20話者WavLMモデル(150エポック学習)から変換されました:

  • 元データセット: moe-speech-20speakers-v2 (60,164発話)
  • 学習設定: WavLM Discriminator有効, prosody_dim=16
  • 話者埋め込み層を削除
  • prosody_dim=16を保持

Files

  • model.ckpt - PyTorch Lightningチェックポイント(WavLM Discriminator重み含む)
  • config.json - モデル設定(65音素マップ、prosody設定等)

Citation

@software{piper_plus,
  title = {Piper Plus: Japanese TTS with VITS, WavLM Discriminator and Prosody Features},
  author = {ayousanz},
  year = {2024},
  url = {https://github.com/ayutaz/piper-plus}
}
Downloads last month
15
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support