Skip to content
ModelListedExternal
Download

Piper Plus Base

6言語対応 TTS の事前学習済みベースモデルです。ファインチューニング用のチェックポイントとして提供しています。Decoder は MB-iSTFT (Multi-Band inverse STFT) + PQMF に統一済みで、HiFi-GAN ベースの旧モデルから置き換えられています。prosodyfeatures (A1/A2/A3) に対応しています。

KindOtherVersionRevision ce006e5

Model source

Kind
Other
File size
302 MB
Version
vRevision ce006e5
Updated
Sep 21, 2026
Downloads
217
Tasks
Audio
Source
Hugging Face

Source description

Piper Plus Base Model (Multilingual 6-Language) — MB-iSTFT-VITS2

6言語対応 TTS の事前学習済みベースモデルです。ファインチューニング用のチェックポイントとして提供しています。Decoder は MB-iSTFT (Multi-Band inverse STFT) + PQMF に統一済みで、HiFi-GAN ベースの旧モデルから置き換えられています。prosody_features (A1/A2/A3) に対応しています。

⚠️ Breaking change (2026-05): このモデルは MB-iSTFT-VITS2 アーキテクチャで再学習された新世代版です。旧 HiFi-GAN ベースの ckpt から --resume_from_checkpoint で本モデルにつなぐことは出来ません。逆に本モデルを base にした FT は piper-plus PR #320 以降の最新コードでのみ動作します。詳しくは piper-plus PR #320 / Issue #268。

Model Details

項目値
アーキテクチャVITS (Decoder: MB-iSTFT + PQMF)
言語日本語 (ja), 英語 (en), 中国語 (zh), スペイン語 (es), フランス語 (fr), ポルトガル語 (pt)
サンプルレート22050 Hz
品質medium
音素タイプmultilingual
話者数0 (ファインチューニング用: 元モデルは571話者から学習)
言語数6
prosody_dim16
音素数173
Decoder upsample(4, 4) × iSTFT(4) × PQMF(4) = 256x
学習 epoch75 (スクラッチ学習)

Features

MB-iSTFT-VITS2 Decoder

VITS の Decoder を Multi-Band iSTFT + PQMF に置き換えたバージョン。HiFi-GAN Generator を完全に廃止し、トータルの upsample 倍率 256x を維持しつつ Decoder の計算コストを大幅削減。

メトリック旧 HiFi-GANMB-iSTFT (本モデル)改善
CPU ONNX p50 (100 phoneme)168.2 ms76.2 ms2.21x
Decoder 単体——~3.6x (論文値と同等)
出力形状[B, 1, T][B, 1, T]変化なし (ランタイム互換)

C++/Rust/C#/Go/WASM ランタイム側は 修正不要 で本モデルを使用できます (出力形状互換のため)。

6言語対応

MultilingualPhonemizer により、文内コードスイッチング(言語混合テキスト)に対応:

言語コードlanguage_idPhonemizer
日本語ja0JapanesePhonemizer (pyopenjtalk)
英語en1EnglishPhonemizer (g2p-en)
中国語zh2ChinesePhonemizer (pypinyin)
スペイン語es3SpanishPhonemizer (規則ベース)
フランス語fr4FrenchPhonemizer (規則ベース)
ポルトガル語pt5PortuguesePhonemizer (規則ベース)

Prosody Features (A1/A2/A3)

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

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

拡張音素

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

Usage

シングル話者ファインチューニング (推奨)

# Step 1: データセット前処理
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 multilingual

# Step 2: Prosody Features 追加 (日本語の場合、推奨)
uv run python add_prosody_features.py \
  --input-dataset /path/to/dataset/dataset.jsonl \
  --output-dir /path/to/dataset-prosody \
  --workers 4

# Step 3: ファインチューニング
uv run python -m piper_train \
  --dataset-dir /path/to/dataset-prosody \
  --prosody-dim 16 \
  --accelerator gpu \
  --devices 1 \
  --precision 32-true \
  --max_epochs 500 \
  --batch-size 4 \
  --samples-per-speaker 4 \
  --checkpoint-epochs 50 \
  --base_lr 2e-5 \
  --disable_auto_lr_scaling \
  --ema-decay 0.9995 \
  --max-phoneme-ids 400 \
  --no-wavlm \
  --resume-from-multispeaker-checkpoint /path/to/model.ckpt \
  --default_root_dir /path/to/output

