Skip to content

piper-plus (npm) v0.7.0 — SSML 合成統合と参照音声からの合成

Latest

Choose a tag to compare

@ayutaz ayutaz released this 28 Aug 00:03
244ffeb

概要

piper-plus (npm) 0.7.0 を公開しました。0.6.0 (2026-05-04) 以来のリリースで、SSML 合成統合参照音声からの話者埋め込み合成という 2 つの高位 API が加わります。

npm install piper-plus@0.7.0

破壊的変更はありません。既存の synthesize() / AudioResult はそのまま動作します。

主な追加

SSML 合成統合 (#479)

@piper-plus/g2p の SSML パーサーを高位 API に統合しました。Python / Rust / Go / C# と同等の synthesize-side iteration がブラウザでも使えます。

  • PiperPlus.synthesizeSsml(ssmlText, options) — セグメント単位で iterate し、<prosody rate>length_scale に適用、<break> で silence を挿入して連結
  • synthesize(text)<speak で始まる入力を自動検知して dispatch (opt-out: { ssml: false })
  • isSsml / parseSsml / SsmlParser を re-export

参照音声からの合成 (#478)

CLI の --reference-audio + --speaker-encoder-model に相当する経路が JS だけで完結します。

  • PiperPlus.synthesizeFromReferenceAudio({ text, referenceWav, encoder })
  • synthesize(text, { speakerEmbedding })SynthesizeOptionsspeakerEmbedding を追加

その他

  • trimEosRegion — EOS 領域トリムを Rust / Go / C# / C++ とそろえた (#507)
  • ORT ウォームアップ定数 8 種を公開 (WARMUP_BOS_TOKEN ほか)
  • RustWasmAdapteroptions.jaDictjapaneseDictionaryStatus — 外部 JA 辞書の opt-in 投入 (#640)

注意点

piper-plus コマンドが追加されます

package.jsonbin が入り、インストール時に node_modules/.bin/piper-plus が生えます。グローバルインストールでは piper-plus 実行ファイルが作られるため、PyPI 版 piper-plus の console script と同名で衝突しえます。両方をグローバルに入れている場合は PATH の優先順位にご注意ください。

synthesizeWithVoiceCloning() が非推奨になりました

synthesize(text, { speakerEmbedding }) に置き換えてください。後方互換のため残しており、削除は将来のメジャーリリースで行います。

依存の下限を引き上げました

@piper-plus/g2p の要求を ^0.4.2 に上げています。0.4.2 は辞書ダウンロードが常に 404 になっていた不具合を修正した版で、これがないと既定設定での日本語 G2P が動作しません。

出荷されていなかった export を削除しました

./wasm/ja./wasm/ja-liteexports から除きました。この 2 つは #301 で宣言されて以来どの公開版でも実体 0 ファイルで、0.6.0 の tarball でも require.resolve すると MODULE_NOT_FOUND になる状態でした。依存できた利用者は存在しないため、実質的な破壊的変更ではありません。

Full Changelog

https://github.com/ayutaz/piper-plus/blob/dev/src/wasm/openjtalk-web/CHANGELOG.md

Diff: npm-v0.6.0...npm-v0.7.0