--- license: other license_name: tsukuyomi-chan-corpus license_link: https://tyc.rei-yumesaki.net/material/corpus/#terms3 language: - ja - en - zh - es - fr - pt pipeline_tag: text-to-speech tags: - tts - vits - multilingual - japanese - piper - prosody --- # Piper Plus つくよみちゃん (Multilingual 6-Language + Prosody) [つくよみちゃんコーパス](https://tyc.rei-yumesaki.net/material/corpus/)を使用して6言語マルチリンガルベースモデルからファインチューニングした多言語TTSモデルです。 prosody features (A1/A2/A3) に対応し、日本語・英語・中国語・スペイン語・フランス語・ポルトガル語の6言語でつくよみちゃんの声質で音声合成が可能です。 ## Sample Audio | テキスト | 言語 | 音声 | |----------|------|------| | こんにちは、つくよみちゃんです。 | JA | [sample_ja](samples/sample_ja.wav) | | Hello, how are you today? | EN | [sample_en](samples/sample_en.wav) | | 你好,今天天气很好。 | ZH | [sample_zh](samples/sample_zh.wav) | | Hola, como estas hoy? | ES | [sample_es](samples/sample_es.wav) | | Bonjour, comment allez-vous? | FR | [sample_fr](samples/sample_fr.wav) | | Ola, como voce esta hoje? | PT | [sample_pt](samples/sample_pt.wav) | ## Model Details | 項目 | 値 | |------|-----| | アーキテクチャ | VITS | | 言語 | 日本語 (ja), 英語 (en), 中国語 (zh), スペイン語 (es), フランス語 (fr), ポルトガル語 (pt) | | サンプルレート | 22050 Hz | | 品質 | medium | | 音素タイプ | multilingual | | 音素数 | 173 | | prosody_dim | 16 | | 話者数 | 1 (つくよみちゃん) | | 言語数 | 6 | | ベースモデル | [ayousanz/piper-plus-base](https://huggingface.co/ayousanz/piper-plus-base) (6言語マルチリンガル版、571話者) | | ファインチューニング | 500 epochs, lr=2e-5, freeze-dp | | 学習データ | つくよみちゃんコーパス (100発話, ~11分) | | ONNXエクスポート | stochastic + EMA + emb_lang後処理 + FP16 (38MB) | ## Inference Results | テキスト | 言語 | 音声長 | |---------|------|--------| | こんにちは、つくよみちゃんです。 | JA | 3.05s | | Hello, how are you today? | EN | 2.54s | | 你好,今天天气很好。 | ZH | 1.21s | | Hola, como estas hoy? | ES | 2.86s | | Bonjour, comment allez-vous? | FR | 2.11s | | Ola, como voce esta hoje? | PT | 2.24s | ## Usage ### 推論(テキスト直接入力) ```bash # 日本語 CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \ --model tsukuyomi-chan-6lang-fp16.onnx \ --config config.json \ --output-dir ./output \ --text "こんにちは、今日は良い天気ですね。" \ --language ja-en-zh-es-fr-pt \ --speaker-id 0 \ --noise-scale 0.667 # 英語 CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \ --model tsukuyomi-chan-6lang-fp16.onnx \ --config config.json \ --output-dir ./output \ --text "Hello, how are you today?" \ --language ja-en-zh-es-fr-pt \ --speaker-id 0 \ --noise-scale 0.667 # 混合テキスト(コードスイッチング) CUDA_VISIBLE_DEVICES="" uv run python -m piper_train.infer_onnx \ --model tsukuyomi-chan-6lang-fp16.onnx \ --config config.json \ --output-dir ./output \ --text "今日はgood morningですね" \ --language ja-en-zh-es-fr-pt \ --speaker-id 0 \ --noise-scale 0.667 ``` ### 推奨推論パラメータ | パラメータ | 値 | 説明 | |-----------|-----|------| | `--noise-scale` | 0.667 | デフォルト推奨値 | | `--speaker-id` | 0 | 単一話者 | | `--language` | ja-en-zh-es-fr-pt | 6言語自動検出 | ## Training ### ベースモデル [ayousanz/piper-plus-base](https://huggingface.co/ayousanz/piper-plus-base) の6言語マルチリンガルベースモデル(571話者、508,187発話、75 epoch)からファインチューニング。 ### 転移学習方式 1. `--resume-from-multispeaker-checkpoint` でベースモデルからロード - `emb_g` (571話者分の話者埋め込み) を自動除去 - `emb_lang` に conditioning 分布補正を適用 - `--freeze-dp` を自動有効化(Duration Predictor の catastrophic forgetting 防止) 2. 500 epoch ファインチューニング (100発話、lr=2e-5) 3. ONNX エクスポート前に `emb_lang[0]` (JA) → `emb_lang[1:5]` (EN/ZH/ES/FR/PT) にコピーして声質統一 ### 学習コマンド ```bash uv run python -m piper_train \ --dataset-dir /path/to/tsukuyomi-dataset \ --prosody-dim 16 \ --accelerator gpu --devices 1 --precision 32-true \ --max_epochs 500 --batch-size 4 --samples-per-speaker 4 \ --checkpoint-epochs 50 --quality medium \ --base_lr 2e-5 --disable_auto_lr_scaling \ --ema-decay 0.9995 \ --max-phoneme-ids 400 \ --no-wavlm \ --resume-from-multispeaker-checkpoint /path/to/base_model.ckpt \ --default_root_dir /path/to/output ``` ## Files - `tsukuyomi-chan-6lang-fp16.onnx` - ONNXモデル (38MB, FP16, emb_lang後処理済み) - `config.json` - モデル設定 (173音素マップ、6言語) - `samples/` - サンプル音声 ## Credits - **つくよみちゃんコーパス**: [夢前黎](https://tyc.rei-yumesaki.net/) - **Piper TTS**: [rhasspy/piper](https://github.com/rhasspy/piper) ## License ライセンスは、[つくよみちゃんコーパス│声優統計コーパス(JVSコーパス準拠)](https://tyc.rei-yumesaki.net/material/corpus/)に準じます