--resume-from-multispeaker-checkpoint は以下を自動的に行います:

  • emb_g (話者埋め込み) の処理
  • emb_lang への conditioning 分布補正
  • --freeze-dp の自動有効化 (Duration Predictor の catastrophic forgetting 防止)

マルチ話者ファインチューニング

uv run python -m piper_train \
  --dataset-dir /path/to/multi-speaker-dataset \
  --prosody-dim 16 \
  --accelerator gpu \
  --devices 4 \
  --precision 32-true \
  --max_epochs 150 \
  --batch-size 20 \
  --samples-per-speaker 2 \
  --base_lr 2e-4 \
  --disable_auto_lr_scaling \
  --ema-decay 0.9995 \
  --max-phoneme-ids 400 \
  --no-wavlm \
  --resume_from_checkpoint /path/to/model.ckpt \
  --default_root_dir /path/to/output

ONNX Export

MB-iSTFT モデルでもエクスポート手順は変わりません (Decoder は ONNX 互換 iSTFT 経由で展開):

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

FP16 変換がデフォルト (モデルサイズ ~50% 削減)。FP32 が必要な場合は --no-fp16 を指定。

推論

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 "こんにちは、今日は良い天気ですね。" \
  --language ja-en-zh-es-fr-pt \
  --speaker-id 0 --noise-scale 0.667

Recommended Parameters

シングル話者ファインチューニング

パラメータ値説明
--base_lr2e-5事前学習の 1/10 (過学習防止)
--max_epochs500小規模データ (100 発話) の場合
--batch-size4小規模データセット向け
--freeze-dp自動--resume-from-multispeaker-checkpoint 使用時
--precision32-trueV100 GPU 推奨 (FP16 は backward 遅延あり)
--no-wavlm-ファインチューニング時は不要

emb_lang 後処理 (シングル話者 FT 後)

シングル話者ファインチューニング後、ONNX エクスポート前に emb_lang[0] を他の全言語スロットにコピーすることを推奨します (export_onnx が自動実行):

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

--unify-emb-lang は num_speakers <= 1 and num_languages > 1 で自動有効化されるので通常は明示不要です。

Origin

このベースモデルは以下のデータから学習されました:

言語話者数発話数ソース
ja2060,148MOE-Speech
en31074,912LibriTTS-R
zh14263,223AISHELL-3 (Apache-2.0)
es63168,374CML-TTS Spanish (CC-BY-4.0)
fr28107,464CML-TTS French (CC-BY-4.0)
pt834,066CML-TTS Portuguese (CC-BY-4.0)
合計571508,187
  • アーキテクチャ: MB-iSTFT-VITS2 (Decoder: Multi-Band inverse STFT + PQMF, upsample (4,4) × 4 × 4 = 256x)
  • 学習設定: 75 epoch, batch-size 20, 4 GPU (V100 16GB), prosody_dim=16
  • gradient steps: ~282K
  • 学習形態: スクラッチ学習 (HiFi-GAN ベースからの転移ではない)
  • emb_g (話者埋め込み) は除去済み、optimizer states は除去済み

Files

  • model.ckpt - PyTorch Lightning チェックポイント (EMA state 含む、emb_g / optimizer 除去済み)
  • config.json - モデル設定 (173 音素マップ、6 言語、prosody 設定、num_speakers=0)
  • voice/mei_normal.htsvoice - OpenJTalk 日本語音素化用 voice ファイル

Citation

