6 releases
0.2.0-alpha1 | Sep 27, 2024 |
---|---|
0.1.4 | Sep 22, 2024 |
#128 in Machine learning
136 downloads per month
51KB
1K
SLoC
SBV2-API
注意:本バージョンはアルファ版です。
安定版を利用したい場合はこちらをご覧ください。
プログラミングに詳しくない方向け
こちらを参照してください。
コマンドやpythonの知識なしで簡単に使えるバージョンです。(できることはほぼ同じ)
このプロジェクトについて
このプロジェクトは Style-Bert-ViTS2 を ONNX 化したものを Rust で実行するのを目的としたライブラリです。
JP-Extra しか対応していません。(基本的に対応する予定もありません)
変換方法
こちらを参照してください。
Todo
- REST API の実装
- Rust ライブラリの実装
-
.sbv2
フォーマットの開発 - PyO3 を利用し、 Python から使えるようにする
- 組み込み向けにCライブラリの作成
- GPU 対応(CUDA)
- GPU 対応(DirectML)
- GPU 対応(CoreML)
- WASM 変換(依存ライブラリの関係により現在は不可)
- arm64のdockerサポート
構造説明
sbv2_api
- 推論用 REST APIsbv2_core
- 推論コア部分docker
- docker ビルドスクリプトconvert
- onnx, sbv2フォーマットへの変換スクリプト
プログラミングある程度できる人向けREST API起動方法
models をインストール
https://huggingface.co/googlefan/sbv2_onnx_models/tree/main
のtokenizer.json
,debert.onnx
,tsukuyomi.sbv2
を models フォルダに配置
.env ファイルの作成
cp .env.sample .env
起動
CPUの場合は
docker run -it --rm -p 3000:3000 --name sbv2 \
-v ./models:/work/models --env-file .env \
ghcr.io/tuna2134/sbv2-api:cpu
Apple Silicon搭載のMac(M1以降)の場合
docker上で動作させる場合、.envのADDRをlocalhostから0.0.0.0に変更してください。ADDR=0.0.0.0:3000
CPUの場合は
docker run --platform linux/amd64 -it --rm -p 3000:3000 --name sbv2 \
-v ./models:/work/models --env-file .env \
ghcr.io/tuna2134/sbv2-api:cpu
CUDAの場合は
docker run -it --rm -p 3000:3000 --name sbv2 \
-v ./models:/work/models --env-file .env \
--gpus all \
ghcr.io/tuna2134/sbv2-api:cuda
起動確認
curl -XPOST -H "Content-type: application/json" -d '{"text": "こんにちは","ident": "tsukuyomi"}' 'http://localhost:3000/synthesize' --output "output.wav"
curl http://localhost:3000/models
開発者向けガイド
Feature flags
sbv2_api
、sbv2_core
共に
cuda
featureでcudacuda_tf32
featureでcudaのtf32機能tensorrt
featureでbert部分のtensorrt利用dynamic
featureで手元のonnxruntime共有ライブラリを利用(ORT_DYLIB_PATH=./libonnxruntime.dll
などで指定)directml
featureでdirectmlの利用ができます。coreml
featureでcoremlの利用ができます。
環境変数
以下の環境変数はライブラリ側では適用されません。
ライブラリAPIについてはhttps://docs.rs/sbv2_core
を参照してください。
ADDR
localhost:3000
などのようにサーバー起動アドレスをコントロールできます。MODELS_PATH
sbv2モデルの存在するフォルダを指定できます。RUST_LOG
おなじみlog levelです。
謝辞
- litagin02/Style-Bert-VITS2 - このコードの書くにあたり、ベースとなる部分を参考にさせていただきました。
- Googlefan - 彼にモデルを ONNX ヘ変換および効率化をする方法を教わりました。
Dependencies
~28–41MB
~781K SLoC