@steipete/summarize-core 0.9.0 → 0.11.0
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/README.md +0 -1
- package/dist/esm/content/index.js +5 -5
- package/dist/esm/content/index.js.map +1 -1
- package/dist/esm/content/link-preview/client.js +23 -8
- package/dist/esm/content/link-preview/client.js.map +1 -1
- package/dist/esm/content/link-preview/content/article.js +84 -83
- package/dist/esm/content/link-preview/content/article.js.map +1 -1
- package/dist/esm/content/link-preview/content/cleaner.js +23 -20
- package/dist/esm/content/link-preview/content/cleaner.js.map +1 -1
- package/dist/esm/content/link-preview/content/constants.js.map +1 -1
- package/dist/esm/content/link-preview/content/fetcher.js +46 -40
- package/dist/esm/content/link-preview/content/fetcher.js.map +1 -1
- package/dist/esm/content/link-preview/content/firecrawl.js +18 -17
- package/dist/esm/content/link-preview/content/firecrawl.js.map +1 -1
- package/dist/esm/content/link-preview/content/html.js +31 -28
- package/dist/esm/content/link-preview/content/html.js.map +1 -1
- package/dist/esm/content/link-preview/content/index.js +173 -90
- package/dist/esm/content/link-preview/content/index.js.map +1 -1
- package/dist/esm/content/link-preview/content/jsonld.js +12 -12
- package/dist/esm/content/link-preview/content/jsonld.js.map +1 -1
- package/dist/esm/content/link-preview/content/parsers.js +20 -20
- package/dist/esm/content/link-preview/content/parsers.js.map +1 -1
- package/dist/esm/content/link-preview/content/podcast-utils.js +34 -34
- package/dist/esm/content/link-preview/content/podcast-utils.js.map +1 -1
- package/dist/esm/content/link-preview/content/readability.js +16 -15
- package/dist/esm/content/link-preview/content/readability.js.map +1 -1
- package/dist/esm/content/link-preview/content/twitter-utils.js +24 -11
- package/dist/esm/content/link-preview/content/twitter-utils.js.map +1 -1
- package/dist/esm/content/link-preview/content/types.js +1 -1
- package/dist/esm/content/link-preview/content/types.js.map +1 -1
- package/dist/esm/content/link-preview/content/utils.js +30 -22
- package/dist/esm/content/link-preview/content/utils.js.map +1 -1
- package/dist/esm/content/link-preview/content/video.js +19 -19
- package/dist/esm/content/link-preview/content/video.js.map +1 -1
- package/dist/esm/content/link-preview/content/visibility.js +121 -0
- package/dist/esm/content/link-preview/content/visibility.js.map +1 -0
- package/dist/esm/content/link-preview/content/youtube.js +10 -10
- package/dist/esm/content/link-preview/content/youtube.js.map +1 -1
- package/dist/esm/content/link-preview/deps.js +16 -16
- package/dist/esm/content/link-preview/deps.js.map +1 -1
- package/dist/esm/content/link-preview/fetch-with-timeout.js +4 -4
- package/dist/esm/content/link-preview/fetch-with-timeout.js.map +1 -1
- package/dist/esm/content/link-preview/types.js +1 -1
- package/dist/esm/content/link-preview/types.js.map +1 -1
- package/dist/esm/content/transcript/cache.js +47 -22
- package/dist/esm/content/transcript/cache.js.map +1 -1
- package/dist/esm/content/transcript/index.js +71 -25
- package/dist/esm/content/transcript/index.js.map +1 -1
- package/dist/esm/content/transcript/normalize.js +10 -10
- package/dist/esm/content/transcript/normalize.js.map +1 -1
- package/dist/esm/content/transcript/parse.js +125 -13
- package/dist/esm/content/transcript/parse.js.map +1 -1
- package/dist/esm/content/transcript/providers/generic.js +112 -81
- package/dist/esm/content/transcript/providers/generic.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/apple-flow.js +38 -36
- package/dist/esm/content/transcript/providers/podcast/apple-flow.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/apple.js +5 -5
- package/dist/esm/content/transcript/providers/podcast/apple.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/constants.js +2 -2
- package/dist/esm/content/transcript/providers/podcast/constants.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/itunes.js +44 -42
- package/dist/esm/content/transcript/providers/podcast/itunes.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/json.js +4 -4
- package/dist/esm/content/transcript/providers/podcast/json.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/media.js +66 -56
- package/dist/esm/content/transcript/providers/podcast/media.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/results.js +2 -2
- package/dist/esm/content/transcript/providers/podcast/results.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/rss.js +42 -28
- package/dist/esm/content/transcript/providers/podcast/rss.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/spotify-flow.js +39 -38
- package/dist/esm/content/transcript/providers/podcast/spotify-flow.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/spotify.js +32 -32
- package/dist/esm/content/transcript/providers/podcast/spotify.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast.js +52 -43
- package/dist/esm/content/transcript/providers/podcast.js.map +1 -1
- package/dist/esm/content/transcript/providers/transcription-start.js +78 -0
- package/dist/esm/content/transcript/providers/transcription-start.js.map +1 -0
- package/dist/esm/content/transcript/providers/youtube/api.js +74 -57
- package/dist/esm/content/transcript/providers/youtube/api.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube/apify.js +7 -7
- package/dist/esm/content/transcript/providers/youtube/apify.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube/captions.js +112 -74
- package/dist/esm/content/transcript/providers/youtube/captions.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube/yt-dlp.js +161 -101
- package/dist/esm/content/transcript/providers/youtube/yt-dlp.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube.js +97 -80
- package/dist/esm/content/transcript/providers/youtube.js.map +1 -1
- package/dist/esm/content/transcript/timestamps.js +79 -0
- package/dist/esm/content/transcript/timestamps.js.map +1 -0
- package/dist/esm/content/transcript/transcription-config.js +14 -0
- package/dist/esm/content/transcript/transcription-config.js.map +1 -0
- package/dist/esm/content/transcript/utils.js +35 -35
- package/dist/esm/content/transcript/utils.js.map +1 -1
- package/dist/esm/content/url.js +59 -28
- package/dist/esm/content/url.js.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/language.js +77 -77
- package/dist/esm/language.js.map +1 -1
- package/dist/esm/openai/base-url.js +35 -0
- package/dist/esm/openai/base-url.js.map +1 -0
- package/dist/esm/processes.js +121 -0
- package/dist/esm/processes.js.map +1 -0
- package/dist/esm/prompts/cli.js +17 -17
- package/dist/esm/prompts/cli.js.map +1 -1
- package/dist/esm/prompts/file.js +56 -40
- package/dist/esm/prompts/file.js.map +1 -1
- package/dist/esm/prompts/format.js +2 -2
- package/dist/esm/prompts/format.js.map +1 -1
- package/dist/esm/prompts/index.js +5 -4
- package/dist/esm/prompts/index.js.map +1 -1
- package/dist/esm/prompts/link-summary.js +96 -46
- package/dist/esm/prompts/link-summary.js.map +1 -1
- package/dist/esm/prompts/summary-lengths.js +10 -10
- package/dist/esm/prompts/summary-lengths.js.map +1 -1
- package/dist/esm/prompts/summary-system.js +13 -0
- package/dist/esm/prompts/summary-system.js.map +1 -0
- package/dist/esm/shared/contracts.js +1 -1
- package/dist/esm/shared/contracts.js.map +1 -1
- package/dist/esm/transcription/onnx-cli.js +319 -0
- package/dist/esm/transcription/onnx-cli.js.map +1 -0
- package/dist/esm/transcription/whisper/constants.js +3 -3
- package/dist/esm/transcription/whisper/constants.js.map +1 -1
- package/dist/esm/transcription/whisper/core.js +209 -52
- package/dist/esm/transcription/whisper/core.js.map +1 -1
- package/dist/esm/transcription/whisper/fal.js +14 -14
- package/dist/esm/transcription/whisper/fal.js.map +1 -1
- package/dist/esm/transcription/whisper/ffmpeg.js +134 -82
- package/dist/esm/transcription/whisper/ffmpeg.js.map +1 -1
- package/dist/esm/transcription/whisper/groq.js +46 -0
- package/dist/esm/transcription/whisper/groq.js.map +1 -0
- package/dist/esm/transcription/whisper/openai.js +19 -13
- package/dist/esm/transcription/whisper/openai.js.map +1 -1
- package/dist/esm/transcription/whisper/utils.js +19 -19
- package/dist/esm/transcription/whisper/utils.js.map +1 -1
- package/dist/esm/transcription/whisper/whisper-cpp.js +68 -58
- package/dist/esm/transcription/whisper/whisper-cpp.js.map +1 -1
- package/dist/esm/transcription/whisper.js +4 -4
- package/dist/esm/transcription/whisper.js.map +1 -1
- package/dist/types/content/cache/types.d.ts +25 -1
- package/dist/types/content/index.d.ts +7 -7
- package/dist/types/content/link-preview/client.d.ts +9 -4
- package/dist/types/content/link-preview/content/cleaner.d.ts +1 -0
- package/dist/types/content/link-preview/content/fetcher.d.ts +2 -2
- package/dist/types/content/link-preview/content/firecrawl.d.ts +8 -7
- package/dist/types/content/link-preview/content/html.d.ts +9 -8
- package/dist/types/content/link-preview/content/index.d.ts +3 -3
- package/dist/types/content/link-preview/content/twitter-utils.d.ts +1 -0
- package/dist/types/content/link-preview/content/types.d.ts +13 -8
- package/dist/types/content/link-preview/content/utils.d.ts +3 -3
- package/dist/types/content/link-preview/content/video.d.ts +1 -1
- package/dist/types/content/link-preview/content/visibility.d.ts +1 -0
- package/dist/types/content/link-preview/deps.d.ts +44 -28
- package/dist/types/content/link-preview/types.d.ts +10 -4
- package/dist/types/content/transcript/cache.d.ts +9 -6
- package/dist/types/content/transcript/index.d.ts +9 -6
- package/dist/types/content/transcript/parse.d.ts +7 -0
- package/dist/types/content/transcript/providers/generic.d.ts +1 -1
- package/dist/types/content/transcript/providers/podcast/apple-flow.d.ts +2 -2
- package/dist/types/content/transcript/providers/podcast/flow-context.d.ts +4 -4
- package/dist/types/content/transcript/providers/podcast/media.d.ts +10 -6
- package/dist/types/content/transcript/providers/podcast/results.d.ts +3 -3
- package/dist/types/content/transcript/providers/podcast/rss.d.ts +2 -0
- package/dist/types/content/transcript/providers/podcast/spotify-flow.d.ts +2 -2
- package/dist/types/content/transcript/providers/podcast/spotify.d.ts +2 -2
- package/dist/types/content/transcript/providers/podcast.d.ts +5 -5
- package/dist/types/content/transcript/providers/transcription-start.d.ts +32 -0
- package/dist/types/content/transcript/providers/youtube/api.d.ts +7 -2
- package/dist/types/content/transcript/providers/youtube/captions.d.ts +6 -1
- package/dist/types/content/transcript/providers/youtube/yt-dlp.d.ts +13 -6
- package/dist/types/content/transcript/providers/youtube.d.ts +1 -1
- package/dist/types/content/transcript/timestamps.d.ts +5 -0
- package/dist/types/content/transcript/transcription-config.d.ts +15 -0
- package/dist/types/content/transcript/types.d.ts +15 -7
- package/dist/types/content/transcript/utils.d.ts +1 -1
- package/dist/types/content/url.d.ts +5 -3
- package/dist/types/index.d.ts +5 -4
- package/dist/types/language.d.ts +4 -4
- package/dist/types/openai/base-url.d.ts +14 -0
- package/dist/types/processes.d.ts +50 -0
- package/dist/types/prompts/cli.d.ts +3 -3
- package/dist/types/prompts/file.d.ts +2 -2
- package/dist/types/prompts/index.d.ts +6 -5
- package/dist/types/prompts/link-summary.d.ts +9 -4
- package/dist/types/prompts/summary-lengths.d.ts +1 -1
- package/dist/types/prompts/summary-system.d.ts +1 -0
- package/dist/types/transcription/onnx-cli.d.ts +25 -0
- package/dist/types/transcription/whisper/core.d.ts +10 -3
- package/dist/types/transcription/whisper/ffmpeg.d.ts +5 -0
- package/dist/types/transcription/whisper/groq.d.ts +2 -0
- package/dist/types/transcription/whisper/openai.d.ts +6 -1
- package/dist/types/transcription/whisper/types.d.ts +1 -1
- package/dist/types/transcription/whisper/whisper-cpp.d.ts +1 -1
- package/dist/types/transcription/whisper.d.ts +5 -5
- package/package.json +24 -18
- package/LICENSE +0 -21
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { createWriteStream, promises as fs } from "node:fs";
|
|
3
|
+
import { homedir, tmpdir } from "node:os";
|
|
4
|
+
import { basename, extname, join } from "node:path";
|
|
5
|
+
import { Readable } from "node:stream";
|
|
6
|
+
import { pipeline } from "node:stream/promises";
|
|
7
|
+
import { spawnTracked } from "../processes.js";
|
|
8
|
+
import { isFfmpegAvailable, runFfmpegTranscodeToWav } from "./whisper/ffmpeg.js";
|
|
9
|
+
import { wrapError } from "./whisper/utils.js";
|
|
10
|
+
export function resolvePreferredOnnxModel(env = process.env) {
|
|
11
|
+
const raw = env.SUMMARIZE_TRANSCRIBER?.trim().toLowerCase() ?? "";
|
|
12
|
+
if (raw === "parakeet" || raw === "canary")
|
|
13
|
+
return raw;
|
|
14
|
+
if (raw && raw !== "auto")
|
|
15
|
+
return null;
|
|
16
|
+
if (resolveOnnxCommand("parakeet", env))
|
|
17
|
+
return "parakeet";
|
|
18
|
+
if (resolveOnnxCommand("canary", env))
|
|
19
|
+
return "canary";
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
export function isOnnxCliConfigured(model, env = process.env) {
|
|
23
|
+
return resolveOnnxCommand(model, env) !== null;
|
|
24
|
+
}
|
|
25
|
+
const COMMAND_ENV_VAR = {
|
|
26
|
+
parakeet: "SUMMARIZE_ONNX_PARAKEET_CMD",
|
|
27
|
+
canary: "SUMMARIZE_ONNX_CANARY_CMD",
|
|
28
|
+
};
|
|
29
|
+
const MODEL_SOURCES = {
|
|
30
|
+
parakeet: {
|
|
31
|
+
repo: "istupakov/parakeet-tdt-0.6b-v3-onnx",
|
|
32
|
+
files: [
|
|
33
|
+
{ name: "model", path: "model.onnx" },
|
|
34
|
+
{ name: "vocab", path: "vocab.txt" },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
canary: {
|
|
38
|
+
repo: "istupakov/canary-1b-v2-onnx",
|
|
39
|
+
files: [
|
|
40
|
+
{ name: "model", path: "model.onnx" },
|
|
41
|
+
{ name: "vocab", path: "vocab.txt" },
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
export function resolveOnnxProviderId(model) {
|
|
46
|
+
return model === "parakeet" ? "onnx-parakeet" : "onnx-canary";
|
|
47
|
+
}
|
|
48
|
+
export function resolveOnnxCommand(model, env = process.env) {
|
|
49
|
+
const raw = env[COMMAND_ENV_VAR[model]]?.trim();
|
|
50
|
+
return raw && raw.length > 0 ? raw : null;
|
|
51
|
+
}
|
|
52
|
+
function parseCommandTemplate(raw) {
|
|
53
|
+
const trimmed = raw.trim();
|
|
54
|
+
if (trimmed.startsWith("[")) {
|
|
55
|
+
try {
|
|
56
|
+
const parsed = JSON.parse(trimmed);
|
|
57
|
+
if (Array.isArray(parsed) &&
|
|
58
|
+
parsed.length > 0 &&
|
|
59
|
+
parsed.every((v) => typeof v === "string" && v.trim().length > 0)) {
|
|
60
|
+
return { kind: "argv", argvTemplate: parsed };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// fall through to shell mode
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { kind: "shell", commandTemplate: trimmed };
|
|
68
|
+
}
|
|
69
|
+
function shellEscape(value) {
|
|
70
|
+
if (process.platform === "win32") {
|
|
71
|
+
// Best-effort: quote for cmd.exe-ish shells.
|
|
72
|
+
return `"${value.replaceAll('"', '""')}"`;
|
|
73
|
+
}
|
|
74
|
+
// POSIX shell-safe single-quote escaping.
|
|
75
|
+
return `'${value.replaceAll("'", `'\\''`)}'`;
|
|
76
|
+
}
|
|
77
|
+
function buildArgvCommand({ argvTemplate, inputPath, artifacts, }) {
|
|
78
|
+
const inputPlaceholderPresent = argvTemplate.some((arg) => arg.includes("{input}"));
|
|
79
|
+
const replacements = {
|
|
80
|
+
"{input}": inputPath,
|
|
81
|
+
"{model_dir}": artifacts.modelDir,
|
|
82
|
+
"{model}": artifacts.modelPath,
|
|
83
|
+
"{vocab}": artifacts.vocabPath,
|
|
84
|
+
};
|
|
85
|
+
const argv = argvTemplate.map((arg) => {
|
|
86
|
+
let next = arg;
|
|
87
|
+
for (const [needle, replacement] of Object.entries(replacements)) {
|
|
88
|
+
if (next.includes(needle))
|
|
89
|
+
next = next.replaceAll(needle, replacement);
|
|
90
|
+
}
|
|
91
|
+
return next;
|
|
92
|
+
});
|
|
93
|
+
if (!inputPlaceholderPresent)
|
|
94
|
+
argv.push(inputPath);
|
|
95
|
+
const [command, ...args] = argv;
|
|
96
|
+
return { command, args };
|
|
97
|
+
}
|
|
98
|
+
function buildShellCommand({ commandTemplate, inputPath, artifacts, }) {
|
|
99
|
+
const inputPlaceholderPresent = commandTemplate.includes("{input}");
|
|
100
|
+
const replacements = {
|
|
101
|
+
"{input}": shellEscape(inputPath),
|
|
102
|
+
"{model_dir}": shellEscape(artifacts.modelDir),
|
|
103
|
+
"{model}": shellEscape(artifacts.modelPath),
|
|
104
|
+
"{vocab}": shellEscape(artifacts.vocabPath),
|
|
105
|
+
};
|
|
106
|
+
let command = commandTemplate;
|
|
107
|
+
for (const [needle, replacement] of Object.entries(replacements)) {
|
|
108
|
+
if (command.includes(needle)) {
|
|
109
|
+
command = command.replaceAll(needle, replacement);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (!inputPlaceholderPresent) {
|
|
113
|
+
command = `${command} ${shellEscape(inputPath)}`;
|
|
114
|
+
}
|
|
115
|
+
return command;
|
|
116
|
+
}
|
|
117
|
+
function resolveCacheDir(env) {
|
|
118
|
+
const override = env.SUMMARIZE_ONNX_CACHE_DIR?.trim();
|
|
119
|
+
if (override)
|
|
120
|
+
return override;
|
|
121
|
+
const base = env.XDG_CACHE_HOME?.trim() || join(homedir(), ".cache");
|
|
122
|
+
return join(base, "summarize", "onnx");
|
|
123
|
+
}
|
|
124
|
+
async function ensurePathExists(path) {
|
|
125
|
+
await fs.mkdir(path, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
async function downloadFile(url, destination) {
|
|
128
|
+
const response = await fetch(url);
|
|
129
|
+
if (!response.ok || !response.body) {
|
|
130
|
+
throw new Error(`download failed (${response.status}): ${response.statusText || "unknown error"}`);
|
|
131
|
+
}
|
|
132
|
+
// `fetch` Response.body is typed as DOM `ReadableStream` but Node's `Readable.fromWeb` expects
|
|
133
|
+
// `node:stream/web`'s `ReadableStream` (which includes async-iterator helpers). Runtime is fine.
|
|
134
|
+
const body = response.body;
|
|
135
|
+
await pipeline(Readable.fromWeb(body), createWriteStream(destination));
|
|
136
|
+
}
|
|
137
|
+
async function ensureModelArtifactsDownloaded({ model, notes, env, }) {
|
|
138
|
+
const cacheDir = resolveCacheDir(env);
|
|
139
|
+
const modelDir = join(cacheDir, model);
|
|
140
|
+
await ensurePathExists(modelDir);
|
|
141
|
+
const source = MODEL_SOURCES[model];
|
|
142
|
+
const mirrorOverride = env.SUMMARIZE_ONNX_MODEL_BASE_URL?.trim()?.replace(/\/$/, "") || null;
|
|
143
|
+
let downloaded = false;
|
|
144
|
+
for (const file of source.files) {
|
|
145
|
+
const targetPath = join(modelDir, file.path);
|
|
146
|
+
const exists = await fs
|
|
147
|
+
.stat(targetPath)
|
|
148
|
+
.then(() => true)
|
|
149
|
+
.catch(() => false);
|
|
150
|
+
if (exists)
|
|
151
|
+
continue;
|
|
152
|
+
const baseUrl = mirrorOverride || `https://huggingface.co/${source.repo}/resolve/main`;
|
|
153
|
+
const url = `${baseUrl}/${file.path}`;
|
|
154
|
+
await downloadFile(url, targetPath);
|
|
155
|
+
downloaded = true;
|
|
156
|
+
}
|
|
157
|
+
if (downloaded) {
|
|
158
|
+
notes.push(`Downloaded ${model} ONNX files to ${modelDir}`);
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
modelDir,
|
|
162
|
+
modelPath: join(modelDir, "model.onnx"),
|
|
163
|
+
vocabPath: join(modelDir, "vocab.txt"),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
async function ensureWavInput({ filePath, mediaType, notes, }) {
|
|
167
|
+
const lower = mediaType.toLowerCase();
|
|
168
|
+
if (lower.includes("wav") || lower.includes("wave")) {
|
|
169
|
+
return { path: filePath, cleanup: null };
|
|
170
|
+
}
|
|
171
|
+
const ffmpegAvailable = await isFfmpegAvailable();
|
|
172
|
+
if (!ffmpegAvailable) {
|
|
173
|
+
notes.push("ONNX transcriber: proceeding without ffmpeg transcode (input not WAV)");
|
|
174
|
+
return { path: filePath, cleanup: null };
|
|
175
|
+
}
|
|
176
|
+
const outputPath = join(tmpdir(), `summarize-onnx-${randomUUID()}.wav`);
|
|
177
|
+
try {
|
|
178
|
+
await runFfmpegTranscodeToWav({ inputPath: filePath, outputPath });
|
|
179
|
+
notes.push("ONNX transcriber: transcoded media to 16kHz WAV via ffmpeg");
|
|
180
|
+
return {
|
|
181
|
+
path: outputPath,
|
|
182
|
+
cleanup: async () => {
|
|
183
|
+
await fs.unlink(outputPath).catch(() => { });
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
notes.push(`ONNX transcriber: ffmpeg transcode to WAV failed (${wrapError("ffmpeg", error).message}); using original input`);
|
|
189
|
+
return { path: filePath, cleanup: null };
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
export async function transcribeWithOnnxCli({ model, bytes, mediaType, filename, totalDurationSeconds = null, onProgress = null, env = process.env, }) {
|
|
193
|
+
const nameHint = filename?.trim() || "media";
|
|
194
|
+
const baseName = basename(nameHint).replaceAll("/", "_").replaceAll("\\", "_").trim() || "media";
|
|
195
|
+
const safeName = extname(baseName) ? baseName : `${baseName}${extname(nameHint) || ".bin"}`;
|
|
196
|
+
const tempFile = join(tmpdir(), `summarize-onnx-${randomUUID()}-${safeName}`);
|
|
197
|
+
try {
|
|
198
|
+
await fs.writeFile(tempFile, bytes);
|
|
199
|
+
return transcribeWithOnnxCliFile({
|
|
200
|
+
model,
|
|
201
|
+
filePath: tempFile,
|
|
202
|
+
mediaType,
|
|
203
|
+
totalDurationSeconds,
|
|
204
|
+
onProgress,
|
|
205
|
+
env,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
finally {
|
|
209
|
+
await fs.unlink(tempFile).catch(() => { });
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
export async function transcribeWithOnnxCliFile({ model, filePath, mediaType, totalDurationSeconds = null, onProgress = null, env = process.env, }) {
|
|
213
|
+
const notes = [];
|
|
214
|
+
const commandTemplate = resolveOnnxCommand(model, env);
|
|
215
|
+
const provider = resolveOnnxProviderId(model);
|
|
216
|
+
if (!commandTemplate) {
|
|
217
|
+
return {
|
|
218
|
+
text: null,
|
|
219
|
+
provider,
|
|
220
|
+
error: new Error(`${provider}: command not configured (set ${COMMAND_ENV_VAR[model]} to a CLI that emits text from WAV audio)`),
|
|
221
|
+
notes,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
let artifacts;
|
|
225
|
+
try {
|
|
226
|
+
artifacts = await ensureModelArtifactsDownloaded({ model, notes, env });
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
return {
|
|
230
|
+
text: null,
|
|
231
|
+
provider,
|
|
232
|
+
error: wrapError(`${provider} model download failed`, error),
|
|
233
|
+
notes,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
const wavInput = await ensureWavInput({ filePath, mediaType, notes });
|
|
237
|
+
const template = parseCommandTemplate(commandTemplate);
|
|
238
|
+
const argvCommand = template.kind === "argv"
|
|
239
|
+
? buildArgvCommand({
|
|
240
|
+
argvTemplate: template.argvTemplate,
|
|
241
|
+
inputPath: wavInput.path,
|
|
242
|
+
artifacts,
|
|
243
|
+
})
|
|
244
|
+
: null;
|
|
245
|
+
const shellCommand = template.kind === "shell"
|
|
246
|
+
? buildShellCommand({
|
|
247
|
+
commandTemplate: template.commandTemplate,
|
|
248
|
+
inputPath: wavInput.path,
|
|
249
|
+
artifacts,
|
|
250
|
+
})
|
|
251
|
+
: null;
|
|
252
|
+
return new Promise((resolve) => {
|
|
253
|
+
onProgress?.({
|
|
254
|
+
partIndex: null,
|
|
255
|
+
parts: null,
|
|
256
|
+
processedDurationSeconds: null,
|
|
257
|
+
totalDurationSeconds,
|
|
258
|
+
});
|
|
259
|
+
const { proc } = argvCommand
|
|
260
|
+
? spawnTracked(argvCommand.command, argvCommand.args, {
|
|
261
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
262
|
+
label: provider ?? argvCommand.command,
|
|
263
|
+
kind: provider ?? "onnx",
|
|
264
|
+
})
|
|
265
|
+
: spawnTracked(shellCommand, [], {
|
|
266
|
+
shell: true,
|
|
267
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
268
|
+
label: provider ?? "onnx",
|
|
269
|
+
kind: provider ?? "onnx",
|
|
270
|
+
});
|
|
271
|
+
let stdout = "";
|
|
272
|
+
let stderr = "";
|
|
273
|
+
proc.stdout?.setEncoding("utf8");
|
|
274
|
+
proc.stdout?.on("data", (chunk) => {
|
|
275
|
+
if (stdout.length > 256_000)
|
|
276
|
+
return;
|
|
277
|
+
stdout += chunk;
|
|
278
|
+
});
|
|
279
|
+
proc.stderr?.setEncoding("utf8");
|
|
280
|
+
proc.stderr?.on("data", (chunk) => {
|
|
281
|
+
if (stderr.length > 16_000)
|
|
282
|
+
return;
|
|
283
|
+
stderr += chunk;
|
|
284
|
+
});
|
|
285
|
+
proc.on("error", (error) => {
|
|
286
|
+
if (wavInput.cleanup) {
|
|
287
|
+
void wavInput.cleanup();
|
|
288
|
+
}
|
|
289
|
+
resolve({ text: null, provider, error: wrapError(`${provider} failed`, error), notes });
|
|
290
|
+
});
|
|
291
|
+
proc.on("close", (code) => {
|
|
292
|
+
void (async () => {
|
|
293
|
+
if (wavInput.cleanup)
|
|
294
|
+
await wavInput.cleanup();
|
|
295
|
+
if (code !== 0) {
|
|
296
|
+
resolve({
|
|
297
|
+
text: null,
|
|
298
|
+
provider,
|
|
299
|
+
error: new Error(`${provider} failed (${code ?? "unknown"}): ${stderr.trim() || "unknown error"}`),
|
|
300
|
+
notes,
|
|
301
|
+
});
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const trimmed = stdout.trim();
|
|
305
|
+
if (!trimmed) {
|
|
306
|
+
resolve({
|
|
307
|
+
text: null,
|
|
308
|
+
provider,
|
|
309
|
+
error: new Error(`${provider} returned empty text`),
|
|
310
|
+
notes,
|
|
311
|
+
});
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
resolve({ text: trimmed, provider, error: null, notes });
|
|
315
|
+
})();
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=onnx-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-cli.js","sourceRoot":"","sources":["../../../src/transcription/onnx-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ export const TRANSCRIPTION_TIMEOUT_MS = 600_000;
|
|
|
2
2
|
export const MAX_ERROR_DETAIL_CHARS = 200;
|
|
3
3
|
export const MAX_OPENAI_UPLOAD_BYTES = 24 * 1024 * 1024;
|
|
4
4
|
export const DEFAULT_SEGMENT_SECONDS = 600;
|
|
5
|
-
export const DISABLE_LOCAL_WHISPER_CPP_ENV =
|
|
6
|
-
export const WHISPER_CPP_MODEL_PATH_ENV =
|
|
7
|
-
export const WHISPER_CPP_BINARY_ENV =
|
|
5
|
+
export const DISABLE_LOCAL_WHISPER_CPP_ENV = "SUMMARIZE_DISABLE_LOCAL_WHISPER_CPP";
|
|
6
|
+
export const WHISPER_CPP_MODEL_PATH_ENV = "SUMMARIZE_WHISPER_CPP_MODEL_PATH";
|
|
7
|
+
export const WHISPER_CPP_BINARY_ENV = "SUMMARIZE_WHISPER_CPP_BINARY";
|
|
8
8
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/transcription/whisper/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/transcription/whisper/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,qCAAqC,CAAC;AACnF,MAAM,CAAC,MAAM,0BAA0B,GAAG,kCAAkC,CAAC;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC"}
|