@software{piper_plus,
  title = {Piper Plus: Multilingual TTS with VITS, Prosody Features, MB-iSTFT Decoder},
  author = {ayousanz},
  year = {2024},
  url = {https://github.com/ayutaz/piper-plus}
}

References

Sources

1 source
Hugging FacePrimaryVersion ce006e5da7851fdc469887026eeb3f2175e7e080
huggingface.co/ayousanz/piper-plus-base/tree/ce006e5da7851fdc469887026eeb3f2175e7e080

Verified Sep 21

Model artifacts

1 artifact

model.ckpt

ckpt · 302 MB · SHA-256 83c079abc505…216b · Hugging Face

Download file

Source excerpts

2 excerpts

--- license: cc-by-4.0 language: - ja - en - zh - es - fr - pt pipeline_tag: text-to-speech tags: - tts - vits - multilingual - piper - text-to-speech --- # Piper Plus Base Model (Multilingual 6-Language) — MB-iSTFT-VITS2 6言語対応 TTS の事前学習済みベースモデルです。ファインチューニング用のチェックポイントとして提供しています。Decoder は **MB-iSTFT (Multi-Band inverse STFT) + PQMF** に統一済みで、HiFi-GAN ベースの旧モデルから置き換えられています。prosody_features (A1/A2/A3) に対応しています。 > ⚠️ **Breaking change (2026-05)**: このモデルは MB-iSTFT-VITS2 アーキテクチャで再学習された新世代版です。**旧 HiFi-GAN ベースの ckpt から `--resume_from_checkpoint` で本モデルにつなぐことは出来ません**。逆に本モデルを base にした FT は piper-plus PR #320 以降の最新コードでのみ動作します。詳しくは [piper-plus PR #320](https://github.com/ayutaz/piper-plus/pull/320) / [Issue #268](https://github.com/ayutaz/piper-plus/issues/268)。 ## Model Details | 項目 | 値 | |------|-----| | アーキテクチャ | VITS (Decoder: **MB-iSTFT + PQMF**) | | 言語 | 日本語 (ja), 英語 (en), 中国語 (zh), スペイン語 (es), フランス語 (fr), ポルトガル語 (pt) | | サンプルレート | 22050 Hz | | 品質 | medium | | 音素タイプ | multilingual | | 話者数 | 0 (ファインチューニング用: 元モデルは571話者から学習) | | 言語数 | 6 | | **prosody_dim** | **16** | | 音素数 | 173 | | Decoder upsample | `(4, 4) × iSTFT(4) × PQMF(4) = 256x` | | 学習 epoch | 75 (スクラッチ学習) | ## Features ### MB-iSTFT-VITS2 Decoder VITS の Decoder を Multi-Band iSTFT + PQMF に置き換えたバージョン。HiFi-GAN Generator を完全に廃止し、トータルの upsample 倍率 256x を維持しつつ Decoder の計算コストを大幅削減。 | メトリック | 旧 HiFi-GAN | **MB-iSTFT (本モデル)** | 改善 | |-----------|-----------|----------------------|------| | CPU ONNX p50 (100 phoneme) | 168.2 ms | **76.2 ms** | **2.21x** | | Decoder 単体 | — | — | **~3.6x** (論文値と同等) | | 出力形状 | `[B, 1, T]` | `[B, 1, T]` | 変化なし (ランタイム互換) | C++/Rust/C#/Go/WASM ランタイム側は **修正不要** で本モデルを使用できます (出力形状互換のため)。 ### 6言語対応 `MultilingualPhonemizer` により、文内コードスイッチング(言語混合テキスト)に対応: | 言語 | コード | language_id | Phonemizer | |------|--------|-------------|------------| | 日本語 | ja | 0 | JapanesePhonemizer (pyopenjtalk) | | 英語 | en | 1 | EnglishPhonemizer (g2p-en) | | 中国語 | zh | 2 | ChinesePhonemizer (pypinyin) | | スペイン語 | es | 3 | SpanishPhonemizer (規則ベース) | | フランス語 | fr | 4 | FrenchPhonemizer (規則ベース) | | ポルトガル語 | pt | 5 | PortuguesePhonemizer (規則ベース) | ### Prosody Features (A1/A2/A3) OpenJTalk から抽出されるプロソディ特徴量をサポート: | フィールド | 意味 | 値の例 | |----------|------|--------| | A1 | アクセント核からの相対位置 | -4, -3, ..., 0, 1, ... | | A2 | アクセント句内のモーラ位置 | 1, 2, 3, ... | | A3 | アクセント句内の総モーラ数 | 1-10+ | ### 拡張音素 - 疑問詞マーカー: `?!`, `?.`...

Source context: 217 downloads · 10 likes · Pipeline text-to-speech · Library piper · Repo ayousanz/piper-plus-base