Skip to content

piper-plus 2.0.0 — ゼロショット音声合成・多言語対応

Choose a tag to compare

@github-actions github-actions released this 08 Oct 02:45
61ac41b

piper-plus 2.0.0 は、ゼロショット音声合成を含む正式なメジャーリリースです。1.13.0以降の修正、多言語対応、各ランタイムの改善をまとめています。Pythonの名前空間・CLI変更と学習環境の更新を含むため、更新前に以下の互換性情報と移行ガイドを確認してください。

公開パッケージ

配布先 バージョン
PyPI piper-plus 2.0.0
PyPI piper-plus-g2p 0.3.0
Rust piper-plus-g2p / piper-plus / piper-plus-cli 0.5.2
NuGet PiperPlus.Core / PiperPlus.Cli 0.5.1
npm piper-plus 0.8.0
npm @piper-plus/g2p 0.4.2(継続)
Go G2P 0.3.0
Kotlin / Android G2P 1.0.1
SwiftPM / 共有ライブラリ / Docker 2.0.0

各パッケージは独立してバージョンを管理しています。Rust 0.5.2は192/256次元の話者埋め込みと、読み取り専用モデルでのキャッシュ保存失敗を修正した追加リリースです。NuGet 0.5.1も読み取り専用モデルで推論を続けられるようにしました。Rust/C# CLIの配布物は、それぞれ別タグ rust-v0.5.2/csharp-v0.5.1 の検証済みコミットからビルドしています。

Dockerは、docker-v2.0.0 のコミットから音素のPUA ID変換を補修したイメージをビルドしています。署名は、不変の docker-signatures-v2.0.0 から全イメージのバージョン・コミット・対応アーキテクチャ・digestを検証したうえで付与し、公開された全7種類の署名・発行元・コミット・Rekor記録を検証しました。元のv2.0.0タグは変更していません。

主な変更

  • Pythonのimport名を piper_plus、CLIを piper-plus に統一し、本家 piper-tts と同じ環境へインストールできるようにしました。
  • npm/WASMデモのspeaker embedding入力を修正し、CSS10/つくよみちゃんの実モデルで音声生成を検証しました(#760)。中国語pinyin辞書も配布パッケージへ同梱します。
  • Rustの直接IPA入力API(encode_ipa / IpaTokenizer)など、多言語G2P・推論・音素タイミングの改善を含みます。
  • WebUIのGradio更新、DockerのOSパッケージ更新、GitHub Actionsの入力処理修正を含みます。
  • Python wheelの辞書・ライセンス収録、npm tarballの単独インストールと実ブラウザ合成、各公開レジストリの実在確認・provenance検証を強化しました。必須の検証が失敗した場合、リリースCIは成功扱いにしません。
  • SwiftPMの共有ライブラリとG2P成果物を2.0.0へ揃え、チェックサムをタグのコミットへ収録しています。

更新手順と互換性

pip install --upgrade piper-plus==2.0.0
pip install --upgrade piper-plus-g2p==0.3.0
npm install piper-plus@0.8.0 onnxruntime-web@1.22.0
cargo install piper-plus-cli --version 0.5.2 --locked
dotnet tool install --global PiperPlus.Cli --version 0.5.1
  • Python: import piper → import piper_plus、piper → piper-plus、python -m piper → python -m piper_plus に更新してください。互換shimはありません。
  • Dockerの既定イメージはCUDA 12.8 + Ubuntu 24.04 + Python 3.13です。GPU版にはホストNVIDIAドライバR570以降が必要です。PyPIのPython 3.11/3.12サポートは継続します。
  • Torch / torchaudioは 2.11.0の固定を維持します。torch 2.2で作成したcheckpointからの学習再開は新しい学習イメージのサポート対象外ですが、既存のONNXモデルは推論に利用できます。
  • 学習の既定設定はTF32 + bf16-mixedです。厳密な数値再現性が必要な場合は設定を明示してください。
  • モデル/辞書キャッシュと環境変数の piper / PIPER_* 名も更新対象です。詳細と例外は移行ガイドを参照してください。

個別の修正と既知の制約はCHANGELOGに記載しています。

ネイティブモデル設定の注意

C++は音素IDのキーが1コードポイント(複合音素はPUA形式)のconfigを使用します。CSS10の既存configに "ɔɪ" / "œ̃" / "ɐ̃" が生のキーで残っている場合は、リポジトリの既存ツールで python scripts/fix_config_pua.py config.json を実行してから読み込んでください。ONNXモデルや音素IDは変更しません。ブラウザ版はそのconfigのままで利用できます。

Linux ARMv7配布物

Linux ARMv7版は、固定したONNX Runtime 1.20.0を公式ソースからクロスビルドして同梱しています。Debian 13のARMv7環境(QEMU)で、配布アーカイブを展開したCLIから日本語WAVを生成し、ライセンスとOpenJTalk辞書の収録も確認しました。実機ARMでの確認結果ではありません。

Rust CLIで英語/中国語を使用する場合は、対応するCMU/pinyin辞書を配置してください。辞書のパスは CMUDICT_PATH/PINYIN_SINGLE_PATH/PINYIN_PHRASES_PATH で指定できます。

配布物のチェックサム

GitHub Releaseの配布物とライセンス文書のSHA256を checksums-sha256.txt に収録しています(チェックサムファイル自身と署名ファイルは除きます)。添付物を同じフォルダーへダウンロードした場合は、そのフォルダーで次のコマンドから検証できます。

sha256sum --check checksums-sha256.txt

Dockerイメージ

GHCRは ghcr.io/ayutaz/piper-plus/、DockerHubは ayousanz 配下から取得できます。DockerHubの latest は2.0.0へ移動しています。1.xを継続利用する場合は、使用中の明示的なバージョンタグを指定してください。

docker pull ghcr.io/ayutaz/piper-plus/python-inference:2.0.0
docker pull ghcr.io/ayutaz/piper-plus/python-inference:2.0.0-cpu
docker pull ayousanz/piper-plus-api:2.0.0
docker pull ayousanz/piper-plus-webui:2.0.0
docker pull ayousanz/wyoming-piper-plus:2.0.0

DockerHubのAPIイメージはAMD64、WebUI/WyomingはAMD64・ARM64に対応します。GHCRのCPU推論イメージはAMD64・ARM64に対応します。

DockerHubのAPIイメージは、署名検証済みGHCRイメージと同一digestのままCIで公開しています。WebUI/Wyomingも同じ修正済みコミットからビルドし、両レジストリの公開イメージから日本語音声生成を確認しました。CUDA対応のPythonイメージの実行検証はCPUモードで行っています。

SwiftPM 2.0.0の依存指定

公開済みv2.0.0をSwiftPMで利用する場合は、以下のように公式ONNX Runtime SDK 1.20.0を明示してください。v2.0.0の推移依存を自動解決すると、macOS 14以上が必要なSDK 1.24.xが選ばれ、本体のmacOS 13対応設定と衝突します。G2Pだけを利用する場合もこの指定が必要です。

dependencies: [
    .package(url: "https://github.com/ayutaz/piper-plus", exact: "2.0.0"),
    .package(
        url: "https://github.com/microsoft/onnxruntime-swift-package-manager",
        exact: "1.20.0"
    ),
],

公開済みタグと配布物は変更していません。開発版での依存固定と、PR CI・commit hookでの再発防止は #782 にまとめています。