@clipwright/core 0.36.0 → 0.37.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/dist/actors.d.ts +8 -0
- package/dist/actors.js +2 -0
- package/dist/actors.js.map +1 -1
- package/dist/caption-geometry.d.ts +43 -0
- package/dist/caption-geometry.js +41 -0
- package/dist/caption-geometry.js.map +1 -0
- package/dist/contract-dispositions.d.ts +997 -35
- package/dist/contract-dispositions.js +25 -5
- package/dist/contract-dispositions.js.map +1 -1
- package/dist/contracts/v1/workflow-brief.d.ts +2024 -38
- package/dist/contracts/v1/workflow-brief.js +2 -2
- package/dist/contracts/v1/workflow-brief.js.map +1 -1
- package/dist/contracts/v1/workflow-catalog.d.ts +2154 -72
- package/dist/contracts/v1/workflow-client.d.ts +1207 -70
- package/dist/contracts/v1/workflow-plan.d.ts +3234 -111
- package/dist/edit-billing.d.ts +1 -0
- package/dist/edit-billing.js +2 -0
- package/dist/edit-billing.js.map +1 -1
- package/dist/edit-document.d.ts +22 -0
- package/dist/edit-document.js +3 -0
- package/dist/edit-document.js.map +1 -1
- package/dist/edit-long-form.js +1 -1
- package/dist/edit-long-form.js.map +1 -1
- package/dist/edit-revision.d.ts +9 -0
- package/dist/edit-rules.d.ts +1 -0
- package/dist/edit-rules.js +3 -0
- package/dist/edit-rules.js.map +1 -1
- package/dist/edit-shots.d.ts +2 -0
- package/dist/edit-validate.d.ts +4 -2
- package/dist/edit-validate.js +18 -2
- package/dist/edit-validate.js.map +1 -1
- package/dist/errors.d.ts +1 -0
- package/dist/faceless-media-record.d.ts +27 -0
- package/dist/faceless-media-record.js +15 -1
- package/dist/faceless-media-record.js.map +1 -1
- package/dist/faceless-public.d.ts +107 -0
- package/dist/faceless-public.js +34 -1
- package/dist/faceless-public.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/long-form-revision.d.ts +8 -0
- package/dist/openapi.js +2 -2
- package/dist/openapi.js.map +1 -1
- package/dist/presenter-beats.d.ts +1 -1
- package/dist/reference-analysis.d.ts +436 -75
- package/dist/reference-analysis.js +149 -28
- package/dist/reference-analysis.js.map +1 -1
- package/dist/reference-display.d.ts +36 -0
- package/dist/reference-display.js +78 -0
- package/dist/reference-display.js.map +1 -0
- package/dist/reference-profile.d.ts +2352 -36
- package/dist/reference-profile.js +138 -10
- package/dist/reference-profile.js.map +1 -1
- package/dist/reference-staging.d.ts +59 -57
- package/dist/reference-staging.js +6 -5
- package/dist/reference-staging.js.map +1 -1
- package/dist/resolved-timeline.d.ts +199 -2
- package/dist/resolved-timeline.js +17 -5
- package/dist/resolved-timeline.js.map +1 -1
- package/dist/scene-place.d.ts +225 -0
- package/dist/scene-place.js +120 -0
- package/dist/scene-place.js.map +1 -0
- package/dist/skills.d.ts +4680 -22
- package/dist/skills.js +150 -17
- package/dist/skills.js.map +1 -1
- package/dist/templates/index.d.ts +14 -4
- package/dist/templates/index.js +49 -5
- package/dist/templates/index.js.map +1 -1
- package/dist/ugc-interview.d.ts +122 -0
- package/dist/ugc-interview.js +260 -0
- package/dist/ugc-interview.js.map +1 -0
- package/dist/ugc-layers.d.ts +88 -6
- package/dist/ugc-layers.js +193 -5
- package/dist/ugc-layers.js.map +1 -1
- package/dist/voice-admission.d.ts +947 -2
- package/dist/workflows/methods/faceless-explainer.d.ts +599 -13
- package/dist/workflows/methods/kinetic-launch.d.ts +599 -13
- package/dist/workflows/methods/product-image-story.d.ts +599 -13
- package/dist/workflows/methods/reference-remake.d.ts +599 -13
- package/dist/workflows/methods/shared.d.ts +599 -13
- package/dist/workflows/methods/ugc-faq-answer.d.ts +599 -13
- package/dist/workflows/methods/ugc-product-intro.d.ts +599 -13
- package/dist/workflows/methods/website-proof-demo.d.ts +599 -13
- package/dist/workflows/reference-remake.d.ts +131 -35
- package/dist/workflows/reference-remake.js +179 -18
- package/dist/workflows/reference-remake.js.map +1 -1
- package/package.json +1 -1
package/dist/templates/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { captionLanguageOf } from "../caption-language.js";
|
|
3
3
|
import { lexicalTokens, quoteOccurrences } from "../semantic-inserts.js";
|
|
4
|
-
import { faceZone, frameCanvasOf, layerWordRange, MAX_OVERLAYS_AT_ONCE,
|
|
4
|
+
import { admissionScene, faceZone, frameCanvasOf, layerWordRange, MAX_OVERLAYS_AT_ONCE, overlayFootprints, placedRefusals, rectsOverlap } from "../ugc-layers.js";
|
|
5
|
+
import { placeAnchorOf, placeByCaptions } from "../scene-place.js";
|
|
5
6
|
import { callout } from "./callout.js";
|
|
6
7
|
import { checklist } from "./checklist.js";
|
|
7
8
|
import { compare } from "./compare.js";
|
|
@@ -192,6 +193,16 @@ export function templateTextRefusal(text, limit, language) {
|
|
|
192
193
|
return `has "${odd}", which the run's fonts cannot draw: use Latin${name ? ` or ${name}` : ""} letters, digits and common punctuation`;
|
|
193
194
|
return undefined;
|
|
194
195
|
}
|
|
196
|
+
/** The run's over-presenter templates as scene items for one framing (#973 S4): each with its kind's own rect and its place, if any. */
|
|
197
|
+
export function templateSceneItems(input, framing, kinds = TEMPLATE_KINDS) {
|
|
198
|
+
return (input.templates ?? []).flatMap(item => {
|
|
199
|
+
const kind = kinds.find(entry => entry.kind === item.kind), parsed = kind?.data.safeParse(item.data);
|
|
200
|
+
if (!kind || !parsed?.success || (item.placement ?? kind.placements[0]) !== "over")
|
|
201
|
+
return [];
|
|
202
|
+
return [{ id: item.id, anchor: item.anchor, cover_words: item.cover_words, place: item.place,
|
|
203
|
+
own: kind.rect(parsed.data, input.aspect_ratio ?? "9:16", undefined, framing) }];
|
|
204
|
+
});
|
|
205
|
+
}
|
|
195
206
|
/** Where a template draws and what it does to captions, at a format; a frozen `kindVersion` reads that version's geometry (#819). */
|
|
196
207
|
export function templateFootprint(item, aspectRatio, kinds = TEMPLATE_KINDS, history = TEMPLATE_KIND_HISTORY, framing = "close") {
|
|
197
208
|
const kind = templateKindAt(item.kind, item.kindVersion, kinds, history);
|
|
@@ -210,7 +221,8 @@ export function templateFaceWarnings(input) {
|
|
|
210
221
|
return input.templates.flatMap(item => {
|
|
211
222
|
const kind = TEMPLATE_KINDS.find(entry => entry.kind === item.kind);
|
|
212
223
|
const placement = item.placement ?? kind?.placements[0];
|
|
213
|
-
|
|
224
|
+
// A placed template is judged by its box, with the placed overlays (#973 S4).
|
|
225
|
+
if (!kind || placement !== "over" || item.place !== undefined || !kind.data.safeParse(item.data).success)
|
|
214
226
|
return [];
|
|
215
227
|
const guarded = kind.faceRect ? kind.faceRect(item.data, aspect, framing) : kind.rect(item.data, aspect, "over", framing);
|
|
216
228
|
return guarded && rectsOverlap(guarded, faceZone(aspect, framing))
|
|
@@ -295,7 +307,22 @@ export function templateRefusals(input, kinds = TEMPLATE_KINDS) {
|
|
|
295
307
|
// A wide request may render close when the actor has no wide view, so footprints are checked in both framings; wide needs an actor and 9:16.
|
|
296
308
|
const wideCanRender = input.presenter_framing === "wide" && input.actor_id !== undefined && aspect === "9:16";
|
|
297
309
|
const framings = wideCanRender ? ["close", "wide"] : ["close"];
|
|
298
|
-
|
|
310
|
+
// An overlay's footprint is its preset's, or the box its place resolves to (#973 S1); a place on a broken chain is refused with the overlays.
|
|
311
|
+
// A template's is its kind's rect, or that rect scaled whole into its place (S4); overlays and templates may stand by one another.
|
|
312
|
+
const scenes = framings.map(framing => {
|
|
313
|
+
const scene = admissionScene(input, aspect, framing), items = [...input.overlays ?? [], ...templateSceneItems(input, framing, kinds)];
|
|
314
|
+
return { items, boxes: overlayFootprints(items, aspect, framing, scene), face: scene.face };
|
|
315
|
+
});
|
|
316
|
+
const overlays = ranged(input.overlays).flatMap(entry => {
|
|
317
|
+
const rects = scenes.map(({ boxes }) => boxes.get(entry.item.id));
|
|
318
|
+
return rects.every(rect => rect !== undefined) ? [{ ...entry, rects: rects }] : [];
|
|
319
|
+
});
|
|
320
|
+
const items = scenes[0].items, canvas = frameCanvasOf(aspect);
|
|
321
|
+
// A place over its anchor is drawn on it by asking, so the pair is no clash.
|
|
322
|
+
const over = (a, b) => {
|
|
323
|
+
const place = items.find(item => item.id === a)?.place;
|
|
324
|
+
return place !== undefined && "side" in place && place.side === "over" && placeAnchorOf(place) === b;
|
|
325
|
+
};
|
|
299
326
|
const placed = [];
|
|
300
327
|
for (const [index, item] of input.templates.entries()) {
|
|
301
328
|
const at = (...rest) => ["templates", index, ...rest];
|
|
@@ -335,7 +362,23 @@ export function templateRefusals(input, kinds = TEMPLATE_KINDS) {
|
|
|
335
362
|
if (beat.refusal)
|
|
336
363
|
refusals.push({ path: at("data", ...beat.path), message: `template "${item.id}" ${beat.path.join(".")} ${beat.refusal}` });
|
|
337
364
|
const footprints = framings.map(framing => templateFootprint({ kind: item.kind, placement, data: parsed.data }, aspect, kinds, undefined, framing));
|
|
338
|
-
|
|
365
|
+
let rects = footprints.map(footprint => footprint.rect);
|
|
366
|
+
if (item.place) {
|
|
367
|
+
// A placed template is its own drawing scaled whole into the box (#973 S4): over the presenter, never cut to fit, never moved by the captions.
|
|
368
|
+
const place = item.place, why = placement !== "over" ? "a template takes place over the presenter only (placement over)"
|
|
369
|
+
: placeByCaptions(place) ? "a template does not stand by the captions: place it by the frame, the face, an overlay or a template"
|
|
370
|
+
: place.fit === "cover" ? "a template is scaled whole into its box: drop fit cover" : undefined;
|
|
371
|
+
if (why) {
|
|
372
|
+
refusals.push({ path: at("place"), message: `template "${item.id}": ${why}` });
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
refusals.push(...placedRefusals("template", { ...item, place }, range, (...rest) => at("place", ...rest), { items, tokens, footprints: scenes, canvas }));
|
|
376
|
+
const boxes = scenes.map(({ boxes }) => boxes.get(item.id));
|
|
377
|
+
if (boxes.some(box => box === undefined))
|
|
378
|
+
continue;
|
|
379
|
+
rects = boxes;
|
|
380
|
+
}
|
|
381
|
+
placed.push({ index, id: item.id, placement, transition: item.transition, range, rects, onInserts: footprints[0].onInserts,
|
|
339
382
|
beats: beats.flatMap(beat => (beat.word === undefined ? [] : [{ path: beat.path, word: beat.word }])) });
|
|
340
383
|
}
|
|
341
384
|
const fulls = placed.filter(entry => entry.placement === "full"), overs = placed.filter(entry => entry.placement === "over");
|
|
@@ -374,7 +417,8 @@ export function templateRefusals(input, kinds = TEMPLATE_KINDS) {
|
|
|
374
417
|
}
|
|
375
418
|
const together = [...overlays.map(other => ({ id: other.item.id, range: other.range, rects: other.rects })),
|
|
376
419
|
...overs.filter(other => other.index < entry.index)].filter(other => overlaps(other.range, entry.range));
|
|
377
|
-
const clash = together.find(other => other.
|
|
420
|
+
const clash = together.find(other => !over(other.id, entry.id) && !over(entry.id, other.id) &&
|
|
421
|
+
other.rects.some((rect, at) => rectsOverlap(rect, entry.rects[at])));
|
|
378
422
|
if (clash) {
|
|
379
423
|
refuse(`shares the screen with "${clash.id}" at the same time on an overlapping footprint: move one of them or its words`);
|
|
380
424
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { Gender } from "./default-actor.js";
|
|
2
|
+
import { type AnchoredItem, type LayerRefusal, type WordRange } from "./ugc-layers.js";
|
|
3
|
+
export declare const INTERVIEW_GAZES: readonly ["camera", "left", "right"];
|
|
4
|
+
export type InterviewGaze = (typeof INTERVIEW_GAZES)[number];
|
|
5
|
+
export declare const INTERVIEW_LISTENING: readonly ["freeze", "live"];
|
|
6
|
+
export declare const MAX_INTERVIEW_TURNS = 12;
|
|
7
|
+
/** The presenter's takes in one interview: one per answer, and one more at each change of gaze. */
|
|
8
|
+
export declare const MAX_INTERVIEW_TAKES = 10;
|
|
9
|
+
export declare const MAX_PRESENTER_GAZE = 6;
|
|
10
|
+
/** Past this the presenter holds still long enough to name it. */
|
|
11
|
+
export declare const INTERVIEW_FREEZE_WARN_SEC = 6;
|
|
12
|
+
/** An off-screen line's length before synthesis, at a conversation's 19 characters a second. */
|
|
13
|
+
export declare const INTERVIEW_CHARS_PER_SEC = 19;
|
|
14
|
+
/** The conversation's pauses, cut down to a tenth of a second unless pause_trim names others: an interview answers without waiting. */
|
|
15
|
+
export declare const INTERVIEW_PAUSE_TRIM: Readonly<{
|
|
16
|
+
sentence_end_s: 0.1;
|
|
17
|
+
comma_s: 0.1;
|
|
18
|
+
mid_phrase_s: 0.1;
|
|
19
|
+
}>;
|
|
20
|
+
/** The off-screen voice when none is named, never the presenter's own. */
|
|
21
|
+
export declare const DEFAULT_INTERVIEW_VOICE = "en_male_mark";
|
|
22
|
+
export declare const SECOND_INTERVIEW_VOICE = "en_female_cassidy";
|
|
23
|
+
type Anchor = AnchoredItem["anchor"];
|
|
24
|
+
export interface InterviewTurn {
|
|
25
|
+
anchor: Anchor;
|
|
26
|
+
cover_words?: number | undefined;
|
|
27
|
+
}
|
|
28
|
+
export interface InterviewInput {
|
|
29
|
+
turns: readonly InterviewTurn[];
|
|
30
|
+
off_screen?: {
|
|
31
|
+
voice?: string | undefined;
|
|
32
|
+
caption?: {
|
|
33
|
+
style?: string | undefined;
|
|
34
|
+
place?: unknown;
|
|
35
|
+
} | undefined;
|
|
36
|
+
} | undefined;
|
|
37
|
+
gaze?: InterviewGaze | undefined;
|
|
38
|
+
listening?: (typeof INTERVIEW_LISTENING)[number] | undefined;
|
|
39
|
+
}
|
|
40
|
+
export interface PresenterGazeItem {
|
|
41
|
+
anchor: Anchor;
|
|
42
|
+
cover_words?: number | undefined;
|
|
43
|
+
gaze: InterviewGaze;
|
|
44
|
+
}
|
|
45
|
+
/** The off-screen speaker's word ranges in script order, adjacent turns joined; a string names the first turn that does not resolve or overlaps. */
|
|
46
|
+
export declare function interviewTurnRanges(script: string, turns: readonly InterviewTurn[]): WordRange[] | {
|
|
47
|
+
index: number;
|
|
48
|
+
message: string;
|
|
49
|
+
};
|
|
50
|
+
export type InterviewSpeaker = "presenter" | "off_screen";
|
|
51
|
+
export interface InterviewLine {
|
|
52
|
+
speaker: InterviewSpeaker;
|
|
53
|
+
text: string;
|
|
54
|
+
startWord: number;
|
|
55
|
+
coverWord: number;
|
|
56
|
+
}
|
|
57
|
+
/** The script cut into the lines of the conversation, at word boundaries with each word's punctuation kept, in order. */
|
|
58
|
+
export declare function interviewTexts(script: string, turns: readonly WordRange[]): InterviewLine[];
|
|
59
|
+
/** A conversation's pace before synthesis (#991): each line takes a start and a time per word, a short answer reading slower than narration. */
|
|
60
|
+
export declare const INTERVIEW_LINE_SEC = 0.43;
|
|
61
|
+
export declare const INTERVIEW_WORD_SEC = 0.39;
|
|
62
|
+
/** An interview's estimated length and the presenter's share of it, line by line. */
|
|
63
|
+
export declare function interviewSecondsEstimate(script: string, turns: readonly WordRange[]): {
|
|
64
|
+
totalSec: number;
|
|
65
|
+
presenterSec: number;
|
|
66
|
+
};
|
|
67
|
+
/** Each lexical word's speaker. */
|
|
68
|
+
export declare function wordSpeakers(total: number, turns: readonly WordRange[]): InterviewSpeaker[];
|
|
69
|
+
/** The presenter's gaze on each lexical word: the interview's own, else camera, then each presenter_gaze item on its words. */
|
|
70
|
+
export declare function wordGazes(script: string, input: {
|
|
71
|
+
interview?: Pick<InterviewInput, "gaze"> | undefined;
|
|
72
|
+
presenter_gaze?: readonly PresenterGazeItem[] | undefined;
|
|
73
|
+
}): InterviewGaze[];
|
|
74
|
+
/** Every view of the actor the run needs, the main one first. */
|
|
75
|
+
export declare function gazesNeeded(input: {
|
|
76
|
+
interview?: Pick<InterviewInput, "gaze"> | undefined;
|
|
77
|
+
presenter_gaze?: readonly Pick<PresenterGazeItem, "gaze">[] | undefined;
|
|
78
|
+
}): InterviewGaze[];
|
|
79
|
+
/** The presenter's takes before timing: each run of words on screen is one, and a change of gaze inside a run starts another. */
|
|
80
|
+
export declare function presenterTakeCount(script: string, input: {
|
|
81
|
+
interview?: InterviewInput | undefined;
|
|
82
|
+
presenter_gaze?: readonly PresenterGazeItem[] | undefined;
|
|
83
|
+
inserts?: readonly AnchoredItem[] | undefined;
|
|
84
|
+
}): number;
|
|
85
|
+
export interface InterviewCheckInput {
|
|
86
|
+
script?: string | undefined;
|
|
87
|
+
segments?: unknown;
|
|
88
|
+
call?: unknown;
|
|
89
|
+
voice?: string | undefined;
|
|
90
|
+
tts_model?: string | undefined;
|
|
91
|
+
voice_id?: string | undefined;
|
|
92
|
+
image?: string | undefined;
|
|
93
|
+
actor_gender?: Gender | undefined;
|
|
94
|
+
actor_id?: string | undefined;
|
|
95
|
+
captions?: boolean | undefined;
|
|
96
|
+
inserts?: readonly AnchoredItem[] | undefined;
|
|
97
|
+
caption_emphasis?: readonly (string | {
|
|
98
|
+
quote: string;
|
|
99
|
+
})[] | undefined;
|
|
100
|
+
interview?: InterviewInput | undefined;
|
|
101
|
+
presenter_gaze?: readonly PresenterGazeItem[] | undefined;
|
|
102
|
+
}
|
|
103
|
+
/** The one model that speaks a conversation in one request. */
|
|
104
|
+
export declare const INTERVIEW_TTS_MODEL = "eleven_v4";
|
|
105
|
+
/** Every refusal of `interview` and `presenter_gaze` before money, named by path. */
|
|
106
|
+
export declare function interviewRefusals(input: InterviewCheckInput): LayerRefusal[];
|
|
107
|
+
/** What an interview does differently from what was asked, named before money (rule 3). */
|
|
108
|
+
export declare function interviewWarnings(input: {
|
|
109
|
+
script?: unknown;
|
|
110
|
+
interview?: unknown;
|
|
111
|
+
voice_pace?: unknown;
|
|
112
|
+
}): string[];
|
|
113
|
+
export declare const INTERVIEW_SHARED_VOICE_REFUSAL = "the off-screen speaker needs a voice other than the presenter's";
|
|
114
|
+
/** The presenter's voice by name: the named one, else its model's default for the gender; a raw voice_id has no name. */
|
|
115
|
+
export declare function interviewPresenterVoice(input: {
|
|
116
|
+
voice?: string | undefined;
|
|
117
|
+
voice_id?: string | undefined;
|
|
118
|
+
tts_model?: string | undefined;
|
|
119
|
+
}, gender: Gender | undefined): string | undefined;
|
|
120
|
+
/** The off-screen voice: the named one, else the default, kept off the presenter's voice; the server compares by vendor id (#987). */
|
|
121
|
+
export declare function interviewOffScreenVoice(interview: Pick<InterviewInput, "off_screen">, speaksPresenterVoice: (voice: string) => boolean): string;
|
|
122
|
+
export {};
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { lexicalTokens, quoteOccurrences } from "./semantic-inserts.js";
|
|
2
|
+
import { defaultVoiceOf } from "./voices.js";
|
|
3
|
+
import { layerWordRange } from "./ugc-layers.js";
|
|
4
|
+
// An interview (#972): an off-screen speaker's words inside the script, the presenter answering on screen and holding still while they speak.
|
|
5
|
+
export const INTERVIEW_GAZES = ["camera", "left", "right"];
|
|
6
|
+
export const INTERVIEW_LISTENING = ["freeze", "live"];
|
|
7
|
+
export const MAX_INTERVIEW_TURNS = 12;
|
|
8
|
+
/** The presenter's takes in one interview: one per answer, and one more at each change of gaze. */
|
|
9
|
+
export const MAX_INTERVIEW_TAKES = 10;
|
|
10
|
+
export const MAX_PRESENTER_GAZE = 6;
|
|
11
|
+
/** Past this the presenter holds still long enough to name it. */
|
|
12
|
+
export const INTERVIEW_FREEZE_WARN_SEC = 6;
|
|
13
|
+
/** An off-screen line's length before synthesis, at a conversation's 19 characters a second. */
|
|
14
|
+
export const INTERVIEW_CHARS_PER_SEC = 19;
|
|
15
|
+
/** The conversation's pauses, cut down to a tenth of a second unless pause_trim names others: an interview answers without waiting. */
|
|
16
|
+
export const INTERVIEW_PAUSE_TRIM = Object.freeze({ sentence_end_s: 0.1, comma_s: 0.1, mid_phrase_s: 0.1 });
|
|
17
|
+
/** The off-screen voice when none is named, never the presenter's own. */
|
|
18
|
+
export const DEFAULT_INTERVIEW_VOICE = "en_male_mark";
|
|
19
|
+
export const SECOND_INTERVIEW_VOICE = "en_female_cassidy";
|
|
20
|
+
/** The off-screen speaker's word ranges in script order, adjacent turns joined; a string names the first turn that does not resolve or overlaps. */
|
|
21
|
+
export function interviewTurnRanges(script, turns) {
|
|
22
|
+
const tokens = lexicalTokens(script), ranges = [];
|
|
23
|
+
for (const [index, turn] of turns.entries()) {
|
|
24
|
+
const range = layerWordRange(tokens, { id: "turn", anchor: turn.anchor, cover_words: turn.cover_words });
|
|
25
|
+
if (typeof range === "string")
|
|
26
|
+
return { index, message: range };
|
|
27
|
+
const other = ranges.find(item => item.startWord < range.coverWord && range.startWord < item.coverWord);
|
|
28
|
+
if (other)
|
|
29
|
+
return { index, message: `overlaps turn ${other.index}` };
|
|
30
|
+
ranges.push({ ...range, index });
|
|
31
|
+
}
|
|
32
|
+
const sorted = ranges.sort((a, b) => a.startWord - b.startWord), joined = [];
|
|
33
|
+
for (const { startWord, coverWord } of sorted) {
|
|
34
|
+
const last = joined.at(-1);
|
|
35
|
+
if (last && last.coverWord === startWord)
|
|
36
|
+
last.coverWord = coverWord;
|
|
37
|
+
else
|
|
38
|
+
joined.push({ startWord, coverWord });
|
|
39
|
+
}
|
|
40
|
+
return joined;
|
|
41
|
+
}
|
|
42
|
+
/** The script cut into the lines of the conversation, at word boundaries with each word's punctuation kept, in order. */
|
|
43
|
+
export function interviewTexts(script, turns) {
|
|
44
|
+
const total = lexicalTokens(script).length, cuts = new Set();
|
|
45
|
+
for (const turn of turns) {
|
|
46
|
+
cuts.add(turn.startWord);
|
|
47
|
+
cuts.add(turn.coverWord);
|
|
48
|
+
}
|
|
49
|
+
const boundaries = [...cuts].filter(word => word > 0 && word < total).sort((a, b) => a - b);
|
|
50
|
+
const pieces = splitAtWords(script, boundaries);
|
|
51
|
+
let at = 0;
|
|
52
|
+
return pieces.map((text, index) => {
|
|
53
|
+
const startWord = at, coverWord = boundaries[index] ?? total;
|
|
54
|
+
at = coverWord;
|
|
55
|
+
const speaker = turns.some(turn => turn.startWord <= startWord && startWord < turn.coverWord) ? "off_screen" : "presenter";
|
|
56
|
+
return { speaker, text, startWord, coverWord };
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/** A conversation's pace before synthesis (#991): each line takes a start and a time per word, a short answer reading slower than narration. */
|
|
60
|
+
export const INTERVIEW_LINE_SEC = 0.43;
|
|
61
|
+
export const INTERVIEW_WORD_SEC = 0.39;
|
|
62
|
+
/** An interview's estimated length and the presenter's share of it, line by line. */
|
|
63
|
+
export function interviewSecondsEstimate(script, turns) {
|
|
64
|
+
let totalSec = 0, presenterSec = 0;
|
|
65
|
+
for (const line of interviewTexts(script, turns)) {
|
|
66
|
+
const seconds = INTERVIEW_LINE_SEC + INTERVIEW_WORD_SEC * (line.coverWord - line.startWord);
|
|
67
|
+
totalSec += seconds;
|
|
68
|
+
if (line.speaker === "presenter")
|
|
69
|
+
presenterSec += seconds;
|
|
70
|
+
}
|
|
71
|
+
return { totalSec, presenterSec };
|
|
72
|
+
}
|
|
73
|
+
/** The script split before each lexical word in `boundaries`: whole whitespace chunks where possible, else inside one at the shortest prefix
|
|
74
|
+
* that holds exactly the words before the cut. */
|
|
75
|
+
function splitAtWords(script, boundaries) {
|
|
76
|
+
const chunks = script.split(/(\s+)/u), pieces = [];
|
|
77
|
+
let current = "", words = 0, next = 0;
|
|
78
|
+
for (const chunk of chunks) {
|
|
79
|
+
if (/^\s*$/u.test(chunk)) {
|
|
80
|
+
current += chunk;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
let rest = chunk;
|
|
84
|
+
let count = lexicalTokens(rest).length;
|
|
85
|
+
while (next < boundaries.length && words + count > boundaries[next]) {
|
|
86
|
+
const need = boundaries[next] - words;
|
|
87
|
+
if (need <= 0) {
|
|
88
|
+
pieces.push(current);
|
|
89
|
+
current = "";
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// The longest such prefix, so the punctuation after the last word stays with it.
|
|
93
|
+
const cut = [...Array(rest.length).keys()].map(i => i + 1).findLast(p => lexicalTokens(rest.slice(0, p)).length === need &&
|
|
94
|
+
lexicalTokens(rest.slice(p)).length === count - need);
|
|
95
|
+
pieces.push(current + rest.slice(0, cut));
|
|
96
|
+
current = "";
|
|
97
|
+
rest = rest.slice(cut);
|
|
98
|
+
words += need;
|
|
99
|
+
count -= need;
|
|
100
|
+
}
|
|
101
|
+
next++;
|
|
102
|
+
}
|
|
103
|
+
current += rest;
|
|
104
|
+
words += count;
|
|
105
|
+
}
|
|
106
|
+
pieces.push(current);
|
|
107
|
+
return pieces.map(piece => piece.trim());
|
|
108
|
+
}
|
|
109
|
+
/** Each lexical word's speaker. */
|
|
110
|
+
export function wordSpeakers(total, turns) {
|
|
111
|
+
return Array.from({ length: total }, (_, word) => turns.some(turn => turn.startWord <= word && word < turn.coverWord) ? "off_screen" : "presenter");
|
|
112
|
+
}
|
|
113
|
+
/** The presenter's gaze on each lexical word: the interview's own, else camera, then each presenter_gaze item on its words. */
|
|
114
|
+
export function wordGazes(script, input) {
|
|
115
|
+
const tokens = lexicalTokens(script), gazes = tokens.map(() => input.interview?.gaze ?? "camera");
|
|
116
|
+
for (const item of input.presenter_gaze ?? []) {
|
|
117
|
+
const range = layerWordRange(tokens, { id: "gaze", anchor: item.anchor, cover_words: item.cover_words });
|
|
118
|
+
if (typeof range === "string")
|
|
119
|
+
continue;
|
|
120
|
+
for (let word = range.startWord; word < range.coverWord; word++)
|
|
121
|
+
gazes[word] = item.gaze;
|
|
122
|
+
}
|
|
123
|
+
return gazes;
|
|
124
|
+
}
|
|
125
|
+
/** Every view of the actor the run needs, the main one first. */
|
|
126
|
+
export function gazesNeeded(input) {
|
|
127
|
+
return [...new Set([input.interview?.gaze ?? "camera", ...(input.presenter_gaze ?? []).map(item => item.gaze)])];
|
|
128
|
+
}
|
|
129
|
+
/** The presenter's takes before timing: each run of words on screen is one, and a change of gaze inside a run starts another. */
|
|
130
|
+
export function presenterTakeCount(script, input) {
|
|
131
|
+
const tokens = lexicalTokens(script), turns = input.interview ? interviewTurnRanges(script, input.interview.turns) : [];
|
|
132
|
+
if (!Array.isArray(turns))
|
|
133
|
+
return 0;
|
|
134
|
+
const covered = new Set();
|
|
135
|
+
for (const insert of input.inserts ?? []) {
|
|
136
|
+
const range = layerWordRange(tokens, insert);
|
|
137
|
+
if (typeof range !== "string")
|
|
138
|
+
for (let word = range.startWord; word < range.coverWord; word++)
|
|
139
|
+
covered.add(word);
|
|
140
|
+
}
|
|
141
|
+
const speakers = wordSpeakers(tokens.length, turns), gazes = wordGazes(script, input);
|
|
142
|
+
let takes = 0;
|
|
143
|
+
for (let word = 0; word < tokens.length; word++) {
|
|
144
|
+
const shown = speakers[word] === "presenter" && !covered.has(word);
|
|
145
|
+
const before = word > 0 && speakers[word - 1] === "presenter" && !covered.has(word - 1);
|
|
146
|
+
if (shown && (!before || gazes[word] !== gazes[word - 1]))
|
|
147
|
+
takes++;
|
|
148
|
+
}
|
|
149
|
+
return takes;
|
|
150
|
+
}
|
|
151
|
+
/** The one model that speaks a conversation in one request. */
|
|
152
|
+
export const INTERVIEW_TTS_MODEL = "eleven_v4";
|
|
153
|
+
/** Every refusal of `interview` and `presenter_gaze` before money, named by path. */
|
|
154
|
+
export function interviewRefusals(input) {
|
|
155
|
+
const { interview } = input;
|
|
156
|
+
if (interview === undefined && input.presenter_gaze === undefined)
|
|
157
|
+
return [];
|
|
158
|
+
if (input.script === undefined || input.segments !== undefined || input.call !== undefined) {
|
|
159
|
+
const field = interview ? "interview" : "presenter_gaze";
|
|
160
|
+
return [{ path: [field], message: `${field} needs script and cannot be combined with segments or call` }];
|
|
161
|
+
}
|
|
162
|
+
const refusals = [], tokens = lexicalTokens(input.script);
|
|
163
|
+
let turns = [];
|
|
164
|
+
if (interview) {
|
|
165
|
+
const ranges = interviewTurnRanges(input.script, interview.turns);
|
|
166
|
+
if (!Array.isArray(ranges))
|
|
167
|
+
refusals.push({ path: ["interview", "turns", ranges.index, "anchor"], message: ranges.message });
|
|
168
|
+
else {
|
|
169
|
+
turns = ranges;
|
|
170
|
+
if (turns.reduce((sum, turn) => sum + turn.coverWord - turn.startWord, 0) === tokens.length) {
|
|
171
|
+
refusals.push({ path: ["interview", "turns"], message: "every word is the off-screen speaker's: the presenter needs words" });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// An actor_id's gender is the pin's, so admission checks its default voice (#972 I2); an unknown gender speaks the default actor's voice.
|
|
175
|
+
const presenter = input.actor_id === undefined || input.voice !== undefined
|
|
176
|
+
? interviewPresenterVoice(input, input.image === undefined ? undefined : input.actor_gender) : undefined;
|
|
177
|
+
if (interview.off_screen?.voice !== undefined && interview.off_screen.voice === presenter) {
|
|
178
|
+
refusals.push({ path: ["interview", "off_screen", "voice"], message: INTERVIEW_SHARED_VOICE_REFUSAL });
|
|
179
|
+
}
|
|
180
|
+
if (input.tts_model !== undefined && input.tts_model !== INTERVIEW_TTS_MODEL) {
|
|
181
|
+
refusals.push({ path: ["tts_model"], message: `an interview speaks both voices as one conversation on ${INTERVIEW_TTS_MODEL}: omit tts_model or pass ${INTERVIEW_TTS_MODEL}` });
|
|
182
|
+
}
|
|
183
|
+
if (interview.listening === "live") {
|
|
184
|
+
refusals.push({ path: ["interview", "listening"], message: "listening live is not offered yet: omit listening, and the presenter holds still while the off-screen speaker talks" });
|
|
185
|
+
}
|
|
186
|
+
if (interview.off_screen?.caption !== undefined && input.captions !== true) {
|
|
187
|
+
refusals.push({ path: ["interview", "off_screen", "caption"], message: "interview.off_screen.caption requires captions=true: it styles the off-screen speaker's captions" });
|
|
188
|
+
}
|
|
189
|
+
if (interview.gaze !== undefined && interview.gaze !== "camera" && input.actor_id === undefined) {
|
|
190
|
+
refusals.push({ path: ["interview", "gaze"], message: "interview.gaze needs actor_id; list_actors shows each actor's views" });
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const off = wordSpeakers(tokens.length, turns), gazed = [];
|
|
194
|
+
for (const [index, item] of (input.presenter_gaze ?? []).entries()) {
|
|
195
|
+
if (input.actor_id === undefined) {
|
|
196
|
+
refusals.push({ path: ["presenter_gaze", index], message: `presenter_gaze[${index}]: needs actor_id; list_actors shows each actor's views` });
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const range = layerWordRange(tokens, { id: "gaze", anchor: item.anchor, cover_words: item.cover_words });
|
|
200
|
+
if (typeof range === "string") {
|
|
201
|
+
refusals.push({ path: ["presenter_gaze", index, "anchor"], message: range });
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (off.slice(range.startWord, range.coverWord).includes("off_screen")) {
|
|
205
|
+
refusals.push({ path: ["presenter_gaze", index, "anchor"], message: "the presenter looks where they speak: these words are the off-screen speaker's" });
|
|
206
|
+
}
|
|
207
|
+
if (gazed.some(other => other.startWord < range.coverWord && range.startWord < other.coverWord)) {
|
|
208
|
+
refusals.push({ path: ["presenter_gaze", index, "anchor"], message: "overlaps an earlier presenter_gaze item: one gaze holds a word" });
|
|
209
|
+
}
|
|
210
|
+
gazed.push(range);
|
|
211
|
+
}
|
|
212
|
+
if (interview && input.captions === true) {
|
|
213
|
+
for (const [index, item] of (input.caption_emphasis ?? []).entries()) {
|
|
214
|
+
const quote = typeof item === "string" ? item : item.quote;
|
|
215
|
+
if (quoteOccurrences(tokens, quote).some(match => off.slice(match.startWord, match.endWord).includes("off_screen"))) {
|
|
216
|
+
refusals.push({ path: ["caption_emphasis", index], message: `"${quote}" is spoken off screen; emphasis marks the presenter's words` });
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (!refusals.length) {
|
|
221
|
+
const takes = presenterTakeCount(input.script, input), cap = interview ? MAX_INTERVIEW_TAKES : undefined;
|
|
222
|
+
if (cap !== undefined && takes > cap) {
|
|
223
|
+
refusals.push({ path: ["interview"], message: `the presenter appears in ${takes} takes, more than ${cap}; merge answers or drop a change of gaze` });
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return refusals;
|
|
227
|
+
}
|
|
228
|
+
/** What an interview does differently from what was asked, named before money (rule 3). */
|
|
229
|
+
export function interviewWarnings(input) {
|
|
230
|
+
const interview = input.interview;
|
|
231
|
+
if (typeof input.script !== "string" || !interview || !Array.isArray(interview.turns))
|
|
232
|
+
return [];
|
|
233
|
+
const turns = interviewTurnRanges(input.script, interview.turns);
|
|
234
|
+
if (!Array.isArray(turns))
|
|
235
|
+
return [];
|
|
236
|
+
const warnings = [];
|
|
237
|
+
const lines = interviewTexts(input.script, turns).filter(line => line.speaker === "off_screen");
|
|
238
|
+
const longest = Math.max(0, ...lines.map(line => line.text.length / INTERVIEW_CHARS_PER_SEC));
|
|
239
|
+
if (longest > INTERVIEW_FREEZE_WARN_SEC) {
|
|
240
|
+
warnings.push(`the presenter holds still for about ${longest.toFixed(1)} s while the off-screen speaker talks`);
|
|
241
|
+
}
|
|
242
|
+
if (turns[0]?.startWord === 0)
|
|
243
|
+
warnings.push("the opening question freezes the presenter on the first frame of their first answer");
|
|
244
|
+
if (input.voice_pace !== undefined) {
|
|
245
|
+
warnings.push("voice_pace does not change an interview: both voices speak as one conversation at their own pace; list_voices names each voice's words_per_second");
|
|
246
|
+
}
|
|
247
|
+
return warnings;
|
|
248
|
+
}
|
|
249
|
+
export const INTERVIEW_SHARED_VOICE_REFUSAL = "the off-screen speaker needs a voice other than the presenter's";
|
|
250
|
+
/** The presenter's voice by name: the named one, else its model's default for the gender; a raw voice_id has no name. */
|
|
251
|
+
export function interviewPresenterVoice(input, gender) {
|
|
252
|
+
if (input.voice_id !== undefined)
|
|
253
|
+
return undefined;
|
|
254
|
+
return input.voice ?? defaultVoiceOf(input.tts_model, gender).name;
|
|
255
|
+
}
|
|
256
|
+
/** The off-screen voice: the named one, else the default, kept off the presenter's voice; the server compares by vendor id (#987). */
|
|
257
|
+
export function interviewOffScreenVoice(interview, speaksPresenterVoice) {
|
|
258
|
+
return interview.off_screen?.voice ?? (speaksPresenterVoice(DEFAULT_INTERVIEW_VOICE) ? SECOND_INTERVIEW_VOICE : DEFAULT_INTERVIEW_VOICE);
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=ugc-interview.js.map
|