@argo-video/cli 0.1.1 → 0.2.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/README.md +46 -12
- package/dist/asset-server.d.ts.map +1 -1
- package/dist/asset-server.js +4 -1
- package/dist/asset-server.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +29 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -3
- package/dist/config.js.map +1 -1
- package/dist/export.d.ts +7 -0
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +16 -6
- package/dist/export.js.map +1 -1
- package/dist/fixtures.d.ts.map +1 -1
- package/dist/fixtures.js +14 -1
- package/dist/fixtures.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +11 -4
- package/dist/init.js.map +1 -1
- package/dist/narration.d.ts +23 -0
- package/dist/narration.d.ts.map +1 -1
- package/dist/narration.js +59 -0
- package/dist/narration.js.map +1 -1
- package/dist/overlays/index.d.ts +7 -2
- package/dist/overlays/index.d.ts.map +1 -1
- package/dist/overlays/index.js +16 -5
- package/dist/overlays/index.js.map +1 -1
- package/dist/overlays/templates.d.ts +2 -1
- package/dist/overlays/templates.d.ts.map +1 -1
- package/dist/overlays/templates.js +28 -24
- package/dist/overlays/templates.js.map +1 -1
- package/dist/overlays/types.d.ts +4 -0
- package/dist/overlays/types.d.ts.map +1 -1
- package/dist/overlays/types.js.map +1 -1
- package/dist/overlays/zones.d.ts +8 -0
- package/dist/overlays/zones.d.ts.map +1 -1
- package/dist/overlays/zones.js +48 -0
- package/dist/overlays/zones.js.map +1 -1
- package/dist/pipeline.d.ts +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +23 -2
- package/dist/pipeline.js.map +1 -1
- package/dist/record.d.ts +4 -0
- package/dist/record.d.ts.map +1 -1
- package/dist/record.js +25 -5
- package/dist/record.js.map +1 -1
- package/dist/tts/align.d.ts +9 -0
- package/dist/tts/align.d.ts.map +1 -1
- package/dist/tts/align.js +28 -15
- package/dist/tts/align.js.map +1 -1
- package/dist/tts/generate.d.ts +1 -0
- package/dist/tts/generate.d.ts.map +1 -1
- package/dist/tts/generate.js +4 -1
- package/dist/tts/generate.js.map +1 -1
- package/dist/tts/kokoro.d.ts +21 -4
- package/dist/tts/kokoro.d.ts.map +1 -1
- package/dist/tts/kokoro.js +27 -7
- package/dist/tts/kokoro.js.map +1 -1
- package/package.json +1 -1
package/dist/record.js
CHANGED
|
@@ -3,6 +3,7 @@ import { mkdirSync, readdirSync, copyFileSync, existsSync, rmSync, writeFileSync
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { startAssetServer } from './asset-server.js';
|
|
5
5
|
import { loadOverlayManifest, hasImageAssets } from './overlays/manifest.js';
|
|
6
|
+
import { normalizeDeviceScaleFactor } from './config.js';
|
|
6
7
|
function findVideoInResults(testResultsDir) {
|
|
7
8
|
if (!existsSync(testResultsDir))
|
|
8
9
|
return undefined;
|
|
@@ -17,6 +18,13 @@ function findVideoInResults(testResultsDir) {
|
|
|
17
18
|
function createPlaywrightConfig(options, outputDir) {
|
|
18
19
|
const demosDir = path.resolve(options.demosDir);
|
|
19
20
|
const { width, height } = options.video;
|
|
21
|
+
const browser = options.browser ?? 'chromium';
|
|
22
|
+
const deviceScaleFactor = normalizeDeviceScaleFactor(options.deviceScaleFactor);
|
|
23
|
+
// When using a non-default scale factor, record at the scaled resolution
|
|
24
|
+
// so Playwright captures every physical pixel. The export step will
|
|
25
|
+
// downscale back to the logical resolution with a high-quality filter.
|
|
26
|
+
const captureWidth = width * deviceScaleFactor;
|
|
27
|
+
const captureHeight = height * deviceScaleFactor;
|
|
20
28
|
return `import { defineConfig } from '@playwright/test';
|
|
21
29
|
|
|
22
30
|
export default defineConfig({
|
|
@@ -28,11 +36,13 @@ export default defineConfig({
|
|
|
28
36
|
testDir: ${JSON.stringify(demosDir)},
|
|
29
37
|
testMatch: '**/*.demo.ts',
|
|
30
38
|
use: {
|
|
39
|
+
browserName: ${JSON.stringify(browser)},
|
|
31
40
|
baseURL: ${JSON.stringify(options.baseURL)},
|
|
32
41
|
viewport: { width: ${width}, height: ${height} },
|
|
42
|
+
deviceScaleFactor: ${deviceScaleFactor},
|
|
33
43
|
video: {
|
|
34
44
|
mode: 'on',
|
|
35
|
-
size: { width: ${
|
|
45
|
+
size: { width: ${captureWidth}, height: ${captureHeight} },
|
|
36
46
|
},
|
|
37
47
|
},
|
|
38
48
|
},
|
|
@@ -53,10 +63,18 @@ export async function record(demoName, options) {
|
|
|
53
63
|
// Start asset server if overlay manifest has image assets
|
|
54
64
|
let assetServer;
|
|
55
65
|
const overlayManifestPath = path.join(options.demosDir, `${demoName}.overlays.json`);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
try {
|
|
67
|
+
const overlayEntries = await loadOverlayManifest(overlayManifestPath);
|
|
68
|
+
if (overlayEntries && hasImageAssets(overlayEntries)) {
|
|
69
|
+
const assetDir = path.join(options.demosDir, 'assets');
|
|
70
|
+
assetServer = await startAssetServer(assetDir);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
// A malformed overlay manifest should not block recording —
|
|
75
|
+
// overlays are rendered by explicit showOverlay()/withOverlay() calls in the demo script,
|
|
76
|
+
// not from the manifest. Only warn.
|
|
77
|
+
console.warn(`Warning: could not parse overlay manifest: ${err.message}`);
|
|
60
78
|
}
|
|
61
79
|
try {
|
|
62
80
|
return await new Promise((resolve, reject) => {
|
|
@@ -67,6 +85,8 @@ export async function record(demoName, options) {
|
|
|
67
85
|
ARGO_OUTPUT_DIR: argoDir,
|
|
68
86
|
BASE_URL: options.baseURL,
|
|
69
87
|
ARGO_ASSET_URL: assetServer?.url ?? '',
|
|
88
|
+
ARGO_AUTO_BACKGROUND: options.autoBackground ? '1' : '',
|
|
89
|
+
ARGO_SCENE_DURATIONS_PATH: path.resolve(path.join('.argo', demoName, '.scene-durations.json')),
|
|
70
90
|
},
|
|
71
91
|
}, (error, stdout, stderr) => {
|
|
72
92
|
if (error) {
|
package/dist/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
|
package/dist/tts/align.d.ts
CHANGED
|
@@ -12,6 +12,15 @@ export interface Placement {
|
|
|
12
12
|
export interface AlignResult {
|
|
13
13
|
placements: Placement[];
|
|
14
14
|
samples: Float32Array;
|
|
15
|
+
requiredDurationMs: number;
|
|
16
|
+
overflowMs: number;
|
|
15
17
|
}
|
|
18
|
+
export interface ScheduledSceneInput {
|
|
19
|
+
scene: string;
|
|
20
|
+
startMs: number;
|
|
21
|
+
durationMs: number;
|
|
22
|
+
}
|
|
23
|
+
export declare const OVERLAP_GAP_MS = 100;
|
|
24
|
+
export declare function schedulePlacements(scenes: ScheduledSceneInput[]): Placement[];
|
|
16
25
|
export declare function alignClips(timing: SceneTiming, clips: ClipInfo[], totalDurationMs: number, sampleRate?: number): AlignResult;
|
|
17
26
|
//# sourceMappingURL=align.d.ts.map
|
package/dist/tts/align.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../src/tts/align.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../src/tts/align.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAAE,CAkB7E;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,QAAQ,EAAE,EACjB,eAAe,EAAE,MAAM,EACvB,UAAU,SAAS,GAClB,WAAW,CA6Cb"}
|
package/dist/tts/align.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
const OVERLAP_GAP_MS = 100;
|
|
1
|
+
export const OVERLAP_GAP_MS = 100;
|
|
2
|
+
export function schedulePlacements(scenes) {
|
|
3
|
+
const sorted = [...scenes].sort((a, b) => a.startMs - b.startMs);
|
|
4
|
+
const placements = [];
|
|
5
|
+
let previousEndMs = 0;
|
|
6
|
+
for (const scene of sorted) {
|
|
7
|
+
let startMs = scene.startMs;
|
|
8
|
+
if (placements.length > 0 && startMs < previousEndMs) {
|
|
9
|
+
startMs = previousEndMs + OVERLAP_GAP_MS;
|
|
10
|
+
}
|
|
11
|
+
const endMs = startMs + scene.durationMs;
|
|
12
|
+
placements.push({ scene: scene.scene, startMs, endMs });
|
|
13
|
+
previousEndMs = endMs;
|
|
14
|
+
}
|
|
15
|
+
return placements;
|
|
16
|
+
}
|
|
2
17
|
export function alignClips(timing, clips, totalDurationMs, sampleRate = 24_000) {
|
|
3
18
|
// 1. Filter to clips with matching scenes
|
|
4
19
|
const matched = clips.filter((c) => c.scene in timing);
|
|
@@ -11,20 +26,18 @@ export function alignClips(timing, clips, totalDurationMs, sampleRate = 24_000)
|
|
|
11
26
|
// 2. Sort by scene timestamp ascending
|
|
12
27
|
matched.sort((a, b) => timing[a.scene] - timing[b.scene]);
|
|
13
28
|
// 3. Place each clip, preventing overlap
|
|
14
|
-
const placements =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
placements.push({ scene: clip.scene, startMs, endMs });
|
|
24
|
-
previousEndMs = endMs;
|
|
25
|
-
}
|
|
29
|
+
const placements = schedulePlacements(matched.map((clip) => ({
|
|
30
|
+
scene: clip.scene,
|
|
31
|
+
startMs: timing[clip.scene],
|
|
32
|
+
durationMs: clip.durationMs,
|
|
33
|
+
})));
|
|
34
|
+
const requiredDurationMs = placements.length > 0
|
|
35
|
+
? placements[placements.length - 1].endMs
|
|
36
|
+
: 0;
|
|
37
|
+
const overflowMs = Math.max(0, requiredDurationMs - totalDurationMs);
|
|
26
38
|
// 4. Create silence buffer
|
|
27
|
-
const
|
|
39
|
+
const outputDurationMs = Math.max(totalDurationMs, requiredDurationMs);
|
|
40
|
+
const totalSamples = Math.round((outputDurationMs / 1000) * sampleRate);
|
|
28
41
|
const output = new Float32Array(totalSamples);
|
|
29
42
|
// 5. Mix each clip's samples into output
|
|
30
43
|
for (let i = 0; i < placements.length; i++) {
|
|
@@ -35,6 +48,6 @@ export function alignClips(timing, clips, totalDurationMs, sampleRate = 24_000)
|
|
|
35
48
|
output[startSample + j] += clip.samples[j];
|
|
36
49
|
}
|
|
37
50
|
}
|
|
38
|
-
return { placements, samples: output };
|
|
51
|
+
return { placements, samples: output, requiredDurationMs, overflowMs };
|
|
39
52
|
}
|
|
40
53
|
//# sourceMappingURL=align.js.map
|
package/dist/tts/align.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"align.js","sourceRoot":"","sources":["../../src/tts/align.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"align.js","sourceRoot":"","sources":["../../src/tts/align.ts"],"names":[],"mappings":"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"}
|
package/dist/tts/generate.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface GenerateClipsOptions {
|
|
|
15
15
|
export interface ClipResult {
|
|
16
16
|
scene: string;
|
|
17
17
|
clipPath: string;
|
|
18
|
+
durationMs: number;
|
|
18
19
|
}
|
|
19
20
|
export declare function generateClips(options: GenerateClipsOptions): Promise<ClipResult[]>;
|
|
20
21
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tts/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tts/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA+DxF"}
|
package/dist/tts/generate.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* TTS clip generation with manifest parsing and cache integration.
|
|
3
3
|
*/
|
|
4
4
|
import fs from 'node:fs';
|
|
5
|
+
import { parseWavHeader } from './engine.js';
|
|
5
6
|
import { ClipCache } from './cache.js';
|
|
6
7
|
export async function generateClips(options) {
|
|
7
8
|
const { manifestPath, demoName, engine, projectRoot, defaults } = options;
|
|
@@ -51,7 +52,9 @@ export async function generateClips(options) {
|
|
|
51
52
|
});
|
|
52
53
|
cache.cacheClip(demoName, manifestEntry, wavBuffer);
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
+
const wavBuf = fs.readFileSync(clipPath);
|
|
56
|
+
const { durationMs } = parseWavHeader(wavBuf);
|
|
57
|
+
results.push({ scene: manifestEntry.scene, clipPath, durationMs });
|
|
55
58
|
}
|
|
56
59
|
return results;
|
|
57
60
|
}
|
package/dist/tts/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tts/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAsB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tts/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/tts/kokoro.d.ts
CHANGED
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
import type { TTSEngine, TTSEngineOptions } from './engine.js';
|
|
2
|
+
export interface KokoroEngineOptions {
|
|
3
|
+
modelId?: string;
|
|
4
|
+
dtype?: 'fp32' | 'fp16' | 'q8' | 'q4' | 'q4f16';
|
|
5
|
+
device?: 'wasm' | 'webgpu' | 'cpu' | null;
|
|
6
|
+
onProgress?: (progress: {
|
|
7
|
+
status: string;
|
|
8
|
+
progress?: number;
|
|
9
|
+
file?: string;
|
|
10
|
+
}) => void;
|
|
11
|
+
}
|
|
2
12
|
export declare class KokoroEngine implements TTSEngine {
|
|
3
13
|
private tts;
|
|
4
14
|
private modelId;
|
|
5
15
|
private dtype;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
16
|
+
private device;
|
|
17
|
+
private onProgress?;
|
|
18
|
+
constructor(options?: KokoroEngineOptions);
|
|
10
19
|
private getTTS;
|
|
11
20
|
generate(text: string, options: TTSEngineOptions): Promise<Buffer>;
|
|
21
|
+
/**
|
|
22
|
+
* Stream audio generation sentence-by-sentence.
|
|
23
|
+
* Yields WAV buffers for each sentence as they're generated.
|
|
24
|
+
*/
|
|
25
|
+
stream(text: string, options: TTSEngineOptions): AsyncGenerator<{
|
|
26
|
+
text: string;
|
|
27
|
+
audio: Buffer;
|
|
28
|
+
}>;
|
|
12
29
|
}
|
|
13
30
|
//# sourceMappingURL=kokoro.d.ts.map
|
package/dist/tts/kokoro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kokoro.d.ts","sourceRoot":"","sources":["../../src/tts/kokoro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/D,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;
|
|
1
|
+
{"version":3,"file":"kokoro.d.ts","sourceRoot":"","sources":["../../src/tts/kokoro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACvF;AAED,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,UAAU,CAAC,CAAoC;gBAE3C,OAAO,CAAC,EAAE,mBAAmB;YAO3B,MAAM;IAmBd,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBxE;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAaxG"}
|
package/dist/tts/kokoro.js
CHANGED
|
@@ -2,9 +2,13 @@ export class KokoroEngine {
|
|
|
2
2
|
tts = null;
|
|
3
3
|
modelId;
|
|
4
4
|
dtype;
|
|
5
|
+
device;
|
|
6
|
+
onProgress;
|
|
5
7
|
constructor(options) {
|
|
6
|
-
this.modelId = options?.modelId ?? 'onnx-community/Kokoro-82M-ONNX';
|
|
7
|
-
this.dtype = options?.dtype ?? '
|
|
8
|
+
this.modelId = options?.modelId ?? 'onnx-community/Kokoro-82M-v1.0-ONNX';
|
|
9
|
+
this.dtype = options?.dtype ?? 'q8';
|
|
10
|
+
this.device = options?.device ?? null;
|
|
11
|
+
this.onProgress = options?.onProgress;
|
|
8
12
|
}
|
|
9
13
|
async getTTS() {
|
|
10
14
|
if (this.tts)
|
|
@@ -13,6 +17,8 @@ export class KokoroEngine {
|
|
|
13
17
|
const { KokoroTTS } = await import('kokoro-js');
|
|
14
18
|
this.tts = await KokoroTTS.from_pretrained(this.modelId, {
|
|
15
19
|
dtype: this.dtype,
|
|
20
|
+
device: this.device,
|
|
21
|
+
progress_callback: this.onProgress ?? undefined,
|
|
16
22
|
});
|
|
17
23
|
}
|
|
18
24
|
catch (err) {
|
|
@@ -32,15 +38,29 @@ export class KokoroEngine {
|
|
|
32
38
|
});
|
|
33
39
|
const samples = audio.data ?? audio.audio;
|
|
34
40
|
if (!samples || !(samples instanceof Float32Array)) {
|
|
35
|
-
throw new Error('kokoro-js returned unexpected audio format
|
|
36
|
-
'Check that your kokoro-js version is compatible.');
|
|
41
|
+
throw new Error('kokoro-js returned unexpected audio format. Check kokoro-js version.');
|
|
37
42
|
}
|
|
38
43
|
const sampleRate = audio.sampling_rate;
|
|
39
|
-
if (typeof sampleRate !== 'number' || sampleRate <= 0) {
|
|
40
|
-
throw new Error(`kokoro-js returned invalid sample rate: ${sampleRate}.`);
|
|
41
|
-
}
|
|
42
44
|
const { createWavBuffer } = await import('./engine.js');
|
|
43
45
|
return createWavBuffer(samples, sampleRate);
|
|
44
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Stream audio generation sentence-by-sentence.
|
|
49
|
+
* Yields WAV buffers for each sentence as they're generated.
|
|
50
|
+
*/
|
|
51
|
+
async *stream(text, options) {
|
|
52
|
+
if (!text?.trim())
|
|
53
|
+
throw new Error('TTS text must not be empty');
|
|
54
|
+
const tts = await this.getTTS();
|
|
55
|
+
const { createWavBuffer } = await import('./engine.js');
|
|
56
|
+
for await (const chunk of tts.stream(text, {
|
|
57
|
+
voice: options.voice ?? 'af_heart',
|
|
58
|
+
speed: options.speed ?? 1.0,
|
|
59
|
+
})) {
|
|
60
|
+
const samples = chunk.audio.data ?? chunk.audio.audio;
|
|
61
|
+
const sampleRate = chunk.audio.sampling_rate;
|
|
62
|
+
yield { text: chunk.text, audio: createWavBuffer(samples, sampleRate) };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
45
65
|
}
|
|
46
66
|
//# sourceMappingURL=kokoro.js.map
|
package/dist/tts/kokoro.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kokoro.js","sourceRoot":"","sources":["../../src/tts/kokoro.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kokoro.js","sourceRoot":"","sources":["../../src/tts/kokoro.ts"],"names":[],"mappings":"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"}
|