video-maker-mcp 0.1.3 → 0.1.5
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 +67 -13
- package/dist/core/assets.d.ts +32 -0
- package/dist/core/assets.js +177 -53
- package/dist/core/assets.js.map +1 -1
- package/dist/core/captions.d.ts +12 -0
- package/dist/core/captions.js +31 -0
- package/dist/core/captions.js.map +1 -0
- package/dist/core/export.d.ts +1 -0
- package/dist/core/export.js +12 -0
- package/dist/core/export.js.map +1 -1
- package/dist/core/media.d.ts +1 -0
- package/dist/core/media.js +20 -0
- package/dist/core/media.js.map +1 -0
- package/dist/core/plan-schema.d.ts +7 -0
- package/dist/core/plan-schema.js +7 -0
- package/dist/core/plan-schema.js.map +1 -1
- package/dist/core/project.d.ts +7 -0
- package/dist/core/project.js.map +1 -1
- package/dist/core/render.d.ts +6 -0
- package/dist/core/render.js +54 -11
- package/dist/core/render.js.map +1 -1
- package/dist/core/subtitles.d.ts +13 -2
- package/dist/core/subtitles.js +20 -4
- package/dist/core/subtitles.js.map +1 -1
- package/dist/mcp/server.js +21 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/providers/tts/volcengine.d.ts +11 -0
- package/dist/providers/tts/volcengine.js +89 -11
- package/dist/providers/tts/volcengine.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-schema.js","sourceRoot":"","sources":["../../src/core/plan-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan-schema.js","sourceRoot":"","sources":["../../src/core/plan-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/core/project.d.ts
CHANGED
|
@@ -13,8 +13,15 @@ export interface VideoProjectManifest {
|
|
|
13
13
|
};
|
|
14
14
|
planPath?: string;
|
|
15
15
|
audioPath?: string;
|
|
16
|
+
alignmentPath?: string;
|
|
16
17
|
subtitlePath?: string;
|
|
17
18
|
outputPath?: string;
|
|
19
|
+
coverPath?: string;
|
|
20
|
+
audioDurationSec?: number;
|
|
21
|
+
sceneDurationsSec?: Array<{
|
|
22
|
+
sceneId: string;
|
|
23
|
+
durationSec: number;
|
|
24
|
+
}>;
|
|
18
25
|
exportedPath?: string;
|
|
19
26
|
exportedAt?: string;
|
|
20
27
|
}
|
package/dist/core/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAkB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"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"}
|
package/dist/core/render.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ export interface RenderResult {
|
|
|
5
5
|
absoluteOutputPath: string;
|
|
6
6
|
subtitlePath: string;
|
|
7
7
|
manifestPath: string;
|
|
8
|
+
audioDurationSec: number;
|
|
9
|
+
videoDurationSec: number;
|
|
10
|
+
sceneDurationsSec: Array<{
|
|
11
|
+
sceneId: string;
|
|
12
|
+
durationSec: number;
|
|
13
|
+
}>;
|
|
8
14
|
export?: ExportVideoResult;
|
|
9
15
|
}
|
|
10
16
|
export declare function renderProjectVideo(projectId: string, options?: {
|
package/dist/core/render.js
CHANGED
|
@@ -3,22 +3,56 @@ import path from "node:path";
|
|
|
3
3
|
import { execa } from "execa";
|
|
4
4
|
import { resolveBinary } from "./env.js";
|
|
5
5
|
import { exportProjectVideo } from "./export.js";
|
|
6
|
-
import {
|
|
6
|
+
import { getMediaDurationSec } from "./media.js";
|
|
7
|
+
import { verifySceneAssets } from "./assets.js";
|
|
7
8
|
import { markStatus, readManifest, readVideoPlan } from "./project.js";
|
|
8
9
|
import { toProjectPath } from "./paths.js";
|
|
9
|
-
import {
|
|
10
|
+
import { writeAlignedSrt } from "./subtitles.js";
|
|
10
11
|
function escapeConcatPath(filePath) {
|
|
11
12
|
return filePath.replace(/'/g, "'\\''");
|
|
12
13
|
}
|
|
13
14
|
function escapeSubtitlePath(filePath) {
|
|
14
15
|
return filePath.replace(/\\/g, "/").replace(/:/g, "\\:");
|
|
15
16
|
}
|
|
17
|
+
function allocateSceneDurations(scenes, totalDurationSec) {
|
|
18
|
+
const plannedTotal = scenes.reduce((sum, scene) => sum + scene.durationSec, 0);
|
|
19
|
+
const fallbackDuration = totalDurationSec / Math.max(1, scenes.length);
|
|
20
|
+
return scenes.map((scene) => ({
|
|
21
|
+
...scene,
|
|
22
|
+
durationSec: plannedTotal > 0 ? totalDurationSec * (scene.durationSec / plannedTotal) : fallbackDuration
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
async function readAlignedCaptions(projectId, alignmentPath) {
|
|
26
|
+
if (!alignmentPath) {
|
|
27
|
+
throw new Error("Project audio alignment is missing. Run generate_audio again with a timestamp-capable TTS configuration before render_video.");
|
|
28
|
+
}
|
|
29
|
+
const content = await fs.readFile(toProjectPath(projectId, alignmentPath), "utf8");
|
|
30
|
+
const parsed = JSON.parse(content);
|
|
31
|
+
if (!Array.isArray(parsed.captions)) {
|
|
32
|
+
throw new Error(`Invalid alignment file: ${alignmentPath}`);
|
|
33
|
+
}
|
|
34
|
+
const captions = parsed.captions.flatMap((item) => {
|
|
35
|
+
if (!item || typeof item !== "object")
|
|
36
|
+
return [];
|
|
37
|
+
const value = item;
|
|
38
|
+
const startSec = Number(value.startSec);
|
|
39
|
+
const endSec = Number(value.endSec);
|
|
40
|
+
const text = typeof value.text === "string" ? value.text : undefined;
|
|
41
|
+
if (!text || !Number.isFinite(startSec) || !Number.isFinite(endSec) || endSec <= startSec)
|
|
42
|
+
return [];
|
|
43
|
+
return [{ startSec, endSec, text }];
|
|
44
|
+
});
|
|
45
|
+
if (captions.length === 0) {
|
|
46
|
+
throw new Error(`Alignment file has no usable caption cues: ${alignmentPath}`);
|
|
47
|
+
}
|
|
48
|
+
return captions;
|
|
49
|
+
}
|
|
16
50
|
export async function renderProjectVideo(projectId, options = {}) {
|
|
17
51
|
const ffmpeg = await resolveBinary("ffmpeg", ["-version"]);
|
|
18
52
|
if (!ffmpeg.installed || !ffmpeg.path) {
|
|
19
53
|
throw new Error(`ffmpeg is not available. Install it with: ${ffmpeg.installCommand}`);
|
|
20
54
|
}
|
|
21
|
-
const assetCheck = await
|
|
55
|
+
const assetCheck = await verifySceneAssets(projectId);
|
|
22
56
|
if (!assetCheck.ok) {
|
|
23
57
|
throw new Error(`Cannot render until all assets are valid: ${JSON.stringify(assetCheck.assets)}`);
|
|
24
58
|
}
|
|
@@ -27,14 +61,19 @@ export async function renderProjectVideo(projectId, options = {}) {
|
|
|
27
61
|
if (!manifest.audioPath) {
|
|
28
62
|
throw new Error("Project audio is missing. Run generate_audio before render_video.");
|
|
29
63
|
}
|
|
30
|
-
const
|
|
64
|
+
const audioPath = toProjectPath(projectId, manifest.audioPath);
|
|
65
|
+
const audioDurationSec = await getMediaDurationSec(audioPath);
|
|
66
|
+
const renderScenes = allocateSceneDurations(plan.scenes, audioDurationSec);
|
|
67
|
+
const alignedCaptions = await readAlignedCaptions(projectId, manifest.alignmentPath);
|
|
68
|
+
const subtitlePath = await writeAlignedSrt(projectId, alignedCaptions);
|
|
31
69
|
const segmentDir = toProjectPath(projectId, "output/segments");
|
|
32
70
|
await fs.mkdir(segmentDir, { recursive: true });
|
|
33
71
|
const segmentPaths = [];
|
|
34
|
-
for (const [index, scene] of
|
|
72
|
+
for (const [index, scene] of renderScenes.entries()) {
|
|
35
73
|
const inputImage = toProjectPath(projectId, scene.assetPath);
|
|
36
74
|
const segmentPath = path.join(segmentDir, `${String(index + 1).padStart(3, "0")}_${scene.id}.mp4`);
|
|
37
|
-
const frames = Math.max(1, Math.
|
|
75
|
+
const frames = Math.max(1, Math.ceil(scene.durationSec * 30) + 1);
|
|
76
|
+
const segmentDurationSec = frames / 30;
|
|
38
77
|
const vf = [
|
|
39
78
|
"scale=1080:1920:force_original_aspect_ratio=increase",
|
|
40
79
|
"crop=1080:1920",
|
|
@@ -45,7 +84,7 @@ export async function renderProjectVideo(projectId, options = {}) {
|
|
|
45
84
|
"-y",
|
|
46
85
|
"-loop", "1",
|
|
47
86
|
"-i", inputImage,
|
|
48
|
-
"-t",
|
|
87
|
+
"-t", segmentDurationSec.toFixed(3),
|
|
49
88
|
"-vf", vf,
|
|
50
89
|
"-r", "30",
|
|
51
90
|
"-an",
|
|
@@ -69,7 +108,6 @@ export async function renderProjectVideo(projectId, options = {}) {
|
|
|
69
108
|
const outputPath = "output/final.mp4";
|
|
70
109
|
const absoluteOutputPath = toProjectPath(projectId, outputPath);
|
|
71
110
|
const absoluteSubtitlePath = toProjectPath(projectId, subtitlePath);
|
|
72
|
-
const audioPath = toProjectPath(projectId, manifest.audioPath);
|
|
73
111
|
await execa(ffmpeg.path, [
|
|
74
112
|
"-y",
|
|
75
113
|
"-i", stitchedPath,
|
|
@@ -78,19 +116,24 @@ export async function renderProjectVideo(projectId, options = {}) {
|
|
|
78
116
|
"-c:v", "libx264",
|
|
79
117
|
"-pix_fmt", "yuv420p",
|
|
80
118
|
"-c:a", "aac",
|
|
81
|
-
"-
|
|
119
|
+
"-t", audioDurationSec.toFixed(3),
|
|
82
120
|
absoluteOutputPath
|
|
83
121
|
]);
|
|
84
122
|
await markStatus(projectId, "rendered", {
|
|
85
123
|
subtitlePath,
|
|
86
|
-
outputPath
|
|
124
|
+
outputPath,
|
|
125
|
+
audioDurationSec,
|
|
126
|
+
sceneDurationsSec: renderScenes.map((scene) => ({ sceneId: scene.id, durationSec: scene.durationSec }))
|
|
87
127
|
});
|
|
88
128
|
const renderResult = {
|
|
89
129
|
projectId,
|
|
90
130
|
outputPath,
|
|
91
131
|
absoluteOutputPath,
|
|
92
132
|
subtitlePath,
|
|
93
|
-
manifestPath: toProjectPath(projectId, "manifest.json")
|
|
133
|
+
manifestPath: toProjectPath(projectId, "manifest.json"),
|
|
134
|
+
audioDurationSec,
|
|
135
|
+
videoDurationSec: audioDurationSec,
|
|
136
|
+
sceneDurationsSec: renderScenes.map((scene) => ({ sceneId: scene.id, durationSec: scene.durationSec }))
|
|
94
137
|
};
|
|
95
138
|
if (options.outputDir) {
|
|
96
139
|
renderResult.export = await exportProjectVideo(projectId, options.outputDir);
|
package/dist/core/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"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"}
|
package/dist/core/subtitles.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type CaptionCue } from "./captions.js";
|
|
2
|
+
import { type Scene, type VideoPlan } from "./plan-schema.js";
|
|
2
3
|
export declare function formatSrtTimestamp(seconds: number): string;
|
|
4
|
+
export declare function buildSrtFromScenes(scenes: Array<Pick<Scene, "durationSec" | "subtitle">>): string;
|
|
5
|
+
export declare function buildSrtFromCues(cues: CaptionCue[]): string;
|
|
3
6
|
export declare function buildSrt(plan: VideoPlan): string;
|
|
4
|
-
export declare function writeSrt(projectId: string, plan: VideoPlan
|
|
7
|
+
export declare function writeSrt(projectId: string, plan: VideoPlan, scenes?: {
|
|
8
|
+
id: string;
|
|
9
|
+
durationSec: number;
|
|
10
|
+
narration: string;
|
|
11
|
+
subtitle: string;
|
|
12
|
+
visualPrompt: string;
|
|
13
|
+
assetPath: string;
|
|
14
|
+
}[]): Promise<string>;
|
|
15
|
+
export declare function writeAlignedSrt(projectId: string, cues: CaptionCue[]): Promise<string>;
|
package/dist/core/subtitles.js
CHANGED
|
@@ -8,9 +8,9 @@ export function formatSrtTimestamp(seconds) {
|
|
|
8
8
|
const millis = ms % 1000;
|
|
9
9
|
return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")},${String(millis).padStart(3, "0")}`;
|
|
10
10
|
}
|
|
11
|
-
export function
|
|
11
|
+
export function buildSrtFromScenes(scenes) {
|
|
12
12
|
let cursor = 0;
|
|
13
|
-
return
|
|
13
|
+
return scenes.map((scene, index) => {
|
|
14
14
|
const start = cursor;
|
|
15
15
|
const end = cursor + scene.durationSec;
|
|
16
16
|
cursor = end;
|
|
@@ -22,9 +22,25 @@ export function buildSrt(plan) {
|
|
|
22
22
|
].join("\n");
|
|
23
23
|
}).join("\n");
|
|
24
24
|
}
|
|
25
|
-
export
|
|
25
|
+
export function buildSrtFromCues(cues) {
|
|
26
|
+
return cues.map((cue, index) => [
|
|
27
|
+
String(index + 1),
|
|
28
|
+
`${formatSrtTimestamp(cue.startSec)} --> ${formatSrtTimestamp(cue.endSec)}`,
|
|
29
|
+
cue.text,
|
|
30
|
+
""
|
|
31
|
+
].join("\n")).join("\n");
|
|
32
|
+
}
|
|
33
|
+
export function buildSrt(plan) {
|
|
34
|
+
return buildSrtFromScenes(plan.scenes);
|
|
35
|
+
}
|
|
36
|
+
export async function writeSrt(projectId, plan, scenes = plan.scenes) {
|
|
37
|
+
const relativePath = "output/subtitles.srt";
|
|
38
|
+
await fs.writeFile(toProjectPath(projectId, relativePath), buildSrtFromScenes(scenes), "utf8");
|
|
39
|
+
return relativePath;
|
|
40
|
+
}
|
|
41
|
+
export async function writeAlignedSrt(projectId, cues) {
|
|
26
42
|
const relativePath = "output/subtitles.srt";
|
|
27
|
-
await fs.writeFile(toProjectPath(projectId, relativePath),
|
|
43
|
+
await fs.writeFile(toProjectPath(projectId, relativePath), buildSrtFromCues(cues), "utf8");
|
|
28
44
|
return relativePath;
|
|
29
45
|
}
|
|
30
46
|
//# sourceMappingURL=subtitles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subtitles.js","sourceRoot":"","sources":["../../src/core/subtitles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"subtitles.js","sourceRoot":"","sources":["../../src/core/subtitles.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import * as z from "zod/v4";
|
|
4
4
|
import { checkEnvironment } from "../core/env.js";
|
|
5
|
-
import { createAssetContactSheet, listRequiredAssets, verifyAssets } from "../core/assets.js";
|
|
5
|
+
import { createAssetContactSheet, imageGenerationContract, listRequiredAssets, saveGeneratedImage, verifyAssets } from "../core/assets.js";
|
|
6
6
|
import { createVideoProject, saveVideoPlan } from "../core/project.js";
|
|
7
7
|
import { videoPlanJsonSchema } from "../core/plan-schema.js";
|
|
8
8
|
import { generateProjectAudio } from "../providers/tts/volcengine.js";
|
|
@@ -10,9 +10,10 @@ import { renderProjectVideo } from "../core/render.js";
|
|
|
10
10
|
import { exportProjectVideo } from "../core/export.js";
|
|
11
11
|
const SERVER_INSTRUCTIONS = [
|
|
12
12
|
"video-maker-mcp turns Codex-authored storyboards into local vertical MP4 videos.",
|
|
13
|
-
"Workflow: call create_video_project, get_video_plan_schema, save_video_plan, list_required_assets, generate every scene image with
|
|
14
|
-
"The server does not generate images.
|
|
15
|
-
"
|
|
13
|
+
"Workflow: call check_environment, assert_image_generation_contract, create_video_project, get_video_plan_schema, save_video_plan, list_required_assets, generate the dedicated cover image and every scene image with host image generation into the exact absolutePath, verify_assets, optionally create_asset_contact_sheet for visual confirmation, generate_audio, then render_video.",
|
|
14
|
+
"The server does not generate images. Preferred: the host provides generate_image_to_file(prompt, absolutePath): real image model output saved directly to the requested local path. Fallback: if the host can access the generated bitmap as a local file path or base64/data URL, call save_generated_image(projectId, assetPath, sourcePath|imageBase64). If neither is possible, stop and report that the host does not satisfy the image generation contract.",
|
|
15
|
+
"Do not substitute SVGs, charts, screenshots, HTML/CSS/canvas drawings, sharp/Jimp/canvas scripted graphics, preview strips, manually created placeholder graphics, first-frame extractions, or SVG-to-PNG conversions.",
|
|
16
|
+
"Videos are 9:16, 1080x1920, zh-CN subtitles, one image per scene. Requested duration is a target; render_video uses the real narration audio duration and scales scene/subtitle timing to match it.",
|
|
16
17
|
"Rendered project files stay in ~/.video-maker. If the user wants an easy-to-find copy, pass outputDir to render_video or call export_video; default export location is ~/Downloads/video-maker/<projectId>.",
|
|
17
18
|
"Run check_environment first when setup is uncertain. If TTS credentials are missing, tell the user to run: npx -y video-maker-mcp@latest configure-tts."
|
|
18
19
|
].join("\n");
|
|
@@ -33,6 +34,10 @@ export function createMcpServer() {
|
|
|
33
34
|
title: "Check local video-maker environment",
|
|
34
35
|
description: "Checks Node, ffmpeg, Codex CLI, workspace path, and Volcengine/Doubao TTS environment variables."
|
|
35
36
|
}, async () => result(await checkEnvironment()));
|
|
37
|
+
server.registerTool("assert_image_generation_contract", {
|
|
38
|
+
title: "Assert host image generation contract",
|
|
39
|
+
description: "Returns the required host capability: generate real image-model output and save it directly to the requested absolutePath. If unsupported, the host must stop instead of creating fallback graphics."
|
|
40
|
+
}, async () => result(imageGenerationContract()));
|
|
36
41
|
server.registerTool("create_video_project", {
|
|
37
42
|
title: "Create video project",
|
|
38
43
|
description: "Creates a local project directory for a Codex-driven storyboard video.",
|
|
@@ -76,8 +81,19 @@ export function createMcpServer() {
|
|
|
76
81
|
}, async ({ projectId }) => result({
|
|
77
82
|
projectId,
|
|
78
83
|
assets: await listRequiredAssets(projectId),
|
|
79
|
-
|
|
84
|
+
imageGenerationContract: imageGenerationContract().contract,
|
|
85
|
+
instruction: "Generate one dedicated cover image and one real scene image for each prompt with host image generation, then save each generated bitmap exactly to absolutePath before calling verify_assets. If the host image tool returns a temporary file path or image base64/data URL instead of saving directly, call save_generated_image with projectId, assetPath, and sourcePath or imageBase64. The cover must be content-rich and purpose-built, not a first-frame extraction. Do not create placeholder charts, SVGs, screenshots, CSS drawings, HTML/canvas/sharp scripted graphics, preview strips, SVG-to-PNG conversions, or any fallback graphic. If this host cannot provide local generated image files or bytes, stop and report unsupported host image generation."
|
|
80
86
|
}));
|
|
87
|
+
server.registerTool("save_generated_image", {
|
|
88
|
+
title: "Save generated image asset",
|
|
89
|
+
description: "Fallback bridge: saves a real host-generated image from a local sourcePath or base64/data URL into a required project assetPath, then validates it.",
|
|
90
|
+
inputSchema: {
|
|
91
|
+
projectId: z.string().min(1),
|
|
92
|
+
assetPath: z.string().min(1).describe("One of the assetPath values returned by list_required_assets, e.g. assets/scene_001.png or assets/cover.png."),
|
|
93
|
+
sourcePath: z.string().min(1).optional().describe("Local path to a real generated bitmap file exposed by the host image tool."),
|
|
94
|
+
imageBase64: z.string().min(1).optional().describe("Generated image bytes as base64 or data:image/...;base64,...")
|
|
95
|
+
}
|
|
96
|
+
}, async ({ projectId, assetPath, sourcePath, imageBase64 }) => result(await saveGeneratedImage(projectId, assetPath, { sourcePath, imageBase64 })));
|
|
81
97
|
server.registerTool("verify_assets", {
|
|
82
98
|
title: "Verify scene assets",
|
|
83
99
|
description: "Checks that all required scene images exist and can be decoded.",
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CaptionCue, type TimedWord } from "../../core/captions.js";
|
|
1
2
|
export interface VolcengineTtsConfig {
|
|
2
3
|
apiKey?: string;
|
|
3
4
|
appId?: string;
|
|
@@ -15,8 +16,18 @@ export declare const DEFAULT_VOLCENGINE_TTS_ENDPOINT = "https://openspeech.byted
|
|
|
15
16
|
export interface TtsResult {
|
|
16
17
|
audioPath: string;
|
|
17
18
|
absolutePath: string;
|
|
19
|
+
alignmentPath: string;
|
|
20
|
+
absoluteAlignmentPath: string;
|
|
21
|
+
captions: CaptionCue[];
|
|
18
22
|
provider: "volcengine";
|
|
19
23
|
}
|
|
24
|
+
export interface SpeechSynthesisResult {
|
|
25
|
+
audio: Buffer;
|
|
26
|
+
words: TimedWord[];
|
|
27
|
+
}
|
|
20
28
|
export declare function volcengineConfigFromEnv(env?: NodeJS.ProcessEnv): VolcengineTtsConfig;
|
|
21
29
|
export declare function synthesizeVolcengineSpeech(text: string, config?: VolcengineTtsConfig): Promise<Buffer>;
|
|
30
|
+
export declare function synthesizeVolcengineSpeechWithAlignment(text: string, config?: VolcengineTtsConfig, options?: {
|
|
31
|
+
requireAlignment?: boolean;
|
|
32
|
+
}): Promise<SpeechSynthesisResult>;
|
|
22
33
|
export declare function generateProjectAudio(projectId: string): Promise<TtsResult>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import fs from "node:fs/promises";
|
|
3
|
+
import { buildCaptionCues } from "../../core/captions.js";
|
|
3
4
|
import { markStatus, readVideoPlan } from "../../core/project.js";
|
|
4
5
|
import { toProjectPath } from "../../core/paths.js";
|
|
5
6
|
export const DEFAULT_VOLCENGINE_TTS_VOICE_ID = "zh_female_vv_uranus_bigtts";
|
|
@@ -43,12 +44,15 @@ export function volcengineConfigFromEnv(env = process.env) {
|
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
export async function synthesizeVolcengineSpeech(text, config = volcengineConfigFromEnv()) {
|
|
47
|
+
return (await synthesizeVolcengineSpeechWithAlignment(text, config, { requireAlignment: false })).audio;
|
|
48
|
+
}
|
|
49
|
+
export async function synthesizeVolcengineSpeechWithAlignment(text, config = volcengineConfigFromEnv(), options = {}) {
|
|
46
50
|
if (config.protocol === "v3") {
|
|
47
|
-
return synthesizeVolcengineSpeechV3(text, config);
|
|
51
|
+
return synthesizeVolcengineSpeechV3(text, config, options);
|
|
48
52
|
}
|
|
49
|
-
return synthesizeVolcengineSpeechV1(text, config);
|
|
53
|
+
return synthesizeVolcengineSpeechV1(text, config, options);
|
|
50
54
|
}
|
|
51
|
-
async function synthesizeVolcengineSpeechV3(text, config) {
|
|
55
|
+
async function synthesizeVolcengineSpeechV3(text, config, options = {}) {
|
|
52
56
|
if (!config.apiKey) {
|
|
53
57
|
throw new Error("VIDEO_MAKER_TTS_API_KEY is required for V3 TTS");
|
|
54
58
|
}
|
|
@@ -71,7 +75,8 @@ async function synthesizeVolcengineSpeechV3(text, config) {
|
|
|
71
75
|
speaker: config.voiceId,
|
|
72
76
|
audio_params: {
|
|
73
77
|
format: "mp3",
|
|
74
|
-
sample_rate: 24000
|
|
78
|
+
sample_rate: 24000,
|
|
79
|
+
enable_subtitle: true
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
})
|
|
@@ -82,6 +87,7 @@ async function synthesizeVolcengineSpeechV3(text, config) {
|
|
|
82
87
|
}
|
|
83
88
|
const objects = config.endpoint.endsWith("/sse") ? parseSseJsonObjects(raw) : parseConcatenatedJsonObjects(raw);
|
|
84
89
|
const chunks = [];
|
|
90
|
+
const words = [];
|
|
85
91
|
let finalMessage;
|
|
86
92
|
for (const object of objects) {
|
|
87
93
|
const code = typeof object.code === "number" ? object.code : undefined;
|
|
@@ -92,15 +98,22 @@ async function synthesizeVolcengineSpeechV3(text, config) {
|
|
|
92
98
|
if (typeof object.data === "string" && object.data.length > 0) {
|
|
93
99
|
chunks.push(Buffer.from(object.data, "base64"));
|
|
94
100
|
}
|
|
101
|
+
words.push(...extractV3Words(object));
|
|
95
102
|
if (code === 20000000)
|
|
96
103
|
finalMessage = message;
|
|
97
104
|
}
|
|
98
105
|
if (chunks.length === 0) {
|
|
99
106
|
throw new Error(`Volcengine TTS V3 returned no audio data${finalMessage ? ` (${finalMessage})` : ""}: ${raw.slice(0, 500)}`);
|
|
100
107
|
}
|
|
101
|
-
|
|
108
|
+
if (options.requireAlignment && words.length === 0) {
|
|
109
|
+
throw new Error("Volcengine TTS V3 returned audio but no subtitle timestamps. The selected model/voice may not support enable_subtitle; choose a timestamp-capable voice/resource or disable strict alignment explicitly.");
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
audio: Buffer.concat(chunks),
|
|
113
|
+
words
|
|
114
|
+
};
|
|
102
115
|
}
|
|
103
|
-
async function synthesizeVolcengineSpeechV1(text, config) {
|
|
116
|
+
async function synthesizeVolcengineSpeechV1(text, config, options = {}) {
|
|
104
117
|
if (!config.appId || !config.authToken || !config.appToken || !config.cluster) {
|
|
105
118
|
throw new Error("VIDEO_MAKER_TTS_APP_ID, VIDEO_MAKER_TTS_TOKEN, and VIDEO_MAKER_TTS_CLUSTER are required for V1 TTS");
|
|
106
119
|
}
|
|
@@ -131,7 +144,8 @@ async function synthesizeVolcengineSpeechV1(text, config) {
|
|
|
131
144
|
reqid,
|
|
132
145
|
text,
|
|
133
146
|
text_type: "plain",
|
|
134
|
-
operation: "query"
|
|
147
|
+
operation: "query",
|
|
148
|
+
with_timestamp: "1"
|
|
135
149
|
}
|
|
136
150
|
})
|
|
137
151
|
});
|
|
@@ -145,7 +159,61 @@ async function synthesizeVolcengineSpeechV1(text, config) {
|
|
|
145
159
|
if (!payload.data) {
|
|
146
160
|
throw new Error(`Volcengine TTS returned no audio data: ${payload.message ?? JSON.stringify(payload)}`);
|
|
147
161
|
}
|
|
148
|
-
|
|
162
|
+
const words = extractV1Words(payload);
|
|
163
|
+
if (options.requireAlignment && words.length === 0) {
|
|
164
|
+
throw new Error("Volcengine TTS V1 returned audio but no timestamp frontend data. Check with_timestamp support for the selected voice.");
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
audio: Buffer.from(payload.data, "base64"),
|
|
168
|
+
words
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function extractV3Words(object) {
|
|
172
|
+
const sentence = object.sentence;
|
|
173
|
+
if (!sentence || typeof sentence !== "object")
|
|
174
|
+
return [];
|
|
175
|
+
const words = sentence.words;
|
|
176
|
+
if (!Array.isArray(words))
|
|
177
|
+
return [];
|
|
178
|
+
return words.flatMap((item) => {
|
|
179
|
+
if (!item || typeof item !== "object")
|
|
180
|
+
return [];
|
|
181
|
+
const value = item;
|
|
182
|
+
const word = typeof value.word === "string" ? value.word : undefined;
|
|
183
|
+
const startTime = Number(value.startTime);
|
|
184
|
+
const endTime = Number(value.endTime);
|
|
185
|
+
const confidence = value.confidence === undefined ? undefined : Number(value.confidence);
|
|
186
|
+
if (!word || !Number.isFinite(startTime) || !Number.isFinite(endTime))
|
|
187
|
+
return [];
|
|
188
|
+
return [{ word, startTime, endTime, confidence }];
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
function extractV1Words(payload) {
|
|
192
|
+
const addition = payload.addition;
|
|
193
|
+
if (!addition || typeof addition !== "object")
|
|
194
|
+
return [];
|
|
195
|
+
const frontend = addition.frontend;
|
|
196
|
+
if (typeof frontend !== "string")
|
|
197
|
+
return [];
|
|
198
|
+
try {
|
|
199
|
+
const parsed = JSON.parse(frontend);
|
|
200
|
+
if (!Array.isArray(parsed.words))
|
|
201
|
+
return [];
|
|
202
|
+
return parsed.words.flatMap((item) => {
|
|
203
|
+
if (!item || typeof item !== "object")
|
|
204
|
+
return [];
|
|
205
|
+
const value = item;
|
|
206
|
+
const word = typeof value.word === "string" ? value.word : undefined;
|
|
207
|
+
const startTime = Number(value.start_time);
|
|
208
|
+
const endTime = Number(value.end_time);
|
|
209
|
+
if (!word || !Number.isFinite(startTime) || !Number.isFinite(endTime))
|
|
210
|
+
return [];
|
|
211
|
+
return [{ word, startTime, endTime }];
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
149
217
|
}
|
|
150
218
|
function parseSseJsonObjects(raw) {
|
|
151
219
|
return raw
|
|
@@ -198,14 +266,24 @@ function parseConcatenatedJsonObjects(raw) {
|
|
|
198
266
|
export async function generateProjectAudio(projectId) {
|
|
199
267
|
const plan = await readVideoPlan(projectId);
|
|
200
268
|
const text = plan.scenes.map((scene) => scene.narration).join("\n");
|
|
201
|
-
const
|
|
269
|
+
const speech = await synthesizeVolcengineSpeechWithAlignment(text, undefined, { requireAlignment: true });
|
|
270
|
+
const captions = buildCaptionCues(speech.words);
|
|
271
|
+
if (captions.length === 0) {
|
|
272
|
+
throw new Error("TTS returned timestamped words, but no caption cues could be built.");
|
|
273
|
+
}
|
|
202
274
|
const audioPath = "audio/narration.mp3";
|
|
275
|
+
const alignmentPath = "audio/alignment.json";
|
|
203
276
|
const absolutePath = toProjectPath(projectId, audioPath);
|
|
204
|
-
|
|
205
|
-
await
|
|
277
|
+
const absoluteAlignmentPath = toProjectPath(projectId, alignmentPath);
|
|
278
|
+
await fs.writeFile(absolutePath, speech.audio);
|
|
279
|
+
await fs.writeFile(absoluteAlignmentPath, `${JSON.stringify({ words: speech.words, captions }, null, 2)}\n`, "utf8");
|
|
280
|
+
await markStatus(projectId, "audio_ready", { audioPath, alignmentPath });
|
|
206
281
|
return {
|
|
207
282
|
audioPath,
|
|
208
283
|
absolutePath,
|
|
284
|
+
alignmentPath,
|
|
285
|
+
absoluteAlignmentPath,
|
|
286
|
+
captions,
|
|
209
287
|
provider: "volcengine"
|
|
210
288
|
};
|
|
211
289
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volcengine.js","sourceRoot":"","sources":["../../../src/providers/tts/volcengine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"volcengine.js","sourceRoot":"","sources":["../../../src/providers/tts/volcengine.ts"],"names":[],"mappings":"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"}
|