概要
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 })—SynthesizeOptionsにspeakerEmbeddingを追加
その他
trimEosRegion— EOS 領域トリムを Rust / Go / C# / C++ とそろえた (#507)- ORT ウォームアップ定数 8 種を公開 (
WARMUP_BOS_TOKENほか) RustWasmAdapterのoptions.jaDictとjapaneseDictionaryStatus— 外部 JA 辞書の opt-in 投入 (#640)
注意点
piper-plus コマンドが追加されます
package.json に bin が入り、インストール時に 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-lite を exports から除きました。この 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