Views
No views yet
⚠️ Breaking change (2026-05): このモデルは MB-iSTFT-VITS2 アーキテクチャの新世代版です。piper-plus PR #320 以降のランタイムで動作します。出力形状[B, 1, T]は維持されているため、C++/Rust/C#/Go/WASM ランタイムは修正不要で本モデルを推論できます。
| テキスト | 言語 | 音声 |
|---|---|---|
| こんにちは、つくよみちゃんです。 | JA | sample_ja |
| Hello, how are you today? | EN | sample_en |
| 你好,今天天气很好。 | ZH | sample_zh |
| Hola, como estas hoy? | ES | sample_es |
| Bonjour, comment allez-vous? | FR | sample_fr |
| Ola, como voce esta hoje? | PT | sample_pt |
サンプルは--length-scale 1.5 --noise-scale 0.667で生成。MB-iSTFT 版はデフォルト DP が旧 HiFi-GAN 版より速い発話傾向のため、自然な発話速度に整えるために length-scale を上げています。
| 項目 | 値 |
|---|---|
| アーキテクチャ | VITS (Decoder: MB-iSTFT + PQMF) |
| 言語 | 日本語 (ja), 英語 (en), 中国語 (zh), スペイン語 (es), フランス語 (fr), ポルトガル語 (pt) |
| サンプルレート | 22050 Hz |
| 品質 | medium |
| 音素タイプ | multilingual |
| 音素数 | 173 |
| prosody_dim | 16 |
| 話者数 | 1 (つくよみちゃん) |
| 言語数 | 6 |
| ベースモデル | ayousanz/piper-plus-base (MB-iSTFT 版、571話者、75 epoch スクラッチ) |
| ファインチューニング | 500 epochs, lr=2e-5, freeze-dp |
| 学習データ | つくよみちゃんコーパス (100発話, ~11分) |
| ONNX エクスポート | stochastic + EMA + emb_lang 後処理 + FP16 (38MB) |
| Decoder upsample | (4, 4) × iSTFT(4) × PQMF(4) = 256x |
| メトリック | 旧 HiFi-GAN | MB-iSTFT (本モデル) | 改善 |
|---|---|---|---|
| CPU ONNX p50 (100 phoneme) | 168.2 ms | 76.2 ms | 2.21x 高速化 |
| つくよみちゃん FT 推論 | — | 61.9 ms (RTF 0.046) | — |
| Decoder 単体 | — | — | ~3.6x (論文値と同等) |
| 出力形状 | [B, 1, T] | [B, 1, T] | 変化なし (ランタイム互換) |
| テキスト | 言語 | 音声長 |
|---|---|---|
| こんにちは、つくよみちゃんです。 | JA | 2.31s |
| Hello, how are you today? | EN | 1.16s |
| 你好,今天天气很好。 | ZH | 1.85s |
| Hola, como estas hoy? | ES | 1.09s |
| Bonjour, comment allez-vous? | FR | 1.38s |
| Ola, como voce esta hoje? | PT | 1.67s |
1# 日本語
2CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \
3 --model tsukuyomi-chan-6lang-fp16.onnx \
4 --config config.json \
5 --output-dir ./output \
6 --text "こんにちは、今日は良い天気ですね。" \
7 --language ja-en-zh-es-fr-pt \
8 --speaker-id 0 \
9 --noise-scale 0.667 \
10 --length-scale 1.5
11
12# 英語
13CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \
14 --model tsukuyomi-chan-6lang-fp16.onnx \
15 --config config.json \
16 --output-dir ./output \
17 --text "Hello, how are you today?" \
18 --language ja-en-zh-es-fr-pt \
19 --speaker-id 0 \
20 --noise-scale 0.667 \
21 --length-scale 1.5
22
23# 混合テキスト (コードスイッチング)
24CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \
25 --model tsukuyomi-chan-6lang-fp16.onnx \
26 --config config.json \
27 --output-dir ./output \
28 --text "今日はgood morningですね" \
29 --language ja-en-zh-es-fr-pt \
30 --speaker-id 0 \
31 --noise-scale 0.667 \
32 --length-scale 1.5| パラメータ | 値 | 説明 |
|---|---|---|
--noise-scale | 0.667 | デフォルト推奨値 |
--length-scale | 1.5 | MB-iSTFT 版の自然な発話速度 (1.0 だと早口) |
--speaker-id | 0 | 単一話者 |
--language | ja-en-zh-es-fr-pt | 6 言語自動検出 |
--resume-from-multispeaker-checkpoint でベースモデルからロード
emb_g (571 話者分の話者埋め込み) を自動除去emb_lang に conditioning 分布補正を適用--freeze-dp を自動有効化 (Duration Predictor の catastrophic forgetting 防止)emb_lang[0] (JA) → emb_lang[1:5] (EN/ZH/ES/FR/PT) にコピーして声質統一 (--unify-emb-lang 自動実行)1uv run python -m piper_train \
2 --dataset-dir /path/to/tsukuyomi-dataset \
3 --prosody-dim 16 \
4 --accelerator gpu --devices 1 --precision 32-true \
5 --max_epochs 500 --batch-size 4 --samples-per-speaker 4 \
6 --checkpoint-epochs 50 --quality medium \
7 --base_lr 2e-5 --disable_auto_lr_scaling \
8 --ema-decay 0.9995 \
9 --max-phoneme-ids 400 \
10 --no-wavlm \
11 --resume-from-multispeaker-checkpoint /path/to/base_model.ckpt \
12 --default_root_dir /path/to/outputtsukuyomi-chan-6lang-fp16.onnx - ONNX モデル (38MB, FP16, MB-iSTFT-VITS2, emb_lang 後処理済み)config.json - モデル設定 (173 音素マップ、6 言語)samples/ - サンプル音声 (length_scale=1.5)