@speakai/shared 1.6.2 → 1.7.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/dist/enums/transcription.d.ts +2 -0
- package/dist/enums/transcription.d.ts.map +1 -1
- package/dist/enums/transcription.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/clip.d.ts +36 -0
- package/dist/interfaces/clip.d.ts.map +1 -0
- package/dist/interfaces/clip.js +2 -0
- package/dist/interfaces/clip.js.map +1 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/transcript.d.ts +84 -1
- package/dist/interfaces/transcript.d.ts.map +1 -1
- package/dist/interfaces/transcript.js +1 -0
- package/dist/interfaces/transcript.js.map +1 -1
- package/dist/utils/transcript.d.ts +27 -0
- package/dist/utils/transcript.d.ts.map +1 -0
- package/dist/utils/transcript.js +100 -0
- package/dist/utils/transcript.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcription.d.ts","sourceRoot":"","sources":["../../src/enums/transcription.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACZ;AAED,oBAAY,qBAAqB;IAC/B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,6BAA6B;IACvC,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"transcription.d.ts","sourceRoot":"","sources":["../../src/enums/transcription.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/C,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,GAAG,QAAQ;CACZ;AAED,oBAAY,qBAAqB;IAC/B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,6BAA6B;IACvC,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcription.js","sourceRoot":"","sources":["../../src/enums/transcription.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transcription.js","sourceRoot":"","sources":["../../src/enums/transcription.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,QAAQ;AACR,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MediaType } from '../enums/index.js';
|
|
2
|
+
export interface IClipTranscript {
|
|
3
|
+
id: number;
|
|
4
|
+
startTime: number;
|
|
5
|
+
endTime: number;
|
|
6
|
+
text: string;
|
|
7
|
+
language: string;
|
|
8
|
+
speakerId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ITimeRange {
|
|
11
|
+
mediaId: string;
|
|
12
|
+
mediaType: MediaType;
|
|
13
|
+
startTime: number;
|
|
14
|
+
endTime: number;
|
|
15
|
+
duration?: number;
|
|
16
|
+
order?: number;
|
|
17
|
+
name?: string;
|
|
18
|
+
url?: string;
|
|
19
|
+
transcript?: IClipTranscript;
|
|
20
|
+
type?: 'fine' | 'paragraph';
|
|
21
|
+
paragraphId?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IFineSegment {
|
|
24
|
+
start: number;
|
|
25
|
+
end: number;
|
|
26
|
+
text: string;
|
|
27
|
+
order: number;
|
|
28
|
+
}
|
|
29
|
+
export interface IFineSegmentEvent {
|
|
30
|
+
start: number;
|
|
31
|
+
end: number;
|
|
32
|
+
action: 'add' | 'remove' | 'create';
|
|
33
|
+
text?: string;
|
|
34
|
+
order?: number;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=clip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clip.d.ts","sourceRoot":"","sources":["../../src/interfaces/clip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clip.js","sourceRoot":"","sources":["../../src/interfaces/clip.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
package/dist/interfaces/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
|
@@ -25,9 +25,15 @@ export interface ITranscriptSegment {
|
|
|
25
25
|
pos: number;
|
|
26
26
|
};
|
|
27
27
|
entities?: IWordEntity[];
|
|
28
|
+
/** Whether this segment represents an entity-type annotation */
|
|
29
|
+
isEntity?: boolean;
|
|
30
|
+
/** Speaker email from user matching */
|
|
31
|
+
email?: string | null;
|
|
32
|
+
/** Speaker user ID from user matching */
|
|
33
|
+
userId?: string | null;
|
|
28
34
|
}
|
|
29
35
|
export interface IWordEntity {
|
|
30
|
-
id?: number;
|
|
36
|
+
id?: string | number;
|
|
31
37
|
text?: string;
|
|
32
38
|
speakerId?: string;
|
|
33
39
|
confidence?: number;
|
|
@@ -47,4 +53,81 @@ export interface ISpeaker {
|
|
|
47
53
|
durationInPercentage?: number;
|
|
48
54
|
instances?: ITranscriptInstance[];
|
|
49
55
|
}
|
|
56
|
+
export interface IParagraph {
|
|
57
|
+
id?: number;
|
|
58
|
+
isEntity?: boolean;
|
|
59
|
+
sentences: {
|
|
60
|
+
id: number;
|
|
61
|
+
text: string;
|
|
62
|
+
start: string | number;
|
|
63
|
+
end: string | number;
|
|
64
|
+
confidence: number;
|
|
65
|
+
entities?: IWordEntity[];
|
|
66
|
+
}[];
|
|
67
|
+
speakerId: string;
|
|
68
|
+
speakerImg?: string;
|
|
69
|
+
speaker?: {
|
|
70
|
+
userId?: string;
|
|
71
|
+
name?: string;
|
|
72
|
+
email?: string | null;
|
|
73
|
+
};
|
|
74
|
+
language?: string;
|
|
75
|
+
start: string | number;
|
|
76
|
+
end: string | number;
|
|
77
|
+
/** False for live interim paragraphs, true or absent for finalized */
|
|
78
|
+
isFinal?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface IJobRevision {
|
|
81
|
+
jobRevisionId: string;
|
|
82
|
+
title: string;
|
|
83
|
+
createdAt: string;
|
|
84
|
+
isOriginal?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface ITranscriptEditState {
|
|
87
|
+
isEditing: boolean;
|
|
88
|
+
isDirty: boolean;
|
|
89
|
+
originalSentences?: ITranscriptSegment[];
|
|
90
|
+
currentSentences?: ITranscriptSegment[];
|
|
91
|
+
}
|
|
92
|
+
export interface IFindReplaceState {
|
|
93
|
+
searchQuery: string;
|
|
94
|
+
replaceQuery: string;
|
|
95
|
+
caseSensitive: boolean;
|
|
96
|
+
useRegex: boolean;
|
|
97
|
+
isActive: boolean;
|
|
98
|
+
matches: Array<{
|
|
99
|
+
from: number;
|
|
100
|
+
to: number;
|
|
101
|
+
}>;
|
|
102
|
+
currentMatchIndex: number;
|
|
103
|
+
matchCount: number;
|
|
104
|
+
}
|
|
105
|
+
export interface IContextMenuInfo {
|
|
106
|
+
type: 'selection' | 'word' | 'sentence' | 'block';
|
|
107
|
+
text: string;
|
|
108
|
+
start?: number;
|
|
109
|
+
end?: number;
|
|
110
|
+
speakerId?: string;
|
|
111
|
+
paragraphId?: number;
|
|
112
|
+
wordIndex?: number;
|
|
113
|
+
/** Browser-only fields — typed as `unknown` here to avoid DOM dependency in shared.
|
|
114
|
+
* Consumers cast to `Range`, `MouseEvent`, `HTMLElement` in browser context. */
|
|
115
|
+
selectionRange?: unknown;
|
|
116
|
+
event?: unknown;
|
|
117
|
+
domTarget?: unknown;
|
|
118
|
+
}
|
|
119
|
+
export interface ICopyOptions {
|
|
120
|
+
includeSpeakers: boolean;
|
|
121
|
+
includeTimestamps: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface ITranscriptState {
|
|
124
|
+
mediaId: string | null;
|
|
125
|
+
words: IWordEntity[];
|
|
126
|
+
lastApiCall: number;
|
|
127
|
+
wordId: number;
|
|
128
|
+
mediaCreated: boolean;
|
|
129
|
+
mediaCreationInProgress: boolean;
|
|
130
|
+
isConnectionClosed: boolean;
|
|
131
|
+
pendingWords: IWordEntity[];
|
|
132
|
+
}
|
|
50
133
|
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/interfaces/transcript.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/interfaces/transcript.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAID,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;KAC1B,EAAE,CAAC;IACJ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qFACiF;IACjF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAID,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/interfaces/transcript.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/interfaces/transcript.ts"],"names":[],"mappings":"AAAA,sEAAsE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ITranscriptSegment, IParagraph, ISpeaker } from '../interfaces/transcript.js';
|
|
2
|
+
/**
|
|
3
|
+
* Group flat transcript segments into paragraphs by speaker.
|
|
4
|
+
*
|
|
5
|
+
* Consecutive segments with the same speakerId are merged into one paragraph.
|
|
6
|
+
* Optionally enriches speaker metadata from a speakers array.
|
|
7
|
+
*
|
|
8
|
+
* @param segments - Flat array of transcript segments from the API
|
|
9
|
+
* @param speakers - Optional speaker metadata for enrichment (images, names)
|
|
10
|
+
* @returns Grouped paragraphs for display (display grouping by speaker)
|
|
11
|
+
*/
|
|
12
|
+
export declare function groupSegmentsByParagraph(segments: ITranscriptSegment[], speakers?: ISpeaker[]): IParagraph[];
|
|
13
|
+
/**
|
|
14
|
+
* Format seconds into transcript display time (H:MM:SS or HH:MM:SS).
|
|
15
|
+
*
|
|
16
|
+
* @param seconds - Time in seconds
|
|
17
|
+
* @returns Formatted time string
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatTranscriptTime(seconds: number | string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Parse a transcript time string (H:MM:SS or HH:MM:SS) into seconds.
|
|
22
|
+
*
|
|
23
|
+
* @param timeStr - Time string like "1:23:45" or "01:23:45"
|
|
24
|
+
* @returns Time in seconds
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseTranscriptTime(timeStr: string): number;
|
|
27
|
+
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/utils/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAe,UAAU,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEzG;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,QAAQ,CAAC,EAAE,QAAQ,EAAE,GACpB,UAAU,EAAE,CA4Dd;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CASrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe3D"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group flat transcript segments into paragraphs by speaker.
|
|
3
|
+
*
|
|
4
|
+
* Consecutive segments with the same speakerId are merged into one paragraph.
|
|
5
|
+
* Optionally enriches speaker metadata from a speakers array.
|
|
6
|
+
*
|
|
7
|
+
* @param segments - Flat array of transcript segments from the API
|
|
8
|
+
* @param speakers - Optional speaker metadata for enrichment (images, names)
|
|
9
|
+
* @returns Grouped paragraphs for display (display grouping by speaker)
|
|
10
|
+
*/
|
|
11
|
+
export function groupSegmentsByParagraph(segments, speakers) {
|
|
12
|
+
if (!segments || segments.length === 0)
|
|
13
|
+
return [];
|
|
14
|
+
const speakerMap = new Map();
|
|
15
|
+
if (speakers) {
|
|
16
|
+
for (const s of speakers) {
|
|
17
|
+
speakerMap.set(String(s.id), s);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const paragraphs = [];
|
|
21
|
+
let currentParagraph = null;
|
|
22
|
+
for (const segment of segments) {
|
|
23
|
+
const speakerId = String(segment.speakerId);
|
|
24
|
+
// Start a new paragraph if speaker changes or first segment
|
|
25
|
+
if (!currentParagraph || String(currentParagraph.speakerId) !== speakerId) {
|
|
26
|
+
const speakerMeta = speakerMap.get(speakerId);
|
|
27
|
+
const firstInstance = segment.instances?.[0];
|
|
28
|
+
currentParagraph = {
|
|
29
|
+
id: paragraphs.length,
|
|
30
|
+
speakerId,
|
|
31
|
+
speaker: segment.speaker,
|
|
32
|
+
language: segment.language,
|
|
33
|
+
isEntity: segment.isEntity,
|
|
34
|
+
start: firstInstance?.start ?? firstInstance?.startInSec ?? 0,
|
|
35
|
+
end: firstInstance?.end ?? firstInstance?.endInSec ?? 0,
|
|
36
|
+
isFinal: true,
|
|
37
|
+
sentences: [],
|
|
38
|
+
};
|
|
39
|
+
// Enrich with speaker metadata if available
|
|
40
|
+
if (speakerMeta) {
|
|
41
|
+
currentParagraph.speaker = {
|
|
42
|
+
...currentParagraph.speaker,
|
|
43
|
+
name: speakerMeta.name,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
paragraphs.push(currentParagraph);
|
|
47
|
+
}
|
|
48
|
+
// Add sentence to current paragraph
|
|
49
|
+
const instance = segment.instances?.[0];
|
|
50
|
+
currentParagraph.sentences.push({
|
|
51
|
+
id: segment.id,
|
|
52
|
+
text: segment.text,
|
|
53
|
+
start: instance?.start ?? instance?.startInSec ?? 0,
|
|
54
|
+
end: instance?.end ?? instance?.endInSec ?? 0,
|
|
55
|
+
confidence: segment.confidence,
|
|
56
|
+
entities: segment.entities,
|
|
57
|
+
});
|
|
58
|
+
// Update paragraph end time to the latest sentence
|
|
59
|
+
currentParagraph.end = instance?.end ?? instance?.endInSec ?? currentParagraph.end;
|
|
60
|
+
}
|
|
61
|
+
return paragraphs;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Format seconds into transcript display time (H:MM:SS or HH:MM:SS).
|
|
65
|
+
*
|
|
66
|
+
* @param seconds - Time in seconds
|
|
67
|
+
* @returns Formatted time string
|
|
68
|
+
*/
|
|
69
|
+
export function formatTranscriptTime(seconds) {
|
|
70
|
+
const totalSeconds = typeof seconds === 'string' ? parseFloat(seconds) : seconds;
|
|
71
|
+
if (isNaN(totalSeconds) || totalSeconds < 0)
|
|
72
|
+
return '0:00:00';
|
|
73
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
74
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
75
|
+
const secs = Math.floor(totalSeconds % 60);
|
|
76
|
+
return `${hours}:${String(minutes).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Parse a transcript time string (H:MM:SS or HH:MM:SS) into seconds.
|
|
80
|
+
*
|
|
81
|
+
* @param timeStr - Time string like "1:23:45" or "01:23:45"
|
|
82
|
+
* @returns Time in seconds
|
|
83
|
+
*/
|
|
84
|
+
export function parseTranscriptTime(timeStr) {
|
|
85
|
+
if (!timeStr)
|
|
86
|
+
return 0;
|
|
87
|
+
// Handle numeric input
|
|
88
|
+
const numeric = parseFloat(timeStr);
|
|
89
|
+
if (!isNaN(numeric) && !timeStr.includes(':'))
|
|
90
|
+
return numeric;
|
|
91
|
+
const parts = timeStr.split(':').map(Number);
|
|
92
|
+
if (parts.length === 3) {
|
|
93
|
+
return parts[0] * 3600 + parts[1] * 60 + parts[2];
|
|
94
|
+
}
|
|
95
|
+
if (parts.length === 2) {
|
|
96
|
+
return parts[0] * 60 + parts[1];
|
|
97
|
+
}
|
|
98
|
+
return numeric || 0;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/utils/transcript.ts"],"names":[],"mappings":"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"}
|