Caution
オプションの辞書はLGPLです。
オプションの辞書を使用する場合、バイナリの内部の辞書部分について、LGPLが適用されます。
こちらを参照してください。
コマンドやpythonの知識なしで簡単に使えるバージョンです。(できることはほぼ同じ)
このプロジェクトは Style-Bert-ViTS2 を ONNX 化したものを Rust で実行するのを目的としたライブラリです。
JP-Extra しか対応していません。(基本的に対応する予定もありません)
こちらを参照してください。
- REST API の実装
- Rust ライブラリの実装
-
.sbv2フォーマットの開発 - PyO3 を利用し、 Python から使えるようにする
- 組み込み向けにCライブラリの作成
- GPU 対応(CUDA)
- GPU 対応(DirectML)
- GPU 対応(CoreML)
- WASM 変換
- arm64のdockerサポート
- aivis形式のサポート
- MeCabを利用する
crates/sbv2_api- 推論用 REST APIcrates/sbv2_core- 推論コア部分scripts/docker- docker ビルドスクリプトscripts/convert- onnx, sbv2フォーマットへの変換スクリプト
https://huggingface.co/neody/sbv2-api-assets/tree/main/deberta
からtokenizer.json,debert.onnx
https://huggingface.co/neody/sbv2-api-assets/tree/main/model
からtsukuyomi.sbv2
を models フォルダに配置
cp .env.sample .envCPUの場合は
docker run -it --rm -p 3000:3000 --name sbv2 \
-v ./models:/work/models --env-file .env \
ghcr.io/neodyland/sbv2-api:cpuApple Silicon搭載のMac(M1以降)の場合
docker上で動作させる場合、.envのADDRをlocalhostから0.0.0.0に変更してください。ADDR=0.0.0.0:3000CPUの場合は
docker run --platform linux/amd64 -it --rm -p 3000:3000 --name sbv2 \
-v ./models:/work/models --env-file .env \
ghcr.io/neodyland/sbv2-api:cpuCUDAの場合は
docker run -it --rm -p 3000:3000 --name sbv2 \
-v ./models:/work/models --env-file .env \
--gpus all \
ghcr.io/neodyland/sbv2-api:cudacurl -XPOST -H "Content-type: application/json" -d '{"text": "こんにちは","ident": "tsukuyomi"}' 'http://localhost:3000/synthesize' --output "output.wav"
curl http://localhost:3000/modelssbv2_api、sbv2_core共に
cudafeatureでcudacuda_tf32featureでcudaのtf32機能tensorrtfeatureでbert部分のtensorrt利用dynamicfeatureで手元のonnxruntime共有ライブラリを利用(ORT_DYLIB_PATH=./libonnxruntime.dllなどで指定)directmlfeatureでdirectmlの利用ができます。coremlfeatureでcoremlの利用ができます。
以下の環境変数はライブラリ側では適用されません。
ライブラリAPIについてはhttps://docs.rs/sbv2_coreを参照してください。
ADDRlocalhost:3000などのようにサーバー起動アドレスをコントロールできます。MODELS_PATHsbv2モデルの存在するフォルダを指定できます。RUST_LOGおなじみlog levelです。HOLDER_MAX_LOADED_MODElSRAMにロードされるモデルの最大数を指定します。
- litagin02/Style-Bert-VITS2 - このコードを書くにあたり、ベースとなる部分を参考にさせていただきました。
- Googlefan - 彼にモデルを ONNX ヘ変換および効率化をする方法を教わりました。
- Aivis Project - 辞書部分