Irodori-TTS-500M-v3 — Axera AX8850 NPU (axmodel)
日本語 TTS Irodori-TTS-500M-v3(rectified-flow DiT + DACVAE ボコーダ)を
Axera AX8850 NPU 向けに Pulsar2 6.0 で量子化・axmodel 化したもの。
条件付け(テキスト→KVキャッシュ)と duration 予測まで NPU 化しており、推論時に PyTorch も元の model.safetensors も不要(tokenizer のみ使用)。
⚠️ 実機 Axera AX8850(AI Pyramid Pro 等)+ axengine 専用。x86/CUDA では動きません。
パイプライン(全段 NPU)
text ─[tokenize(CPU)]→ ids
└─① cond axmodel ids,mask → 24 text-KV + token_logits(duration)
└─[定数 + duration→t_valid (CPU)]
└─② DiT axmodel ×N rectified-flow サンプリング(CFG, triple-core)
└─[trim]
└─③ DACVAE axmodel latent → 48kHz wav
同梱ファイル
| ファイル | 役割 | 量子化 / コア |
|---|---|---|
cond_textkv_dur.axmodel (161MB) |
① 条件付け: text_encoder + text KV射影 + duration head | W8A16 / NPU1 |
dit_allfcu16_npu3.axmodel (328MB) |
② DiT denoiser(rectified-flow, 可変長 latent_mask, T_max=201) | true-A16(全FC入力U16) / NPU3 triple-core |
dacvae_T201.axmodel (86MB) |
③ DACVAE ボコーダ(T=201, 〜8s, 任意長は trim 運用) | W8A8 / NPU3 |
cond_constants.npz (49KB) |
no_ref の定数(speaker KV / text-branch KV / speaker_mask) | — |
run_npu_full.py |
実機推論スクリプト(全段 NPU, torch/safetensors 不要) | — |
使い方(AX8850, root)
# tokenizer は元リポジトリ Aratako/Irodori-TTS-500M-v3 のものを使用(irodori_tts.tokenizer 経由)
sudo -n PYTHONPATH=/path/to/Irodori-TTS python3 run_npu_full.py \
--text "今日はとても良い天気ですね。" \
--cond cond_textkv_dur.axmodel --constants cond_constants.npz \
--dit dit_allfcu16_npu3.axmodel --dacvae dacvae_T201.axmodel \
--num-steps 16 --seed 0 --out-wav out.wav
- 話者は
--seed(参照音声不要・no_ref 専用)。性別含め振れる。 - t_valid(長さ)は
--t-valid 0(既定)で duration head が自動予測。手動は--t-valid N。 - num-steps: N=16 が品質/速度のスイートスポット(DiT 56ms/call × calls)。
量子化・性能(実機 AX8850 実測)
- DiT: true-A16(全 245 FC 入力を U16)で帯域拡張(95%ロールオフ 1kHz→3kHz)。triple-core で 56ms/call(single 比 ~2x)。
- sim≡NPU 等価: fp32 onnx vs シミュレータで DiT per-step cosine 0.998、DACVAE は W8A8 相応。
- 完全 NPU 化で cold ~23s(PyTorch 2GB ロード ~37s を排除)。常駐化でさらに短縮可。
既知の制約
- no_ref 専用(参照音声によるボイスクローンは非対応。話者は seed で変化)。
- duration 予測が不正確な場合がある: 元モデルの duration head 由来(量子化ではない)で、一部テキストで長さが過大(繰返し)/過小(早口)。
--duration-scale(<1.0 で過大抑制)や--t-valid手動指定で緩和可。 - 音質は PTQ 天井(〜3kHz 帯域、S8 重み量子化の床)。完全透明には QAT/蒸留が必要。
- 長文(〜8s 超)は T_max=201 を超えるためチャンク分割が必要。
ライセンス / 帰属
MIT。本成果物は MIT ライセンスの Aratako/Irodori-TTS-500M-v3(DiT/条件付け)および Aratako/Semantic-DACVAE-Japanese-32dim(ボコーダ)を Axera AX8850 向けに量子化(Pulsar2 6.0)した派生物です。元モデルの作者に帰属します。
Model tree for dj-oyu/Irodori-TTS-500M-v3-AX8850
Base model
Aratako/Irodori-TTS-500M-v2 Finetuned
Aratako/Irodori-TTS-500M-v3