feat: wasm would work

This commit is contained in:
Googlefan
2025-02-22 10:04:40 +00:00
parent 9a5da399be
commit 755876605e
9 changed files with 25 additions and 17 deletions

6
.gitignore vendored
View File

@@ -1,10 +1,10 @@
target
target/
models/
!models/.gitkeep
venv/
.env
output.wav
node_modules
*.wav
node_modules/
dist/
*.csv
*.bin

View File

@@ -6,6 +6,7 @@ description.workspace = true
readme.workspace = true
repository.workspace = true
documentation.workspace = true
license.workspace = true
[dependencies]
anyhow.workspace = true

View File

@@ -6,6 +6,7 @@ description.workspace = true
readme.workspace = true
repository.workspace = true
documentation.workspace = true
license.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]

View File

@@ -6,6 +6,7 @@ description.workspace = true
readme.workspace = true
repository.workspace = true
documentation.workspace = true
license.workspace = true
[dependencies]
anyhow.workspace = true

View File

@@ -6,6 +6,7 @@ description.workspace = true
readme.workspace = true
repository.workspace = true
documentation.workspace = true
license.workspace = true
[lib]
crate-type = ["cdylib", "rlib"]

View File

@@ -1,5 +1,8 @@
wasm-pack build --target web sbv2_wasm
wasm-opt -O3 -o ./sbv2_wasm/pkg/sbv2_wasm_bg.wasm ./sbv2_wasm/pkg/sbv2_wasm_bg.wasm
wasm-strip ./sbv2_wasm/pkg/sbv2_wasm_bg.wasm
mkdir -p ./sbv2_wasm/dist
cp ./sbv2_wasm/sbv2_wasm/pkg/sbv2_wasm_bg.wasm ./sbv2_wasm/dist/sbv2_wasm_bg.wasm
#!/bin/sh
wasm-pack build --target web ./crates/sbv2_wasm --release
wasm-opt -O3 -o ./crates/sbv2_wasm/pkg/sbv2_wasm_bg.wasm ./crates/sbv2_wasm/pkg/sbv2_wasm_bg.wasm
wasm-strip ./crates/sbv2_wasm/pkg/sbv2_wasm_bg.wasm
mkdir -p ./crates/sbv2_wasm/dist
cp ./crates/sbv2_wasm/pkg/sbv2_wasm_bg.wasm ./crates/sbv2_wasm/dist/sbv2_wasm_bg.wasm
cd ./crates/sbv2_wasm
pnpm build

View File

@@ -3,9 +3,12 @@ import fs from "node:fs/promises";
ModelHolder.globalInit(await fs.readFile("./dist/sbv2_wasm_bg.wasm"));
const holder = await ModelHolder.create(
(await fs.readFile("../models/tokenizer.json")).toString("utf-8"),
await fs.readFile("../models/deberta.onnx"),
(await fs.readFile("../../models/tokenizer.json")).toString("utf-8"),
await fs.readFile("../../models/deberta.onnx"),
);
await holder.load(
"tsukuyomi",
await fs.readFile("../../models/tsukuyomi.sbv2"),
);
await holder.load("tsukuyomi", await fs.readFile("../models/iroha2.sbv2"));
await fs.writeFile("out.wav", await holder.synthesize("tsukuyomi", "おはよう"));
holder.unload("tsukuyomi");

View File

@@ -1,6 +1,6 @@
{
"name": "sbv2",
"version": "0.1.1",
"version": "0.2.0-alpha6",
"description": "Style Bert VITS2 wasm",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@@ -21,9 +21,5 @@
"dependencies": {
"onnxruntime-web": "^1.20.1"
},
"files": [
"dist/*",
"package.json",
"README.md"
]
"files": ["dist/*", "package.json", "README.md", "pkg/*.ts", "pkg/*.js"]
}

View File

@@ -74,6 +74,8 @@ export class ModelHolder {
style_vec: e,
sdp_ratio: new Tensor("float32", [f]),
length_scale: new Tensor("float32", [g]),
noise_scale: new Tensor("float32", [0.677]),
noise_scale_w: new Tensor("float32", [0.8]),
})
).output;
return [new Uint32Array(res.dims), await res.getData(true)];