@tianshu-ai/tianshu 0.45.0 → 0.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/server/builtinConfig/plugins/custom-ui/dist/client.js +2 -2
- package/packages/server/dist/boot/asr-admin.d.ts +9 -0
- package/packages/server/dist/boot/asr-admin.d.ts.map +1 -0
- package/packages/server/dist/boot/asr-admin.js +201 -0
- package/packages/server/dist/boot/asr-admin.js.map +1 -0
- package/packages/server/dist/boot/asr.d.ts +13 -0
- package/packages/server/dist/boot/asr.d.ts.map +1 -0
- package/packages/server/dist/boot/asr.js +186 -0
- package/packages/server/dist/boot/asr.js.map +1 -0
- package/packages/server/dist/boot/routes-core.d.ts.map +1 -1
- package/packages/server/dist/boot/routes-core.js.map +1 -1
- package/packages/server/dist/index.js +45 -0
- package/packages/server/dist/index.js.map +1 -1
- package/packages/server/package.json +1 -0
- package/packages/web/dist/assets/{DataSourceConfigForm-BAgp6paU.js → DataSourceConfigForm-C-lie1Ai.js} +1 -1
- package/packages/web/dist/assets/{bundle-web-BxbSFlI1.js → bundle-web-BRIxvUoT.js} +1 -1
- package/packages/web/dist/assets/index-COZHSDNW.css +2 -0
- package/packages/web/dist/assets/{index-C-YokkD5.js → index-DpyTrcwj.js} +24 -24
- package/packages/web/dist/assets/{react-force-graph-2d-OSkKwJ-2.js → react-force-graph-2d-DRTEio1a.js} +1 -1
- package/packages/web/dist/index.html +2 -2
- package/plugins/custom-ui/dist/client.js +2 -2
- package/packages/web/dist/assets/index-FSyxAKaH.css +0 -2
package/package.json
CHANGED
|
@@ -298,8 +298,8 @@ function ShellSidebarSection() {
|
|
|
298
298
|
: "text-fg-muted hover:bg-bg-hover hover:text-fg-default"
|
|
299
299
|
}`,
|
|
300
300
|
children: [
|
|
301
|
-
_jsx(Paintbrush, { size: 13, className: active ? "text-accent" : "text-fg-faint" }),
|
|
302
|
-
_jsx("span", { className: "truncate", children: session.title || "Custom Shell" }),
|
|
301
|
+
_jsx(Paintbrush, { key: "icon", size: 13, className: active ? "text-accent" : "text-fg-faint" }),
|
|
302
|
+
_jsx("span", { key: "label", className: "truncate", children: session.title || "Custom Shell" }),
|
|
303
303
|
],
|
|
304
304
|
});
|
|
305
305
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin API for ASR model management.
|
|
3
|
+
* GET /api/admin/asr/models — list models (available + installed)
|
|
4
|
+
* POST /api/admin/asr/models/:id/download — start background download
|
|
5
|
+
* DELETE /api/admin/asr/models/:id — delete installed model
|
|
6
|
+
*/
|
|
7
|
+
import { type Express } from "express";
|
|
8
|
+
export declare function mountAsrAdminRoutes(app: Express): void;
|
|
9
|
+
//# sourceMappingURL=asr-admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asr-admin.d.ts","sourceRoot":"","sources":["../../src/boot/asr-admin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AAsFpE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAsHtD"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin API for ASR model management.
|
|
3
|
+
* GET /api/admin/asr/models — list models (available + installed)
|
|
4
|
+
* POST /api/admin/asr/models/:id/download — start background download
|
|
5
|
+
* DELETE /api/admin/asr/models/:id — delete installed model
|
|
6
|
+
*/
|
|
7
|
+
import { reloadAsrModel } from "./asr.js";
|
|
8
|
+
import * as fs from "node:fs";
|
|
9
|
+
import * as path from "node:path";
|
|
10
|
+
import { createWriteStream } from "node:fs";
|
|
11
|
+
import { execSync } from "node:child_process";
|
|
12
|
+
import { getTianshuHome } from "../core/paths.js";
|
|
13
|
+
const MODELS = [
|
|
14
|
+
{
|
|
15
|
+
id: "paraformer-zh-small",
|
|
16
|
+
name: "Paraformer Chinese (Small)",
|
|
17
|
+
lang: "zh",
|
|
18
|
+
size: "74 MB",
|
|
19
|
+
url: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2",
|
|
20
|
+
dir: "sherpa-onnx-paraformer-zh-small-2024-03-09",
|
|
21
|
+
description: "",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "paraformer-zh",
|
|
25
|
+
name: "Paraformer Chinese (Large)",
|
|
26
|
+
lang: "zh",
|
|
27
|
+
size: "950 MB",
|
|
28
|
+
url: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-2024-03-09.tar.bz2",
|
|
29
|
+
dir: "sherpa-onnx-paraformer-zh-2024-03-09",
|
|
30
|
+
description: "",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "sense-voice-zh",
|
|
34
|
+
name: "SenseVoice (zh/en/ja/ko/yue)",
|
|
35
|
+
lang: "zh,en,ja,ko,yue",
|
|
36
|
+
size: "~1 GB",
|
|
37
|
+
url: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17.tar.bz2",
|
|
38
|
+
dir: "sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17",
|
|
39
|
+
description: "",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: "whisper-tiny",
|
|
43
|
+
name: "Whisper Tiny",
|
|
44
|
+
lang: "multi",
|
|
45
|
+
size: "110 MB",
|
|
46
|
+
url: "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-whisper-tiny.tar.bz2",
|
|
47
|
+
dir: "sherpa-onnx-whisper-tiny",
|
|
48
|
+
description: "",
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
// Download state
|
|
52
|
+
const downloads = new Map();
|
|
53
|
+
function getModelsDir() {
|
|
54
|
+
// Primary: <TIANSHU_HOME>/models (works for both dev and production)
|
|
55
|
+
const homeDir = path.join(getTianshuHome(), "models");
|
|
56
|
+
if (!fs.existsSync(homeDir)) {
|
|
57
|
+
fs.mkdirSync(homeDir, { recursive: true });
|
|
58
|
+
}
|
|
59
|
+
return homeDir;
|
|
60
|
+
}
|
|
61
|
+
function isInstalled(model) {
|
|
62
|
+
const modelsDir = getModelsDir();
|
|
63
|
+
return fs.existsSync(path.join(modelsDir, model.dir, "tokens.txt"));
|
|
64
|
+
}
|
|
65
|
+
function getActiveModelId() {
|
|
66
|
+
try {
|
|
67
|
+
return fs.readFileSync(path.join(getModelsDir(), "active-asr-model.txt"), "utf8").trim() || null;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function setActiveModelId(id) {
|
|
74
|
+
const p = path.join(getModelsDir(), "active-asr-model.txt");
|
|
75
|
+
if (id)
|
|
76
|
+
fs.writeFileSync(p, id, "utf8");
|
|
77
|
+
else
|
|
78
|
+
try {
|
|
79
|
+
fs.unlinkSync(p);
|
|
80
|
+
}
|
|
81
|
+
catch { }
|
|
82
|
+
}
|
|
83
|
+
export function mountAsrAdminRoutes(app) {
|
|
84
|
+
// List models
|
|
85
|
+
app.get("/api/admin/asr/models", (_req, res) => {
|
|
86
|
+
const activeId = getActiveModelId();
|
|
87
|
+
const list = MODELS.map((m) => ({
|
|
88
|
+
...m,
|
|
89
|
+
installed: isInstalled(m),
|
|
90
|
+
active: m.id === activeId,
|
|
91
|
+
downloading: downloads.get(m.id)?.status === "downloading" || downloads.get(m.id)?.status === "extracting",
|
|
92
|
+
downloadProgress: downloads.get(m.id) ?? null,
|
|
93
|
+
}));
|
|
94
|
+
res.json({ models: list, activeModelId: activeId, modelsDir: getModelsDir() });
|
|
95
|
+
});
|
|
96
|
+
// Download a model
|
|
97
|
+
app.post("/api/admin/asr/models/:id/download", async (req, res) => {
|
|
98
|
+
const paramId = Array.isArray(req.params.id) ? req.params.id[0] : req.params.id;
|
|
99
|
+
const model = MODELS.find((m) => m.id === paramId);
|
|
100
|
+
if (!model)
|
|
101
|
+
return res.status(404).json({ error: "unknown model" });
|
|
102
|
+
if (isInstalled(model))
|
|
103
|
+
return res.json({ ok: true, message: "already installed" });
|
|
104
|
+
const existing = downloads.get(model.id);
|
|
105
|
+
if (existing && (existing.status === "downloading" || existing.status === "extracting")) {
|
|
106
|
+
return res.json({ ok: true, message: "download in progress" });
|
|
107
|
+
}
|
|
108
|
+
// Start background download
|
|
109
|
+
const state = { progress: 0, total: 0, status: "downloading" };
|
|
110
|
+
downloads.set(model.id, state);
|
|
111
|
+
res.json({ ok: true, message: "download started" });
|
|
112
|
+
const modelsDir = getModelsDir();
|
|
113
|
+
const tarPath = path.join(modelsDir, `${model.id}.tar.bz2`);
|
|
114
|
+
try {
|
|
115
|
+
const response = await fetch(model.url, { redirect: "follow" });
|
|
116
|
+
if (!response.ok || !response.body)
|
|
117
|
+
throw new Error(`HTTP ${response.status}`);
|
|
118
|
+
const cl = response.headers.get("content-length");
|
|
119
|
+
state.total = cl ? parseInt(cl, 10) : 0;
|
|
120
|
+
// Stream download to file with progress tracking
|
|
121
|
+
const fileStream = createWriteStream(tarPath);
|
|
122
|
+
const reader = response.body.getReader();
|
|
123
|
+
let received = 0;
|
|
124
|
+
while (true) {
|
|
125
|
+
const { done, value } = await reader.read();
|
|
126
|
+
if (done)
|
|
127
|
+
break;
|
|
128
|
+
fileStream.write(value);
|
|
129
|
+
received += value.byteLength;
|
|
130
|
+
state.progress = received;
|
|
131
|
+
}
|
|
132
|
+
fileStream.end();
|
|
133
|
+
await new Promise((resolve) => fileStream.on("finish", resolve));
|
|
134
|
+
// Extract
|
|
135
|
+
const ds = downloads.get(model.id);
|
|
136
|
+
ds.status = "extracting";
|
|
137
|
+
execSync(`tar xjf "${tarPath}" -C "${modelsDir}"`, { timeout: 120_000 });
|
|
138
|
+
fs.unlinkSync(tarPath);
|
|
139
|
+
ds.status = "done";
|
|
140
|
+
ds.progress = ds.total;
|
|
141
|
+
console.log(`[asr-admin] model ${model.id} installed`);
|
|
142
|
+
// Auto-activate if it's the first model, then hot-reload
|
|
143
|
+
if (!getActiveModelId()) {
|
|
144
|
+
setActiveModelId(model.id);
|
|
145
|
+
}
|
|
146
|
+
if (getActiveModelId() === model.id) {
|
|
147
|
+
await reloadAsrModel();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
const ds = downloads.get(model.id);
|
|
152
|
+
ds.status = "error";
|
|
153
|
+
ds.error = String(e);
|
|
154
|
+
console.error(`[asr-admin] download failed for ${model.id}:`, e);
|
|
155
|
+
try {
|
|
156
|
+
fs.unlinkSync(tarPath);
|
|
157
|
+
}
|
|
158
|
+
catch { }
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
// Download progress
|
|
162
|
+
app.get("/api/admin/asr/models/:id/status", (req, res) => {
|
|
163
|
+
const sid = Array.isArray(req.params.id) ? req.params.id[0] : req.params.id;
|
|
164
|
+
const state = downloads.get(sid);
|
|
165
|
+
if (!state)
|
|
166
|
+
return res.json({ status: "idle" });
|
|
167
|
+
res.json(state);
|
|
168
|
+
});
|
|
169
|
+
// Activate model
|
|
170
|
+
app.post("/api/admin/asr/models/:id/activate", async (req, res) => {
|
|
171
|
+
const paramId = Array.isArray(req.params.id) ? req.params.id[0] : req.params.id;
|
|
172
|
+
const model = MODELS.find((m) => m.id === paramId);
|
|
173
|
+
if (!model)
|
|
174
|
+
return res.status(404).json({ error: "unknown model" });
|
|
175
|
+
if (!isInstalled(model))
|
|
176
|
+
return res.status(400).json({ error: "model not installed" });
|
|
177
|
+
setActiveModelId(model.id);
|
|
178
|
+
// Hot-reload the recognizer so it takes effect immediately
|
|
179
|
+
const loaded = await reloadAsrModel();
|
|
180
|
+
res.json({ ok: true, activeModelId: model.id, loaded });
|
|
181
|
+
});
|
|
182
|
+
// Delete model
|
|
183
|
+
app.delete("/api/admin/asr/models/:id", async (req, res) => {
|
|
184
|
+
const did = Array.isArray(req.params.id) ? req.params.id[0] : req.params.id;
|
|
185
|
+
const model = MODELS.find((m) => m.id === did);
|
|
186
|
+
if (!model)
|
|
187
|
+
return res.status(404).json({ error: "unknown model" });
|
|
188
|
+
const dir = path.join(getModelsDir(), model.dir);
|
|
189
|
+
if (fs.existsSync(dir)) {
|
|
190
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
191
|
+
}
|
|
192
|
+
downloads.delete(model.id);
|
|
193
|
+
// If deleting the active model, clear selection and unload
|
|
194
|
+
if (getActiveModelId() === model.id) {
|
|
195
|
+
setActiveModelId(null);
|
|
196
|
+
await reloadAsrModel(); // will find nothing → recognizer = null
|
|
197
|
+
}
|
|
198
|
+
res.json({ ok: true });
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=asr-admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asr-admin.js","sourceRoot":"","sources":["../../src/boot/asr-admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side ASR using sherpa-onnx-node (paraformer-zh-small).
|
|
3
|
+
* Zero Python dependency — pure Node.js C++ addon.
|
|
4
|
+
*
|
|
5
|
+
* POST /api/transcribe
|
|
6
|
+
* Body: raw audio (audio/webm, audio/wav, etc.)
|
|
7
|
+
* Response: { text: "识别结果" }
|
|
8
|
+
*/
|
|
9
|
+
import { type Express } from "express";
|
|
10
|
+
/** Force reload the recognizer (called when admin activates a model). */
|
|
11
|
+
export declare function reloadAsrModel(): Promise<boolean>;
|
|
12
|
+
export declare function mountAsrRoute(app: Express): void;
|
|
13
|
+
//# sourceMappingURL=asr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asr.d.ts","sourceRoot":"","sources":["../../src/boot/asr.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AASpE,yEAAyE;AACzE,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAGvD;AAkID,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAqDhD"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side ASR using sherpa-onnx-node (paraformer-zh-small).
|
|
3
|
+
* Zero Python dependency — pure Node.js C++ addon.
|
|
4
|
+
*
|
|
5
|
+
* POST /api/transcribe
|
|
6
|
+
* Body: raw audio (audio/webm, audio/wav, etc.)
|
|
7
|
+
* Response: { text: "识别结果" }
|
|
8
|
+
*/
|
|
9
|
+
import { execSync } from "node:child_process";
|
|
10
|
+
import * as fs from "node:fs";
|
|
11
|
+
import * as path from "node:path";
|
|
12
|
+
import * as os from "node:os";
|
|
13
|
+
import { getTianshuHome } from "../core/paths.js";
|
|
14
|
+
let recognizer = null;
|
|
15
|
+
/** Force reload the recognizer (called when admin activates a model). */
|
|
16
|
+
export async function reloadAsrModel() {
|
|
17
|
+
recognizer = null;
|
|
18
|
+
return initRecognizer();
|
|
19
|
+
}
|
|
20
|
+
const MODEL_CANDIDATES = [
|
|
21
|
+
{ dirName: "sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17", type: "senseVoice", model: "model.int8.onnx" },
|
|
22
|
+
{ dirName: "sherpa-onnx-paraformer-zh-2024-03-09", type: "paraformer", model: "model.int8.onnx" },
|
|
23
|
+
{ dirName: "sherpa-onnx-paraformer-zh-small-2024-03-09", type: "paraformer", model: "model.int8.onnx" },
|
|
24
|
+
{ dirName: "sherpa-onnx-whisper-tiny", type: "whisper", model: "tiny-encoder.int8.onnx" },
|
|
25
|
+
];
|
|
26
|
+
function getModelsRoots() {
|
|
27
|
+
return [
|
|
28
|
+
path.join(getTianshuHome(), "models"),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
function findBestModel() {
|
|
32
|
+
const modelsRoot = getModelsRoots()[0];
|
|
33
|
+
// Check if admin selected a specific model
|
|
34
|
+
const activeFile = path.join(modelsRoot, "active-asr-model.txt");
|
|
35
|
+
if (fs.existsSync(activeFile)) {
|
|
36
|
+
const activeId = fs.readFileSync(activeFile, "utf8").trim();
|
|
37
|
+
const byId = {
|
|
38
|
+
"paraformer-zh-small": MODEL_CANDIDATES[2],
|
|
39
|
+
"paraformer-zh": MODEL_CANDIDATES[1],
|
|
40
|
+
"sense-voice-zh": MODEL_CANDIDATES[0],
|
|
41
|
+
"whisper-tiny": MODEL_CANDIDATES[3],
|
|
42
|
+
};
|
|
43
|
+
const pick = byId[activeId];
|
|
44
|
+
if (pick) {
|
|
45
|
+
const dir = path.join(modelsRoot, pick.dirName);
|
|
46
|
+
if (fs.existsSync(path.join(dir, pick.model))) {
|
|
47
|
+
return { dir, type: pick.type, model: pick.model, tokens: "tokens.txt" };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Fallback: auto-select best available
|
|
52
|
+
for (const c of MODEL_CANDIDATES) {
|
|
53
|
+
const dir = path.join(modelsRoot, c.dirName);
|
|
54
|
+
if (fs.existsSync(path.join(dir, c.model)) && fs.existsSync(path.join(dir, "tokens.txt"))) {
|
|
55
|
+
return { dir, type: c.type, model: c.model, tokens: "tokens.txt" };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
async function initRecognizer() {
|
|
61
|
+
if (recognizer)
|
|
62
|
+
return true;
|
|
63
|
+
const best = findBestModel();
|
|
64
|
+
if (!best) {
|
|
65
|
+
console.warn("[asr] no ASR model found — transcribe endpoint disabled. Download one from Settings → 语音识别.");
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
// @ts-ignore — no type declarations for sherpa-onnx-node
|
|
70
|
+
const mod = await import("sherpa-onnx-node");
|
|
71
|
+
const OfflineRecognizer = mod.OfflineRecognizer ?? mod.default?.OfflineRecognizer;
|
|
72
|
+
// Build config based on model type
|
|
73
|
+
const modelPath = path.join(best.dir, best.model);
|
|
74
|
+
const tokensPath = path.join(best.dir, best.tokens);
|
|
75
|
+
let modelConfig;
|
|
76
|
+
if (best.type === "senseVoice") {
|
|
77
|
+
modelConfig = {
|
|
78
|
+
senseVoice: { model: modelPath, language: "auto", useInverseTextNormalization: 1 },
|
|
79
|
+
tokens: tokensPath,
|
|
80
|
+
numThreads: 4,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
else if (best.type === "whisper") {
|
|
84
|
+
const decoderPath = modelPath.replace("encoder", "decoder");
|
|
85
|
+
modelConfig = {
|
|
86
|
+
whisper: { encoder: modelPath, decoder: decoderPath, language: "zh" },
|
|
87
|
+
tokens: tokensPath,
|
|
88
|
+
numThreads: 4,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// paraformer
|
|
93
|
+
modelConfig = {
|
|
94
|
+
paraformer: { model: modelPath },
|
|
95
|
+
tokens: tokensPath,
|
|
96
|
+
numThreads: 4,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
recognizer = new OfflineRecognizer({ modelConfig });
|
|
100
|
+
console.log(`[asr] loaded ${best.type} from ${best.dir}`);
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
console.warn("[asr] failed to load sherpa-onnx:", e);
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Convert audio to 16kHz mono WAV using ffmpeg.
|
|
110
|
+
* Returns the path to the temp WAV file.
|
|
111
|
+
*/
|
|
112
|
+
function convertToWav(inputPath) {
|
|
113
|
+
const wavPath = inputPath + ".wav";
|
|
114
|
+
execSync(`ffmpeg -y -i "${inputPath}" -ar 16000 -ac 1 -f wav "${wavPath}" 2>/dev/null`);
|
|
115
|
+
return wavPath;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Read WAV file and return Float32Array of samples.
|
|
119
|
+
*/
|
|
120
|
+
function readWavSamples(wavPath) {
|
|
121
|
+
const buf = fs.readFileSync(wavPath);
|
|
122
|
+
// Skip 44-byte WAV header, read 16-bit PCM
|
|
123
|
+
const dataStart = 44;
|
|
124
|
+
const int16 = new Int16Array(buf.buffer, buf.byteOffset + dataStart, (buf.byteLength - dataStart) / 2);
|
|
125
|
+
const float32 = new Float32Array(int16.length);
|
|
126
|
+
for (let i = 0; i < int16.length; i++) {
|
|
127
|
+
float32[i] = int16[i] / 32768;
|
|
128
|
+
}
|
|
129
|
+
return { samples: float32, sampleRate: 16000 };
|
|
130
|
+
}
|
|
131
|
+
export function mountAsrRoute(app) {
|
|
132
|
+
// Try to init at mount time (fire-and-forget, won't block boot)
|
|
133
|
+
initRecognizer().then((ok) => {
|
|
134
|
+
if (ok)
|
|
135
|
+
console.log("[asr] POST /api/transcribe ready");
|
|
136
|
+
});
|
|
137
|
+
// Lightweight check — frontend hides mic button when ASR is unavailable
|
|
138
|
+
app.get("/api/transcribe/status", (_req, res) => {
|
|
139
|
+
res.json({ available: !!recognizer });
|
|
140
|
+
});
|
|
141
|
+
app.post("/api/transcribe", async (req, res) => {
|
|
142
|
+
if (!recognizer && !(await initRecognizer())) {
|
|
143
|
+
res.status(503).json({ error: "ASR model not loaded" });
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
// Collect body as buffer
|
|
147
|
+
const chunks = [];
|
|
148
|
+
req.on("data", (chunk) => chunks.push(chunk));
|
|
149
|
+
req.on("end", () => {
|
|
150
|
+
const audioBuffer = Buffer.concat(chunks);
|
|
151
|
+
if (audioBuffer.length === 0) {
|
|
152
|
+
res.status(400).json({ error: "empty audio" });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
// Write to temp file, convert to WAV, transcribe
|
|
156
|
+
const tmpDir = os.tmpdir();
|
|
157
|
+
const tmpInput = path.join(tmpDir, `asr-${Date.now()}.webm`);
|
|
158
|
+
const tmpWav = tmpInput + ".wav";
|
|
159
|
+
try {
|
|
160
|
+
fs.writeFileSync(tmpInput, audioBuffer);
|
|
161
|
+
const wavPath = convertToWav(tmpInput);
|
|
162
|
+
const { samples, sampleRate } = readWavSamples(wavPath);
|
|
163
|
+
const stream = recognizer.createStream();
|
|
164
|
+
stream.acceptWaveform({ samples, sampleRate });
|
|
165
|
+
recognizer.decode(stream);
|
|
166
|
+
const text = recognizer.getResult(stream).text || "";
|
|
167
|
+
res.json({ text: text.trim() });
|
|
168
|
+
}
|
|
169
|
+
catch (e) {
|
|
170
|
+
res.status(500).json({ error: `transcription failed: ${e}` });
|
|
171
|
+
}
|
|
172
|
+
finally {
|
|
173
|
+
// Cleanup
|
|
174
|
+
try {
|
|
175
|
+
fs.unlinkSync(tmpInput);
|
|
176
|
+
}
|
|
177
|
+
catch { }
|
|
178
|
+
try {
|
|
179
|
+
fs.unlinkSync(tmpWav);
|
|
180
|
+
}
|
|
181
|
+
catch { }
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=asr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asr.js","sourceRoot":"","sources":["../../src/boot/asr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-core.d.ts","sourceRoot":"","sources":["../../src/boot/routes-core.ts"],"names":[],"mappings":"AAQA,OAAgB,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AAG7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAoBlE,MAAM,WAAW,mBAAmB;IAClC;;mEAE+D;IAC/D,cAAc,EAAE,cAAc,CAAC;IAC/B,sEAAsE;IACtE,WAAW,EAAE,MAAM,MAAM,EAAE,CAAC;CAC7B;AAID,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,mBAAmB,GACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"routes-core.d.ts","sourceRoot":"","sources":["../../src/boot/routes-core.ts"],"names":[],"mappings":"AAQA,OAAgB,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AAG7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAoBlE,MAAM,WAAW,mBAAmB;IAClC;;mEAE+D;IAC/D,cAAc,EAAE,cAAc,CAAC;IAC/B,sEAAsE;IACtE,WAAW,EAAE,MAAM,MAAM,EAAE,CAAC;CAC7B;AAID,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,mBAAmB,GACxB,IAAI,CAoSN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-core.js","sourceRoot":"","sources":["../../src/boot/routes-core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes-core.js","sourceRoot":"","sources":["../../src/boot/routes-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -600,6 +600,48 @@ mountPublicAuthRoutes(app, {
|
|
|
600
600
|
});
|
|
601
601
|
// Everything below /api/* needs a tenant context. The chain is built
|
|
602
602
|
// per-request from the live auth config (see resolvePublicUrl comment).
|
|
603
|
+
// ─── ASR (before auth) ─────────────────────────────────
|
|
604
|
+
import { mountAsrRoute } from "./boot/asr.js";
|
|
605
|
+
mountAsrRoute(app);
|
|
606
|
+
// ─── HF Model Proxy (before auth) ─────────────────────────
|
|
607
|
+
// Proxies model file requests to HuggingFace mirror so the browser
|
|
608
|
+
// can download ONNX models (Whisper etc.) without CORS or GFW issues.
|
|
609
|
+
// No auth required — model files are public.
|
|
610
|
+
const HF_PROXY_PREFIX = "/api/hf-proxy/";
|
|
611
|
+
app.use(async (req, res, next) => {
|
|
612
|
+
if (!req.path.startsWith(HF_PROXY_PREFIX))
|
|
613
|
+
return next();
|
|
614
|
+
const hfPath = req.path.slice(HF_PROXY_PREFIX.length);
|
|
615
|
+
if (!hfPath)
|
|
616
|
+
return res.status(400).json({ error: "missing path" });
|
|
617
|
+
const hfBase = process.env.HF_MIRROR || "https://huggingface.co";
|
|
618
|
+
const url = `${hfBase}/${hfPath}`;
|
|
619
|
+
try {
|
|
620
|
+
const upstream = await fetch(url);
|
|
621
|
+
if (!upstream.ok) {
|
|
622
|
+
res.status(upstream.status).send(upstream.statusText);
|
|
623
|
+
return;
|
|
624
|
+
}
|
|
625
|
+
const ct = upstream.headers.get("content-type");
|
|
626
|
+
if (ct)
|
|
627
|
+
res.setHeader("Content-Type", ct);
|
|
628
|
+
const cl = upstream.headers.get("content-length");
|
|
629
|
+
if (cl)
|
|
630
|
+
res.setHeader("Content-Length", cl);
|
|
631
|
+
res.setHeader("Cache-Control", "public, max-age=604800, immutable");
|
|
632
|
+
// Stream large files (ONNX models can be 100MB+)
|
|
633
|
+
if (upstream.body) {
|
|
634
|
+
const { Readable } = await import("node:stream");
|
|
635
|
+
Readable.fromWeb(upstream.body).pipe(res);
|
|
636
|
+
}
|
|
637
|
+
else {
|
|
638
|
+
res.end();
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
catch (e) {
|
|
642
|
+
res.status(502).json({ error: `HF proxy: ${e}` });
|
|
643
|
+
}
|
|
644
|
+
});
|
|
603
645
|
app.use("/api", tenantMiddleware({
|
|
604
646
|
ops: globalOps,
|
|
605
647
|
resolvers: () => buildResolverChain(loadGlobalConfig().auth),
|
|
@@ -628,6 +670,9 @@ mountChannelRoutes(app);
|
|
|
628
670
|
// boot/routes-core.ts for the bodies. Identity badge / model picker /
|
|
629
671
|
// worker-agents allow-list pickers consume these.
|
|
630
672
|
mountCoreRoutes(app, { pluginRegistry, listTenants: () => globalOps.list() });
|
|
673
|
+
// ASR model admin routes
|
|
674
|
+
import { mountAsrAdminRoutes } from "./boot/asr-admin.js";
|
|
675
|
+
mountAsrAdminRoutes(app);
|
|
631
676
|
// Admin auth routes (after the wall): GET/PATCH /api/admin/auth,
|
|
632
677
|
// guarded by requireAdmin. Writes to config.json; the resolver chain
|
|
633
678
|
// getter above re-reads on the next request so no restart is needed.
|