English | 日本語 | 中文 | Français | 한국어 | Español | Português | Deutsch
パッケージ:
🔑 唯一の MIT ライセンス Piper フォーク — オリジナルの rhasspy/piper は 2025年10月にアーカイブ済み。OHF-Voice/piper1-gpl は GPL-3.0 に移行。piper-plus は espeak-ng に依存しない唯一の MIT 互換フォークです。独自実装の G2P で8言語 (JA/EN/ZH/KO/ES/FR/PT/SV) に対応し、商用利用・組込み利用に適しています。
📢 v2.0.0 Breaking changes: Docker 既定イメージは CUDA 12.8 + Ubuntu 24.04 + Python 3.13 (host NVIDIA driver R570+ 必須)。学習は torch 2.11.0 + CUDA 12.8、TF32 + bf16-mixed が既定です。torch 2.2 製 checkpoint の resume は非対応です。Python の import / CLI はpiper_plus/piper-plusに変更されました。1.13.0 から更新する場合はpip install --upgrade "piper-plus==2.0.0"を実行してください。詳細: 移行ガイド。
高速・高品質なニューラルテキスト音声合成 (TTS) システム。VITS アーキテクチャを採用し、日本語・英語・中国語・韓国語・スペイン語・フランス語・ポルトガル語・スウェーデン語の8言語マルチスピーカー音声合成に対応。Piper のフォークで、日本語対応・音質向上・学習機能を大幅に強化しています。
Hugging Face デモ | WebAssembly デモ (ブラウザで動作、サーバー不要)
目次
ベンチマーク
計測環境: Intel Xeon E5-2650 v4 @ 2.20GHz / 48 cores / Linux x86_64 / Python 3.12 / ONNX Runtime 1.24
テスト文: "Hello, how are you doing today?" (英語, 25 音素)
計測パラメータ: warmup 5 回 / 計測 30 回 (intra-op threads = auto)
使用モデル:
> - piper-plus: 6lang MB-iSTFT 75epoch ONNX (PR #320 で導入された統一 Decoder)
- Piper 本家: en_US-lessac-medium (rhasspy/piper-voices v1.0.0)
- sherpa-onnx: vits-piper-en_US-amy-low (k2-fsa リリース)
> 再現: uv run python scripts/benchmark.py --model --config --language en --text "Hello, how are you doing today?" --n-warmup 5 --n-runs 30 --format markdown
| システム | RTF ↓ | Latency P50 (ms) | サイズ (MB) | RAM (MB) | 初回起動 (ms) | パラメータ | 言語数 | ライセンス | |---------|-------|------------------|-----------|---------|-------------|----------|--------|----------| | piper-plus (MB-iSTFT) | 0.078 | 27 | 38 | 208 | 1633 | 19.6 M | 8 | MIT | | Piper 本家 (archived) | 0.066 | 35 | 60 | 185 | 2510 | 15.7 M | 1/model | MIT | | sherpa-onnx (VITS Piper-fmt) | 0.075 | 53 | 60 | 202 | 2554 | 15.6 M | 1/model | Apache-2.0 | | piper1-gpl (OHF fork) † | 0.06 | — | 75 | 150 | 400 | — | 1/model | GPL-3.0 | | Kokoro-82M † | 0.12 | — | 320 | 450 | 800 | — | 1 | Apache-2.0 | | eSpeak-NG † | 0.001 | — | 2 | 15 | 10 | — | 100+ | GPL-3.0 |
注: RTF (Real-Time Factor) は低いほど高速。Latency P50 は単発推論の中央値で「実際の応答性」を直接表す指標。piper-plus は MB-iSTFT 統一 Decoder により Latency P50 27ms と最速 (Piper 本家 35ms 比 -23%、sherpa-onnx 53ms 比 -49%) 、かつモデルサイズも 38MB と最小クラス。旧 piper-plus HiFi-GAN ベース (P50 43.3ms) と比べても -38% の改善。
> † がついた行は本 PR では再計測していません (piper1-gplは piper 本家と同一アーキテクチャ・ONNX 形式のため Piper 本家行とほぼ同等になる見込み。Kokoro-82Mは別アーキテクチャ、eSpeak-NGは非ニューラル CLI のためscripts/benchmark.pyのテンソル契約に乗らず、別ハーネスが必要)。これらの値は前回計測時 (Apple M2 Max) のもの。
マルチランタイム RTF ベンチマーク (最新値)
Python / Rust / Go / C# / C++ / WASM の 6 ランタイムを multilingual-test-medium.onnx で横断測定した最新の RTF・レイテンシ結果を公開しています。dev ブランチへのマージのたびに自動更新されます。
主要機能
音声合成
- 8言語対応 — 日本語・英語・中国語・スペイン語・フランス語・ポルトガル語・スウェーデン語・韓国語 (ja=0, en=1, zh=2, es=3, fr=4, pt=5, sv=6, ko=7) ※学習済みモデルは6言語 (JA/EN/ZH/ES/FR/PT)
- 日本語 TTS — OpenJTalk統合、韻律情報 (A1/A2/A3)、疑問詞マーカー (#204)、文脈依存「ん」バリアント (#207)
- 英語 TTS — GPL-free G2P (g2p-en, Apache-2.0)、espeak-ng 不要
- マルチスピーカー — 571話者対応 (学習用ベースモデル)、SpeakerBalancedBatchSampler、言語グループ均等サンプリング
- カスタム辞書 — 200+技術用語の発音辞書内蔵
- 音素入力 —
[[ phonemes ]]記法による直接指定 — ガイド
学習
- WavLM Discriminator — MOS +0.15-0.25 向上 (デフォルト有効、学習時のみ使用)
- MB-iSTFT-VITS2 Decoder — Decoder を MB-iSTFT + PQMF に統一、CPU 推論 2.21x 高速化。ONNX 形式不変で既存ランタイム互換
- FP16 Mixed Precision — 学習速度2-3倍、メモリ約50%削減 (デフォルト有効)
- EMA — Exponential Moving Average による学習安定性向上 (デフォルト有効)
- マルチGPU — DDP対応、自動学習率スケーリング
- Prosody Features — Duration Predictorへの韻律情報注入 (
--prosody-dim 16) - Wandb統合 — リアルタイムメトリクス監視
インターフェース
- WebUI (Gradio) — 推論・学習対応、Docker対応
- C++ CLI — ストリーミング、CUDA推論、音素タイミング出力 (JSON/TSV/SRT)、カスタム辞書
- C API 共有ライブラリ —
libpiper_plus.so/.dylib/.dll、FFI対応 (Flutter/Godot/Swift等)、ストリーミング API - iOS xcframework + SPM —
PiperPlus(Swift Package)、合成エンジン本体を iOS arm64 device + simulator universal で配信 - iOS Swift G2P (SPM) —
PiperPlusG2P単独ライブラリ、8言語の G2P を ONNX Runtime 非依存で iOS 上で利用可能 (Issue #387) - WebAssembly — ブラウザ内で完全動作、音素タイミング出力 (JSON/TSV/SRT)、サーバー不要
- Docker — 推論・学習・WebUI・C++の5イメージ提供
- PyPI —
pip install piper-plusで簡単インストール、8言語マルチリンガル、音素タイミング出力 (JSON/TSV/SRT)、ストリーミング、HTTP API - C# CLI — .NET 10 クロスプラットフォーム、8言語マルチリンガル、ONNX推論、音素タイミング出力 (JSON/TSV/SRT)
- Rust CLI — piper-plus/piper-plus-cli、ストリーミング、CUDA/CoreML/DirectML対応、音素タイミング出力 (JSON/TSV/SRT)、辞書自動ダウンロード
- Go CLI — HTTP APIサーバー、セッションプーリング、Docker対応、シングルバイナリ、音素タイミング出力 (JSON/TSV/SRT)
- Voice Cloning (Speaker Encoder + speaker_embedding) — 全 6 ランタイム (Python/Rust/C#/Go/WASM/C++) でモデル互換の事前計算
speaker_embedding入力に対応。C++ CLI/C API は事前計算 embedding のみ受け付け、--reference-audioによる抽出は未実装。公開zs-v1の実推論確認は Pythonpiper-plus==2.0.0のみ。 - SSML サポート —
,,を Python/Rust/C#/Go/WASM/C++ の 6 ランタイムで実装 (C++ は CLI--ssml経由) - 短文品質改善 (Strategy A/B/C) — Silence Padding、Dynamic Scales、SSML
自動注入を全 6 ランタイムで対応 (docs/spec/short-text-contract.toml)
ランタイム別機能サポート
6 ランタイム (Python/Rust/C#/Go/JS-WASM/C++) で同等の8言語マルチリンガル合成を実現。音素タイミング・ストリーミング (文単位分割含む)・モデル互換の事前計算 embedding を使う Voice Cloning・カスタム辞書はランタイム機能として対応。C++ は事前計算 embedding のみで --reference-audio は未実装。公開 zs-v1 の実推論確認は Python piper-plus==2.0.0 のみで、他ランタイムの同バンドル検証を示すものではありません。SSML は全 6 ランタイム対応 (C++ は CLI --ssml 経由、C API 非エクスポート)、HTTP API は Python/Go の 2 ランタイム対応。
クイックスタート
プリビルドバイナリ (ビルド不要)
GitHub Releases からプリビルドバイナリをダウンロードして、すぐに音声合成を開始できます。
1. バイナリをダウンロード
お使いのOSに合わせてダウンロード・展開してください。
Windows (PowerShell):
Invoke-WebRequest -Uri "https://github.com/ayutaz/piper-plus/releases/latest/download/piper-plus-cpp-windows-x64.zip" -OutFile piper-plus-cpp.zip
Expand-Archive piper-plus-cpp.zip -DestinationPath .
cd piper-plus
macOS (Apple Silicon):
curl -L -o piper-plus-cpp.tar.gz https://github.com/ayutaz/piper-plus/releases/latest/download/piper-plus-cpp-macos-arm64.tar.gz
tar xzf piper-plus-cpp.tar.gz
cd piper-plus
xattr -cr .
Linux (x86_64):
curl -L -o piper-plus-cpp.tar.gz https://github.com/ayutaz/piper-plus/releases/latest/download/piper-plus-cpp-linux-x64.tar.gz
tar xzf piper-plus-cpp.tar.gz
cd piper-plus
Linux (ARM64, Raspberry Pi 4/5):
curl -L -o piper-plus-cpp.tar.gz https://github.com/ayutaz/piper-plus/releases/latest/download/piper-plus-cpp-linux-arm64.tar.gz
tar xzf piper-plus-cpp.tar.gz
cd piper-plus
2. モデルをダウンロード & 音声を生成
# つくよみちゃんモデルをダウンロード
./bin/piper-plus --download-model tsukuyomi
音声を生成 (モデル名だけで OK — ダウンロード済みモデルを自動解決)
./bin/piper-plus --model tsukuyomi --text "こんにちは、今日は良い天気ですね。" --output_file output.wav
Windows cmd のコードページについて:--textオプションは内部でGetCommandLineW()(UTF-16) を使用するため、コードページに依存せずそのまま動作します。パイプ入力(echo ... | piper-plus)を使う場合のみ、事前にchcp 65001で UTF-8 に切り替えてください。
> output.wav の出力先: カレントディレクトリ(cd piper-plus した場所)に生成されます。
どのバイナリを選べばよい? Releases にはpiper-plus-cpp-(C++) のほか、piper-plus-cli-(C# .NET) とpiper-plus-rs-cli-(Rust) のCLIもあります。上記のクイックスタートで使っている C++ CLI (piper-plus-cpp-) が最も多くのプラットフォームに対応していて推奨です。詳しくは CLIバイナリの選び方 を参照。
Python推論
# インストール
uv pip install ".[inference]"
日本語推論
uv run python -m piper_train.infer_onnx \
--model /path/to/model.onnx \
--config /path/to/config.json \
--output-dir ./output \
--text "こんにちは、今日は良い天気ですね。"
英語推論
uv run python -m piper_train.infer_onnx \
--model /path/to/en_model.onnx \
--config /path/to/en_model.onnx.json \
--output-dir ./output \
--text "Hello, how are you today?" \
--language en
主なオプション: --speaker-id(話者ID)、--device auto|cpu|gpu、--noise-scale(音声バリエーション)、--length-scale(話速)、--noise-scale-w(音素長バリエーション、デフォルト: 0.5)
WavLMモデルの推奨設定: WavLM Discriminatorで学習されたモデル (つくよみちゃん等) は --noise-scale 0.5 で最適な音質になります (デフォルトは 0.4)。
Python CLI モデル管理
# モデル一覧表示
python -m piper_plus --list-models
python -m piper_plus --list-models ja
モデルダウンロード
python -m piper_plus --download-model tsukuyomi
python -m piper_plus --download-model ja_JP-tsukuyomi-chan-medium
ダウンロード後に使用
python -m piper_plus --model ja_JP-tsukuyomi-chan-medium -f output.wav "こんにちは"
WebUI
uv pip install -r src/python_run/requirements_webui.txt
cd src/python_run
python -m piper_plus.webui --data-dir /path/to/models
→ http://localhost:7860
Docker
# WebUI
docker build -t piper-webui -f docker/webui/Dockerfile .
docker run -p 7860:7860 -v ./models:/models:ro piper-webui
Python推論 (CPU)
docker build -t piper-inference -f docker/python-inference/Dockerfile .
docker run --rm \
-v ./models:/app/models:ro -v ./output:/app/output \
piper-inference \
python -m piper_train.infer_onnx \
--model /app/models/model.onnx --config /app/models/config.json \
--output-dir /app/output --text "こんにちは" --device cpu
GPU推論 (--gpus all を追加)
docker run --rm --gpus all \
-v ./models:/app/models:ro -v ./output:/app/output \
piper-inference \
python -m piper_train.infer_onnx \
--model /app/models/model.onnx --config /app/models/config.json \
--output-dir /app/output --text "こんにちは" --device gpu
CI/CD ビルド済みイメージ:
docker pull ghcr.io/ayutaz/piper-plus/python-inference:dev
docker pull ghcr.io/ayutaz/piper-plus/python-train:dev
docker pull ghcr.io/ayutaz/piper-plus/webui:dev
docker pull ghcr.io/ayutaz/piper-plus/cpp-inference:dev
docker pull ghcr.io/ayutaz/piper-plus/cpp-dev:dev
Note: webui イメージは CI で自動ビルドされません。docker build -t piper-webui -f docker/webui/Dockerfile . で手動ビルドしてください。
詳細は docker/README.md を参照。
インストール
Python
Python 3.13+ 推奨 (3.11+ サポート)。依存管理は uv を推奨。
# CPU推論
uv pip install ".[inference]"
GPU推論 (CUDA環境が必要)
uv pip install ".[inference-gpu]"
学習
uv pip install ".[train]"
開発 (テスト・リンター含む)
uv pip install ".[dev]"
PyPI パッケージからもインストール可能:
pip install piper-plus
パッケージからインストール
Python (PyPI):
pip install piper-plus
npm (ブラウザ WASM):
npm install piper-plus onnxruntime-web
C# CLI (.NET Global Tool):
dotnet tool install -g PiperPlus.Cli
Rust CLI (crates.io):
cargo install piper-plus-cli
C# ライブラリ (NuGet):
dotnet add package PiperPlus.Core
Rust ライブラリ (crates.io):
[dependencies]
piper-plus = "0.4"
ソースからビルド
プリビルドバイナリが提供されていないプラットフォームで使う場合や piper-plus を改変したい場合は、ソースからビルドできます。C++ / C# / Rust の各ランタイムのビルド手順は ソースからのビルドガイド を参照してください。
使い方
C++ CLI の詳細なコマンドラインオプション、JSON 入力フォーマット、モデル管理、環境変数、Windows ヘルパースクリプトの使い方は CLI 使用ガイド を参照してください。
簡単な使用例:
./bin/piper-plus --model tsukuyomi --text "こんにちは" --output_file hello.wav
学習
ピパープラスモデルの学習・ファインチューニング方法 (基本設定、マルチスピーカー / マルチ GPU、ONNX 変換、チェックポイント管理、音声評価) は 学習ガイド を参照してください。
実運用向けの 6 言語事前学習・つくよみちゃんファインチューニングのコマンドテンプレートは CLAUDE.md にあります。
事前学習済みモデル
公開されている piper-plus モデルの一覧、ダウンロード方法、6 言語ベースモデルの特徴、日本語 TTS の詳細は モデルガイド を参照してください。
主要モデル: tsukuyomi (日本語), zs-v1 (6 言語 Zero-Shot/FT 実験ベース), bilingual-ja-en-v4 (日英 2 言語) — 詳細は HuggingFace の 固定公開 zs-v1 バンドル や ayousanz/piper-plus-tsukuyomi-chan を参照してください。
Zero-Shot/FT ベース (zs-v1, 2026-10-10): 固定公開バンドルは既存の v7 epoch 32 実験基準版(JA/EN/ZH/ES/FR/PT、571 話者、173 音素、CAM++ 192 次元)です。Zero-Shot 推論はbase.onnxと同梱campplus.onnxから抽出した参照 embedding、追加学習はbase.ckptと同梱config.jsonを使ってください。PyPIpiper-plus==2.0.0の公開例で機能確認済みですが、品質承認・人手試聴合格・最新/最高品質を意味しません。base/zero-shot-base-zs-v1alias はソースブランチ/次期リリース向けで、公開済み 2.0.0 / 2.0.1 には未収録です。ルートのmodel.ckptは旧世代として別扱いです。
つくよみちゃんFT (zs-v1, 2026-10-15): 同じ公開base世代を追加学習した固定公開モデルを公開しました。tsukuyomi.onnxとtsukuyomi.onnx.jsonを組み合わせれば、参照音声やCAM++なしで生成できます。日本語3文の試聴承認済みの実験基準版です。既存のtsukuyomialiasは引き続き旧rootモデルを選ぶため、新モデルはモデルガイドの固定URLから取得してください。
プラットフォーム
- macOS: Apple Silicon (arm64) ネイティブ対応。詳細は macOS セットアップ 参照
- Windows: x64 / arm64 対応。OpenJTalk セットアップは Windows セットアップガイド
- WebAssembly: ブラウザで完全オフライン実行。デモ | npm パッケージ
関連リンク
Unity — uPiper
Piper を Unity で使用するプラグイン: github.com/ayutaz/uPiper
- Unity 6000.0.35f1+、Unity.InferenceEngine
- Windows / macOS (Apple Silicon) / Linux / Android 対応
- 日本語・英語対応、非同期API、ストリーミング
音声モデル (Voices)
piper-plus 専用モデル: zs-v1 Zero-Shot/FT ベース · つくよみちゃん
Note: piper-plus は独自の G2P・音素体系を使用しているため、upstream Piper (rhasspy/piper-voices) のモデルとは互換性がありません。
関連記事
piper-plus-g2p (独立G2Pパッケージ)
多言語G2P (Grapheme-to-Phoneme) を独立パッケージとして提供:
- Python:
pip install piper-plus-g2p— ソースコード - Rust:
cargo add piper-plus-g2p— ソースコード - Go:
go get github.com/ayutaz/piper-plus/src/go/phonemize— ソースコード - JavaScript/WASM:
npm install @piper-plus/g2p— ソースコード - Kotlin/Android:
implementation("io.github.ayutaz:piper-plus-g2p-android:1.0.0")— ソースコード · 辞書配布ガイド
People using Piper
Home Assistant · Rhasspy 3 · NVDA · Open Voice OS · LocalAI · JetsonGPT · mintPiper · Vim-Piper
ドキュメント
| カテゴリ | リンク | |---|---| | 日本語TTS | 日本語音声合成ガイド | | 学習 | 学習ガイド · マルチGPU | | API | 音素マッピング · 環境変数 | | 機能 | WebUI · CLI強化 · ストリーミング | | セットアップ | クイックスタート (日本語) · Windows · トラブルシューティング | | Docker | Docker環境 | | WebAssembly | 技術詳細 |
Contributing
CONTRIBUTING.md を参照。質問やバグ報告は Issues へどうぞ。行動規範は CODE_OF_CONDUCT.md を参照してください。
Changelog
CHANGELOG.md を参照。