@aws-amplify/predictions 5.5.6-api-v6-models.b3abc9b.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/lib/Predictions.d.ts +11 -45
- package/lib/Predictions.js +24 -132
- package/lib/errors/PredictionsError.d.ts +4 -0
- package/lib/errors/PredictionsError.js +15 -0
- package/lib/errors/types/validation.d.ts +14 -0
- package/lib/errors/types/validation.js +50 -0
- package/lib/errors/utils/assertValidationError.d.ts +2 -0
- package/lib/errors/utils/assertValidationError.js +14 -0
- package/lib/index.d.ts +2 -4
- package/lib/index.js +2 -9
- package/{lib-esm/Providers → lib/providers}/AmazonAIConvertPredictionsProvider.d.ts +6 -7
- package/lib/providers/AmazonAIConvertPredictionsProvider.js +307 -0
- package/lib/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.d.ts +5 -6
- package/lib/providers/AmazonAIIdentifyPredictionsProvider.js +334 -0
- package/lib/{Providers → providers}/AmazonAIInterpretPredictionsProvider.d.ts +3 -4
- package/lib/providers/AmazonAIInterpretPredictionsProvider.js +208 -0
- package/lib/providers/IdentifyTextUtils.d.ts +16 -0
- package/lib/{Providers → providers}/IdentifyTextUtils.js +97 -148
- package/lib/{Providers → providers}/Utils.d.ts +2 -2
- package/lib/{Providers → providers}/Utils.js +11 -12
- package/lib/{Providers → providers}/index.d.ts +1 -2
- package/lib/providers/index.js +11 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/AWSTypes.d.ts +8 -9
- package/lib/types/AWSTypes.js +0 -1
- package/lib/types/Predictions.d.ts +63 -59
- package/lib/types/Predictions.js +41 -28
- package/lib/types/index.js +1 -2
- package/lib-esm/Predictions.d.ts +11 -45
- package/lib-esm/Predictions.js +23 -133
- package/lib-esm/errors/PredictionsError.d.ts +4 -0
- package/lib-esm/errors/PredictionsError.js +11 -0
- package/lib-esm/errors/types/validation.d.ts +14 -0
- package/lib-esm/errors/types/validation.js +47 -0
- package/lib-esm/errors/utils/assertValidationError.d.ts +2 -0
- package/lib-esm/errors/utils/assertValidationError.js +10 -0
- package/lib-esm/index.d.ts +2 -4
- package/lib-esm/index.js +1 -5
- package/{lib/Providers → lib-esm/providers}/AmazonAIConvertPredictionsProvider.d.ts +6 -7
- package/lib-esm/providers/AmazonAIConvertPredictionsProvider.js +303 -0
- package/lib-esm/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.d.ts +5 -6
- package/lib-esm/providers/AmazonAIIdentifyPredictionsProvider.js +330 -0
- package/lib-esm/{Providers → providers}/AmazonAIInterpretPredictionsProvider.d.ts +3 -4
- package/lib-esm/providers/AmazonAIInterpretPredictionsProvider.js +204 -0
- package/lib-esm/providers/IdentifyTextUtils.d.ts +16 -0
- package/lib-esm/providers/IdentifyTextUtils.js +264 -0
- package/lib-esm/{Providers → providers}/Utils.d.ts +2 -2
- package/lib-esm/{Providers → providers}/Utils.js +10 -12
- package/lib-esm/{Providers → providers}/index.d.ts +1 -2
- package/lib-esm/{Providers → providers}/index.js +1 -3
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/lib-esm/types/AWSTypes.d.ts +8 -9
- package/lib-esm/types/AWSTypes.js +1 -1
- package/lib-esm/types/Predictions.d.ts +63 -59
- package/lib-esm/types/Predictions.js +34 -27
- package/lib-esm/types/index.js +0 -1
- package/package.json +39 -48
- package/src/Predictions.ts +33 -220
- package/src/errors/PredictionsError.ts +16 -0
- package/src/errors/types/validation.ts +51 -0
- package/src/errors/utils/assertValidationError.ts +18 -0
- package/src/index.ts +16 -16
- package/src/{Providers → providers}/AmazonAIConvertPredictionsProvider.ts +210 -171
- package/src/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.ts +244 -246
- package/src/providers/AmazonAIInterpretPredictionsProvider.ts +293 -0
- package/src/{Providers → providers}/IdentifyTextUtils.ts +69 -52
- package/src/{Providers → providers}/Utils.ts +2 -2
- package/src/{Providers → providers}/index.ts +0 -2
- package/src/types/AWSTypes.ts +5 -6
- package/src/types/Predictions.ts +107 -62
- package/lib/.tsbuildinfo +0 -3
- package/lib/Predictions.js.map +0 -1
- package/lib/Providers/AmazonAIConvertPredictionsProvider.js +0 -377
- package/lib/Providers/AmazonAIConvertPredictionsProvider.js.map +0 -1
- package/lib/Providers/AmazonAIIdentifyPredictionsProvider.js +0 -441
- package/lib/Providers/AmazonAIIdentifyPredictionsProvider.js.map +0 -1
- package/lib/Providers/AmazonAIInterpretPredictionsProvider.js +0 -321
- package/lib/Providers/AmazonAIInterpretPredictionsProvider.js.map +0 -1
- package/lib/Providers/AmazonAIPredictionsProvider.d.ts +0 -14
- package/lib/Providers/AmazonAIPredictionsProvider.js +0 -43
- package/lib/Providers/AmazonAIPredictionsProvider.js.map +0 -1
- package/lib/Providers/IdentifyTextUtils.d.ts +0 -40
- package/lib/Providers/IdentifyTextUtils.js.map +0 -1
- package/lib/Providers/Utils.js.map +0 -1
- package/lib/Providers/index.js +0 -13
- package/lib/Providers/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types/AWSTypes.js.map +0 -1
- package/lib/types/Predictions.js.map +0 -1
- package/lib/types/Providers/AbstractConvertPredictionsProvider.d.ts +0 -9
- package/lib/types/Providers/AbstractConvertPredictionsProvider.js +0 -44
- package/lib/types/Providers/AbstractConvertPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/AbstractIdentifyPredictionsProvider.d.ts +0 -9
- package/lib/types/Providers/AbstractIdentifyPredictionsProvider.js +0 -44
- package/lib/types/Providers/AbstractIdentifyPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/AbstractInterpretPredictionsProvider.d.ts +0 -7
- package/lib/types/Providers/AbstractInterpretPredictionsProvider.js +0 -27
- package/lib/types/Providers/AbstractInterpretPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/AbstractPredictionsProvider.d.ts +0 -7
- package/lib/types/Providers/AbstractPredictionsProvider.js +0 -16
- package/lib/types/Providers/AbstractPredictionsProvider.js.map +0 -1
- package/lib/types/Providers/index.d.ts +0 -4
- package/lib/types/Providers/index.js +0 -10
- package/lib/types/Providers/index.js.map +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib-esm/.tsbuildinfo +0 -3
- package/lib-esm/Predictions.js.map +0 -1
- package/lib-esm/Providers/AmazonAIConvertPredictionsProvider.js +0 -375
- package/lib-esm/Providers/AmazonAIConvertPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/AmazonAIIdentifyPredictionsProvider.js +0 -439
- package/lib-esm/Providers/AmazonAIIdentifyPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/AmazonAIInterpretPredictionsProvider.js +0 -319
- package/lib-esm/Providers/AmazonAIInterpretPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/AmazonAIPredictionsProvider.d.ts +0 -14
- package/lib-esm/Providers/AmazonAIPredictionsProvider.js +0 -41
- package/lib-esm/Providers/AmazonAIPredictionsProvider.js.map +0 -1
- package/lib-esm/Providers/IdentifyTextUtils.d.ts +0 -40
- package/lib-esm/Providers/IdentifyTextUtils.js +0 -313
- package/lib-esm/Providers/IdentifyTextUtils.js.map +0 -1
- package/lib-esm/Providers/Utils.js.map +0 -1
- package/lib-esm/Providers/index.js.map +0 -1
- package/lib-esm/index.js.map +0 -1
- package/lib-esm/types/AWSTypes.js.map +0 -1
- package/lib-esm/types/Predictions.js.map +0 -1
- package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.d.ts +0 -9
- package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.js +0 -42
- package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.d.ts +0 -9
- package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.js +0 -42
- package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.d.ts +0 -7
- package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.js +0 -25
- package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/AbstractPredictionsProvider.d.ts +0 -7
- package/lib-esm/types/Providers/AbstractPredictionsProvider.js +0 -14
- package/lib-esm/types/Providers/AbstractPredictionsProvider.js.map +0 -1
- package/lib-esm/types/Providers/index.d.ts +0 -4
- package/lib-esm/types/Providers/index.js +0 -7
- package/lib-esm/types/Providers/index.js.map +0 -1
- package/lib-esm/types/index.js.map +0 -1
- package/src/Providers/AmazonAIInterpretPredictionsProvider.ts +0 -281
- package/src/Providers/AmazonAIPredictionsProvider.ts +0 -69
- package/src/types/Providers/AbstractConvertPredictionsProvider.ts +0 -55
- package/src/types/Providers/AbstractIdentifyPredictionsProvider.ts +0 -57
- package/src/types/Providers/AbstractInterpretPredictionsProvider.ts +0 -26
- package/src/types/Providers/AbstractPredictionsProvider.ts +0 -20
- package/src/types/Providers/index.ts +0 -6
package/src/types/Predictions.ts
CHANGED
|
@@ -2,29 +2,17 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
/* tslint:disable:max-line-length */
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Base types
|
|
7
|
-
*/
|
|
8
|
-
export interface PredictionsOptions {
|
|
9
|
-
[key: string]: any;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface ProviderOptions {
|
|
13
|
-
providerName?: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
5
|
/**
|
|
17
6
|
* Convert types
|
|
18
7
|
*/
|
|
19
8
|
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
9
|
+
export type InterpretTextCategories =
|
|
10
|
+
| 'all'
|
|
11
|
+
| 'language'
|
|
12
|
+
| 'entities'
|
|
13
|
+
| 'sentiment'
|
|
14
|
+
| 'syntax'
|
|
15
|
+
| 'keyPhrases';
|
|
28
16
|
|
|
29
17
|
export interface InterpretTextInput {
|
|
30
18
|
text: InterpretTextInputLanguage | InterpretTextOthers | InterpretTextAll;
|
|
@@ -34,7 +22,7 @@ export interface InterpretTextInputLanguage {
|
|
|
34
22
|
source: {
|
|
35
23
|
text: string;
|
|
36
24
|
};
|
|
37
|
-
type: InterpretTextCategories
|
|
25
|
+
type: Extract<InterpretTextCategories, 'language'>;
|
|
38
26
|
}
|
|
39
27
|
|
|
40
28
|
export interface InterpretTextOthers {
|
|
@@ -42,28 +30,28 @@ export interface InterpretTextOthers {
|
|
|
42
30
|
text: string;
|
|
43
31
|
language: string;
|
|
44
32
|
};
|
|
45
|
-
type:
|
|
46
|
-
|
|
47
|
-
|
|
|
48
|
-
|
|
49
|
-
| InterpretTextCategories.KEY_PHRASES;
|
|
33
|
+
type: Extract<
|
|
34
|
+
InterpretTextCategories,
|
|
35
|
+
'entities' | 'sentiment' | 'syntax' | 'keyPhrases'
|
|
36
|
+
>;
|
|
50
37
|
}
|
|
51
38
|
|
|
52
39
|
export interface InterpretTextAll {
|
|
53
40
|
source: {
|
|
54
41
|
text: string;
|
|
55
42
|
};
|
|
56
|
-
type: InterpretTextCategories
|
|
43
|
+
type: Extract<InterpretTextCategories, 'all'>;
|
|
57
44
|
}
|
|
58
45
|
|
|
59
46
|
export interface TextEntities {
|
|
60
|
-
type
|
|
61
|
-
text
|
|
47
|
+
type?: string;
|
|
48
|
+
text?: string;
|
|
62
49
|
}
|
|
63
50
|
|
|
64
|
-
export
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
export type KeyPhrases = KeyPhrase[];
|
|
52
|
+
export type KeyPhrase = {
|
|
53
|
+
text?: string;
|
|
54
|
+
};
|
|
67
55
|
|
|
68
56
|
export interface TextSyntax {
|
|
69
57
|
text: string;
|
|
@@ -78,11 +66,16 @@ export interface TextSentiment {
|
|
|
78
66
|
mixed: number;
|
|
79
67
|
}
|
|
80
68
|
|
|
69
|
+
export type DetectParams = {
|
|
70
|
+
Text: string;
|
|
71
|
+
LanguageCode: string;
|
|
72
|
+
};
|
|
73
|
+
|
|
81
74
|
export interface InterpretTextOutput {
|
|
82
75
|
textInterpretation: {
|
|
83
76
|
language?: string;
|
|
84
77
|
textEntities?: Array<TextEntities>;
|
|
85
|
-
keyPhrases?:
|
|
78
|
+
keyPhrases?: KeyPhrases;
|
|
86
79
|
sentiment?: TextSentiment;
|
|
87
80
|
syntax?: Array<TextSyntax>;
|
|
88
81
|
};
|
|
@@ -121,7 +114,7 @@ export interface TextToSpeechOutput {
|
|
|
121
114
|
|
|
122
115
|
export interface StorageSource {
|
|
123
116
|
key: string;
|
|
124
|
-
level?: '
|
|
117
|
+
level?: 'guest' | 'private' | 'protected';
|
|
125
118
|
identityId?: string;
|
|
126
119
|
}
|
|
127
120
|
|
|
@@ -129,24 +122,36 @@ export interface FileSource {
|
|
|
129
122
|
file: File;
|
|
130
123
|
}
|
|
131
124
|
|
|
132
|
-
export
|
|
133
|
-
|
|
125
|
+
export type ConvertBytes = Buffer | ArrayBuffer | string;
|
|
126
|
+
export type IdentifyBytes = ConvertBytes | Blob;
|
|
127
|
+
|
|
128
|
+
export interface BytesSource<T> {
|
|
129
|
+
bytes: T;
|
|
134
130
|
}
|
|
135
131
|
|
|
136
132
|
export interface SpeechToTextInput {
|
|
137
133
|
transcription: {
|
|
138
|
-
source: BytesSource
|
|
134
|
+
source: BytesSource<ConvertBytes>;
|
|
139
135
|
language?: string;
|
|
140
136
|
};
|
|
141
137
|
}
|
|
142
138
|
|
|
139
|
+
export type TranscribeData = {
|
|
140
|
+
connection: WebSocket;
|
|
141
|
+
raw: ConvertBytes;
|
|
142
|
+
languageCode: string;
|
|
143
|
+
};
|
|
144
|
+
|
|
143
145
|
export interface SpeechToTextOutput {
|
|
144
146
|
transcription: {
|
|
145
147
|
fullText: string;
|
|
146
148
|
};
|
|
147
149
|
}
|
|
148
150
|
|
|
149
|
-
export type IdentifySource =
|
|
151
|
+
export type IdentifySource =
|
|
152
|
+
| StorageSource
|
|
153
|
+
| FileSource
|
|
154
|
+
| BytesSource<IdentifyBytes>;
|
|
150
155
|
|
|
151
156
|
export interface IdentifyTextInput {
|
|
152
157
|
text: {
|
|
@@ -186,15 +191,15 @@ export interface Table {
|
|
|
186
191
|
columns: number;
|
|
187
192
|
};
|
|
188
193
|
table: TableCell[][];
|
|
189
|
-
polygon
|
|
190
|
-
boundingBox
|
|
194
|
+
polygon?: Polygon;
|
|
195
|
+
boundingBox?: BoundingBox;
|
|
191
196
|
}
|
|
192
197
|
|
|
193
198
|
export interface KeyValue {
|
|
194
199
|
key: string;
|
|
195
200
|
value: Content;
|
|
196
|
-
polygon
|
|
197
|
-
boundingBox
|
|
201
|
+
polygon?: Polygon;
|
|
202
|
+
boundingBox?: BoundingBox;
|
|
198
203
|
}
|
|
199
204
|
|
|
200
205
|
export interface IdentifyTextOutput {
|
|
@@ -207,8 +212,8 @@ export interface IdentifyTextOutput {
|
|
|
207
212
|
tables?: Table[];
|
|
208
213
|
selections?: {
|
|
209
214
|
selected: boolean;
|
|
210
|
-
polygon
|
|
211
|
-
boundingBox
|
|
215
|
+
polygon?: Polygon;
|
|
216
|
+
boundingBox?: BoundingBox;
|
|
212
217
|
}[];
|
|
213
218
|
};
|
|
214
219
|
}
|
|
@@ -236,8 +241,8 @@ export interface BoundingBox {
|
|
|
236
241
|
|
|
237
242
|
export interface IdentifyLabelsOutput {
|
|
238
243
|
labels?: {
|
|
239
|
-
name
|
|
240
|
-
boundingBoxes
|
|
244
|
+
name?: string;
|
|
245
|
+
boundingBoxes?: (BoundingBox | undefined)[];
|
|
241
246
|
metadata?: Object;
|
|
242
247
|
}[];
|
|
243
248
|
unsafe?: 'YES' | 'NO' | 'UNKNOWN';
|
|
@@ -272,24 +277,49 @@ export interface FaceAttributes {
|
|
|
272
277
|
mustache?: boolean;
|
|
273
278
|
eyesOpen?: boolean;
|
|
274
279
|
mouthOpen?: boolean;
|
|
275
|
-
emotions?: string[];
|
|
280
|
+
emotions?: (string | undefined)[];
|
|
276
281
|
}
|
|
277
282
|
|
|
283
|
+
export type EntityAgeRange = {
|
|
284
|
+
low?: Number;
|
|
285
|
+
high?: Number;
|
|
286
|
+
};
|
|
287
|
+
export type EntityLandmark = {
|
|
288
|
+
type?: string;
|
|
289
|
+
x?: number;
|
|
290
|
+
y?: number;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export type IdentifyEntity = {
|
|
294
|
+
boundingBox?: BoundingBox;
|
|
295
|
+
ageRange?: EntityAgeRange;
|
|
296
|
+
landmarks?: (EntityLandmark | undefined)[];
|
|
297
|
+
attributes?: FaceAttributes;
|
|
298
|
+
metadata?: object;
|
|
299
|
+
};
|
|
300
|
+
|
|
278
301
|
export interface IdentifyEntitiesOutput {
|
|
279
|
-
entities:
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
302
|
+
entities: IdentifyEntity[];
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export function isValidConvertInput(obj: any) {
|
|
306
|
+
return (
|
|
307
|
+
isTranslateTextInput(obj) ||
|
|
308
|
+
isTextToSpeechInput(obj) ||
|
|
309
|
+
isSpeechToTextInput(obj)
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
export function isValidIdentifyInput(obj: any) {
|
|
314
|
+
return (
|
|
315
|
+
isIdentifyTextInput(obj) ||
|
|
316
|
+
isIdentifyLabelsInput(obj) ||
|
|
317
|
+
isIdentifyEntitiesInput(obj)
|
|
318
|
+
);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export function isValidInterpretInput(obj: any) {
|
|
322
|
+
return isInterpretTextInput(obj);
|
|
293
323
|
}
|
|
294
324
|
|
|
295
325
|
export function isIdentifyFromCollection(
|
|
@@ -330,8 +360,17 @@ export function isFileSource(obj: any): obj is FileSource {
|
|
|
330
360
|
return obj && obj.hasOwnProperty(key);
|
|
331
361
|
}
|
|
332
362
|
|
|
333
|
-
export function
|
|
334
|
-
|
|
363
|
+
export function isConvertBytesSource(
|
|
364
|
+
obj: any
|
|
365
|
+
): obj is BytesSource<ConvertBytes> {
|
|
366
|
+
const key: keyof BytesSource<ConvertBytes> = 'bytes';
|
|
367
|
+
return obj && obj.hasOwnProperty(key);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export function isIdentifyBytesSource(
|
|
371
|
+
obj: any
|
|
372
|
+
): obj is BytesSource<IdentifyBytes> {
|
|
373
|
+
const key: keyof BytesSource<IdentifyBytes> = 'bytes';
|
|
335
374
|
return obj && obj.hasOwnProperty(key);
|
|
336
375
|
}
|
|
337
376
|
|
|
@@ -357,6 +396,12 @@ export function isInterpretTextInput(obj: any): obj is InterpretTextInput {
|
|
|
357
396
|
return obj && obj.hasOwnProperty(key);
|
|
358
397
|
}
|
|
359
398
|
|
|
399
|
+
export function isInterpretTextOthers(
|
|
400
|
+
text: InterpretTextInput['text']
|
|
401
|
+
): text is InterpretTextOthers {
|
|
402
|
+
return (text as InterpretTextOthers).source.language !== undefined;
|
|
403
|
+
}
|
|
404
|
+
|
|
360
405
|
export interface Geometry {
|
|
361
406
|
/**
|
|
362
407
|
* <p>An axis-aligned coarse representation of the detected text's location on the image.</p>
|
package/lib/.tsbuildinfo
DELETED
package/lib/Predictions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Predictions.js","sourceRoot":"","sources":["../src/Predictions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
var AbstractConvertPredictionsProvider_1 = require("../types/Providers/AbstractConvertPredictionsProvider");
|
|
7
|
-
var client_translate_1 = require("@aws-sdk/client-translate");
|
|
8
|
-
var client_polly_1 = require("@aws-sdk/client-polly");
|
|
9
|
-
var types_1 = require("../types");
|
|
10
|
-
var core_1 = require("@aws-amplify/core");
|
|
11
|
-
var eventstream_marshaller_1 = require("@aws-sdk/eventstream-marshaller");
|
|
12
|
-
var util_utf8_node_1 = require("@aws-sdk/util-utf8-node");
|
|
13
|
-
var buffer_1 = require("buffer");
|
|
14
|
-
var logger = new core_1.ConsoleLogger('AmazonAIConvertPredictionsProvider');
|
|
15
|
-
var eventBuilder = new eventstream_marshaller_1.EventStreamMarshaller(util_utf8_node_1.toUtf8, util_utf8_node_1.fromUtf8);
|
|
16
|
-
var LANGUAGES_CODE_IN_8KHZ = ['fr-FR', 'en-AU', 'en-GB', 'fr-CA'];
|
|
17
|
-
var AmazonAIConvertPredictionsProvider = /** @class */ (function (_super) {
|
|
18
|
-
tslib_1.__extends(AmazonAIConvertPredictionsProvider, _super);
|
|
19
|
-
function AmazonAIConvertPredictionsProvider() {
|
|
20
|
-
var _this = _super.call(this) || this;
|
|
21
|
-
_this.inputSampleRate = 44100;
|
|
22
|
-
return _this;
|
|
23
|
-
}
|
|
24
|
-
AmazonAIConvertPredictionsProvider.prototype.getProviderName = function () {
|
|
25
|
-
return 'AmazonAIConvertPredictionsProvider';
|
|
26
|
-
};
|
|
27
|
-
AmazonAIConvertPredictionsProvider.prototype.translateText = function (input) {
|
|
28
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
29
|
-
var _a, _b, _c, _d, _e, sourceLanguage, _f, targetLanguage, _g, region, credentials, sourceLanguageCode, targetLanguageCode, translateTextCommand, data, err_1;
|
|
30
|
-
return tslib_1.__generator(this, function (_h) {
|
|
31
|
-
switch (_h.label) {
|
|
32
|
-
case 0:
|
|
33
|
-
logger.debug('Starting translation');
|
|
34
|
-
_a = this._config.translateText, _b = _a === void 0 ? {} : _a, _c = _b.defaults, _d = _c === void 0 ? {} : _c, _e = _d.sourceLanguage, sourceLanguage = _e === void 0 ? '' : _e, _f = _d.targetLanguage, targetLanguage = _f === void 0 ? '' : _f, _g = _b.region, region = _g === void 0 ? '' : _g;
|
|
35
|
-
if (!region) {
|
|
36
|
-
return [2 /*return*/, Promise.reject('region not configured for transcription')];
|
|
37
|
-
}
|
|
38
|
-
return [4 /*yield*/, core_1.Credentials.get()];
|
|
39
|
-
case 1:
|
|
40
|
-
credentials = _h.sent();
|
|
41
|
-
if (!credentials) {
|
|
42
|
-
return [2 /*return*/, Promise.reject('No credentials')];
|
|
43
|
-
}
|
|
44
|
-
sourceLanguageCode = input.translateText.source.language || sourceLanguage;
|
|
45
|
-
targetLanguageCode = input.translateText.targetLanguage || targetLanguage;
|
|
46
|
-
if (!sourceLanguageCode || !targetLanguageCode) {
|
|
47
|
-
return [2 /*return*/, Promise.reject('Please provide both source and target language')];
|
|
48
|
-
}
|
|
49
|
-
this.translateClient = new client_translate_1.TranslateClient({
|
|
50
|
-
region: region,
|
|
51
|
-
credentials: credentials,
|
|
52
|
-
customUserAgent: core_1.getAmplifyUserAgentObject({
|
|
53
|
-
category: core_1.Category.Predictions,
|
|
54
|
-
action: core_1.PredictionsAction.Convert,
|
|
55
|
-
}),
|
|
56
|
-
});
|
|
57
|
-
translateTextCommand = new client_translate_1.TranslateTextCommand({
|
|
58
|
-
SourceLanguageCode: sourceLanguageCode,
|
|
59
|
-
TargetLanguageCode: targetLanguageCode,
|
|
60
|
-
Text: input.translateText.source.text,
|
|
61
|
-
});
|
|
62
|
-
_h.label = 2;
|
|
63
|
-
case 2:
|
|
64
|
-
_h.trys.push([2, 4, , 5]);
|
|
65
|
-
return [4 /*yield*/, this.translateClient.send(translateTextCommand)];
|
|
66
|
-
case 3:
|
|
67
|
-
data = _h.sent();
|
|
68
|
-
return [2 /*return*/, {
|
|
69
|
-
text: data.TranslatedText,
|
|
70
|
-
language: data.TargetLanguageCode,
|
|
71
|
-
}];
|
|
72
|
-
case 4:
|
|
73
|
-
err_1 = _h.sent();
|
|
74
|
-
return [2 /*return*/, Promise.reject(err_1)];
|
|
75
|
-
case 5: return [2 /*return*/];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
AmazonAIConvertPredictionsProvider.prototype.convertTextToSpeech = function (input) {
|
|
81
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
82
|
-
var credentials, _a, _b, _c, _d, VoiceId, _e, region, voiceId, synthesizeSpeechCommand, data, response, arrayBuffer, blob, url, err_2;
|
|
83
|
-
return tslib_1.__generator(this, function (_f) {
|
|
84
|
-
switch (_f.label) {
|
|
85
|
-
case 0: return [4 /*yield*/, core_1.Credentials.get()];
|
|
86
|
-
case 1:
|
|
87
|
-
credentials = _f.sent();
|
|
88
|
-
if (!credentials) {
|
|
89
|
-
return [2 /*return*/, Promise.reject('No credentials')];
|
|
90
|
-
}
|
|
91
|
-
_a = this._config.speechGenerator, _b = _a === void 0 ? {} : _a, _c = _b.defaults, _d = (_c === void 0 ? {} : _c).VoiceId, VoiceId = _d === void 0 ? '' : _d, _e = _b.region, region = _e === void 0 ? '' : _e;
|
|
92
|
-
if (!input.textToSpeech.source) {
|
|
93
|
-
return [2 /*return*/, Promise.reject('Source needs to be provided in the input')];
|
|
94
|
-
}
|
|
95
|
-
voiceId = input.textToSpeech.voiceId || VoiceId;
|
|
96
|
-
if (!region) {
|
|
97
|
-
return [2 /*return*/, Promise.reject('Region was undefined. Did you enable speech generator using amplify CLI?')];
|
|
98
|
-
}
|
|
99
|
-
if (!voiceId) {
|
|
100
|
-
return [2 /*return*/, Promise.reject('VoiceId was undefined.')];
|
|
101
|
-
}
|
|
102
|
-
this.pollyClient = new client_polly_1.PollyClient({
|
|
103
|
-
region: region,
|
|
104
|
-
credentials: credentials,
|
|
105
|
-
customUserAgent: core_1.getAmplifyUserAgentObject({
|
|
106
|
-
category: core_1.Category.Predictions,
|
|
107
|
-
action: core_1.PredictionsAction.Convert,
|
|
108
|
-
}),
|
|
109
|
-
});
|
|
110
|
-
synthesizeSpeechCommand = new client_polly_1.SynthesizeSpeechCommand({
|
|
111
|
-
OutputFormat: 'mp3',
|
|
112
|
-
Text: input.textToSpeech.source.text,
|
|
113
|
-
VoiceId: voiceId,
|
|
114
|
-
TextType: 'text',
|
|
115
|
-
SampleRate: '24000',
|
|
116
|
-
});
|
|
117
|
-
_f.label = 2;
|
|
118
|
-
case 2:
|
|
119
|
-
_f.trys.push([2, 5, , 6]);
|
|
120
|
-
return [4 /*yield*/, this.pollyClient.send(synthesizeSpeechCommand)];
|
|
121
|
-
case 3:
|
|
122
|
-
data = _f.sent();
|
|
123
|
-
response = new Response(data.AudioStream);
|
|
124
|
-
return [4 /*yield*/, response.arrayBuffer()];
|
|
125
|
-
case 4:
|
|
126
|
-
arrayBuffer = _f.sent();
|
|
127
|
-
blob = new Blob([arrayBuffer], {
|
|
128
|
-
type: data.ContentType,
|
|
129
|
-
});
|
|
130
|
-
url = URL.createObjectURL(blob);
|
|
131
|
-
return [2 /*return*/, {
|
|
132
|
-
speech: { url: url },
|
|
133
|
-
audioStream: arrayBuffer,
|
|
134
|
-
text: input.textToSpeech.source.text,
|
|
135
|
-
}];
|
|
136
|
-
case 5:
|
|
137
|
-
err_2 = _f.sent();
|
|
138
|
-
return [2 /*return*/, Promise.reject(err_2)];
|
|
139
|
-
case 6: return [2 /*return*/];
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
};
|
|
144
|
-
AmazonAIConvertPredictionsProvider.prototype.convertSpeechToText = function (input) {
|
|
145
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
146
|
-
var credentials, _a, _b, _c, _d, languageCode, _e, region, _f, source, _g, language, connection, fullText, err_3, err_4;
|
|
147
|
-
return tslib_1.__generator(this, function (_h) {
|
|
148
|
-
switch (_h.label) {
|
|
149
|
-
case 0:
|
|
150
|
-
_h.trys.push([0, 7, , 8]);
|
|
151
|
-
logger.debug('starting transcription..');
|
|
152
|
-
return [4 /*yield*/, core_1.Credentials.get()];
|
|
153
|
-
case 1:
|
|
154
|
-
credentials = _h.sent();
|
|
155
|
-
if (!credentials) {
|
|
156
|
-
return [2 /*return*/, Promise.reject('No credentials')];
|
|
157
|
-
}
|
|
158
|
-
_a = this._config.transcription, _b = _a === void 0 ? {} : _a, _c = _b.defaults, _d = (_c === void 0 ? {} : _c).language, languageCode = _d === void 0 ? '' : _d, _e = _b.region, region = _e === void 0 ? '' : _e;
|
|
159
|
-
if (!region) {
|
|
160
|
-
return [2 /*return*/, Promise.reject('region not configured for transcription')];
|
|
161
|
-
}
|
|
162
|
-
if (!languageCode) {
|
|
163
|
-
return [2 /*return*/, Promise.reject('languageCode not configured or provided for transcription')];
|
|
164
|
-
}
|
|
165
|
-
_f = input.transcription, source = _f.source, _g = _f.language, language = _g === void 0 ? languageCode : _g;
|
|
166
|
-
if (!types_1.isBytesSource(source)) return [3 /*break*/, 6];
|
|
167
|
-
return [4 /*yield*/, this.openConnectionWithTranscribe({
|
|
168
|
-
credentials: credentials,
|
|
169
|
-
region: region,
|
|
170
|
-
languageCode: language,
|
|
171
|
-
})];
|
|
172
|
-
case 2:
|
|
173
|
-
connection = _h.sent();
|
|
174
|
-
_h.label = 3;
|
|
175
|
-
case 3:
|
|
176
|
-
_h.trys.push([3, 5, , 6]);
|
|
177
|
-
return [4 /*yield*/, this.sendDataToTranscribe({
|
|
178
|
-
connection: connection,
|
|
179
|
-
raw: source.bytes,
|
|
180
|
-
languageCode: language,
|
|
181
|
-
})];
|
|
182
|
-
case 4:
|
|
183
|
-
fullText = _h.sent();
|
|
184
|
-
return [2 /*return*/, {
|
|
185
|
-
transcription: {
|
|
186
|
-
fullText: fullText,
|
|
187
|
-
},
|
|
188
|
-
}];
|
|
189
|
-
case 5:
|
|
190
|
-
err_3 = _h.sent();
|
|
191
|
-
return [2 /*return*/, Promise.reject(err_3)];
|
|
192
|
-
case 6: return [2 /*return*/, Promise.reject('Source types other than byte source are not supported.')];
|
|
193
|
-
case 7:
|
|
194
|
-
err_4 = _h.sent();
|
|
195
|
-
return [2 /*return*/, Promise.reject(err_4.name + ': ' + err_4.message)];
|
|
196
|
-
case 8: return [2 /*return*/];
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
};
|
|
201
|
-
AmazonAIConvertPredictionsProvider.serializeDataFromTranscribe = function (message) {
|
|
202
|
-
var decodedMessage = '';
|
|
203
|
-
var transcribeMessage = eventBuilder.unmarshall(buffer_1.Buffer.from(message.data));
|
|
204
|
-
var transcribeMessageJson = JSON.parse(util_utf8_node_1.toUtf8(transcribeMessage.body));
|
|
205
|
-
if (transcribeMessage.headers[':message-type'].value === 'exception') {
|
|
206
|
-
logger.debug('exception', JSON.stringify(transcribeMessageJson.Message, null, 2));
|
|
207
|
-
throw new Error(transcribeMessageJson.Message);
|
|
208
|
-
}
|
|
209
|
-
else if (transcribeMessage.headers[':message-type'].value === 'event') {
|
|
210
|
-
if (transcribeMessageJson.Transcript.Results.length > 0) {
|
|
211
|
-
if (transcribeMessageJson.Transcript.Results[0].Alternatives.length > 0) {
|
|
212
|
-
if (transcribeMessageJson.Transcript.Results[0].Alternatives[0]
|
|
213
|
-
.Transcript.length > 0) {
|
|
214
|
-
if (transcribeMessageJson.Transcript.Results[0].IsPartial === false) {
|
|
215
|
-
decodedMessage =
|
|
216
|
-
transcribeMessageJson.Transcript.Results[0].Alternatives[0]
|
|
217
|
-
.Transcript + '\n';
|
|
218
|
-
logger.debug({ decodedMessage: decodedMessage });
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
logger.debug({
|
|
222
|
-
transcript: transcribeMessageJson.Transcript.Results[0].Alternatives[0],
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return decodedMessage;
|
|
230
|
-
};
|
|
231
|
-
AmazonAIConvertPredictionsProvider.prototype.sendDataToTranscribe = function (_a) {
|
|
232
|
-
var _this = this;
|
|
233
|
-
var connection = _a.connection, raw = _a.raw, languageCode = _a.languageCode;
|
|
234
|
-
return new Promise(function (res, rej) {
|
|
235
|
-
var fullText = '';
|
|
236
|
-
connection.onmessage = function (message) {
|
|
237
|
-
try {
|
|
238
|
-
var decodedMessage = AmazonAIConvertPredictionsProvider.serializeDataFromTranscribe(message);
|
|
239
|
-
if (decodedMessage) {
|
|
240
|
-
fullText += decodedMessage + ' ';
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
catch (err) {
|
|
244
|
-
logger.debug(err);
|
|
245
|
-
rej(err.message);
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
connection.onerror = function (errorEvent) {
|
|
249
|
-
logger.debug({ errorEvent: errorEvent });
|
|
250
|
-
rej('failed to transcribe, network error');
|
|
251
|
-
};
|
|
252
|
-
connection.onclose = function (closeEvent) {
|
|
253
|
-
logger.debug({ closeEvent: closeEvent });
|
|
254
|
-
return res(fullText.trim());
|
|
255
|
-
};
|
|
256
|
-
logger.debug({ raw: raw });
|
|
257
|
-
if (Array.isArray(raw)) {
|
|
258
|
-
for (var i = 0; i < raw.length - 1023; i += 1024) {
|
|
259
|
-
var data = raw.slice(i, i + 1024);
|
|
260
|
-
_this.sendEncodedDataToTranscribe(connection, data, languageCode);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
// If Buffer
|
|
265
|
-
_this.sendEncodedDataToTranscribe(connection, raw, languageCode);
|
|
266
|
-
}
|
|
267
|
-
// sending end frame
|
|
268
|
-
var endFrameEventMessage = _this.getAudioEventMessage(buffer_1.Buffer.from([]));
|
|
269
|
-
var endFrameBinary = eventBuilder.marshall(endFrameEventMessage);
|
|
270
|
-
connection.send(endFrameBinary);
|
|
271
|
-
});
|
|
272
|
-
};
|
|
273
|
-
AmazonAIConvertPredictionsProvider.prototype.sendEncodedDataToTranscribe = function (connection, data, languageCode) {
|
|
274
|
-
var downsampledBuffer = this.downsampleBuffer({
|
|
275
|
-
buffer: data,
|
|
276
|
-
outputSampleRate: LANGUAGES_CODE_IN_8KHZ.includes(languageCode)
|
|
277
|
-
? 8000
|
|
278
|
-
: 16000,
|
|
279
|
-
});
|
|
280
|
-
var pcmEncodedBuffer = this.pcmEncode(downsampledBuffer);
|
|
281
|
-
var audioEventMessage = this.getAudioEventMessage(buffer_1.Buffer.from(pcmEncodedBuffer));
|
|
282
|
-
var binary = eventBuilder.marshall(audioEventMessage);
|
|
283
|
-
connection.send(binary);
|
|
284
|
-
};
|
|
285
|
-
AmazonAIConvertPredictionsProvider.prototype.getAudioEventMessage = function (buffer) {
|
|
286
|
-
var audioEventMessage = {
|
|
287
|
-
body: buffer,
|
|
288
|
-
headers: {
|
|
289
|
-
':message-type': {
|
|
290
|
-
type: 'string',
|
|
291
|
-
value: 'event',
|
|
292
|
-
},
|
|
293
|
-
':event-type': {
|
|
294
|
-
type: 'string',
|
|
295
|
-
value: 'AudioEvent',
|
|
296
|
-
},
|
|
297
|
-
},
|
|
298
|
-
};
|
|
299
|
-
return audioEventMessage;
|
|
300
|
-
};
|
|
301
|
-
AmazonAIConvertPredictionsProvider.prototype.pcmEncode = function (input) {
|
|
302
|
-
var offset = 0;
|
|
303
|
-
var buffer = new ArrayBuffer(input.length * 2);
|
|
304
|
-
var view = new DataView(buffer);
|
|
305
|
-
for (var i = 0; i < input.length; i++, offset += 2) {
|
|
306
|
-
var s = Math.max(-1, Math.min(1, input[i]));
|
|
307
|
-
view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);
|
|
308
|
-
}
|
|
309
|
-
return buffer;
|
|
310
|
-
};
|
|
311
|
-
AmazonAIConvertPredictionsProvider.prototype.downsampleBuffer = function (_a) {
|
|
312
|
-
var buffer = _a.buffer, _b = _a.outputSampleRate, outputSampleRate = _b === void 0 ? 16000 : _b;
|
|
313
|
-
if (outputSampleRate === this.inputSampleRate) {
|
|
314
|
-
return buffer;
|
|
315
|
-
}
|
|
316
|
-
var sampleRateRatio = this.inputSampleRate / outputSampleRate;
|
|
317
|
-
var newLength = Math.round(buffer.length / sampleRateRatio);
|
|
318
|
-
var result = new Float32Array(newLength);
|
|
319
|
-
var offsetResult = 0;
|
|
320
|
-
var offsetBuffer = 0;
|
|
321
|
-
while (offsetResult < result.length) {
|
|
322
|
-
var nextOffsetBuffer = Math.round((offsetResult + 1) * sampleRateRatio);
|
|
323
|
-
var accum = 0, count = 0;
|
|
324
|
-
for (var i = offsetBuffer; i < nextOffsetBuffer && i < buffer.length; i++) {
|
|
325
|
-
accum += buffer[i];
|
|
326
|
-
count++;
|
|
327
|
-
}
|
|
328
|
-
result[offsetResult] = accum / count;
|
|
329
|
-
offsetResult++;
|
|
330
|
-
offsetBuffer = nextOffsetBuffer;
|
|
331
|
-
}
|
|
332
|
-
return result;
|
|
333
|
-
};
|
|
334
|
-
AmazonAIConvertPredictionsProvider.prototype.openConnectionWithTranscribe = function (_a) {
|
|
335
|
-
var _this = this;
|
|
336
|
-
var userCredentials = _a.credentials, region = _a.region, languageCode = _a.languageCode;
|
|
337
|
-
return new Promise(function (res, rej) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
338
|
-
var access_key, secret_key, session_token, credentials, signedUrl, connection;
|
|
339
|
-
return tslib_1.__generator(this, function (_a) {
|
|
340
|
-
access_key = userCredentials.accessKeyId, secret_key = userCredentials.secretAccessKey, session_token = userCredentials.sessionToken;
|
|
341
|
-
credentials = {
|
|
342
|
-
access_key: access_key,
|
|
343
|
-
secret_key: secret_key,
|
|
344
|
-
session_token: session_token,
|
|
345
|
-
};
|
|
346
|
-
signedUrl = this.generateTranscribeUrl({
|
|
347
|
-
credentials: credentials,
|
|
348
|
-
region: region,
|
|
349
|
-
languageCode: languageCode,
|
|
350
|
-
});
|
|
351
|
-
logger.debug('connecting...');
|
|
352
|
-
connection = new WebSocket(signedUrl);
|
|
353
|
-
connection.binaryType = 'arraybuffer';
|
|
354
|
-
connection.onopen = function () {
|
|
355
|
-
logger.debug('connected');
|
|
356
|
-
res(connection);
|
|
357
|
-
};
|
|
358
|
-
return [2 /*return*/];
|
|
359
|
-
});
|
|
360
|
-
}); });
|
|
361
|
-
};
|
|
362
|
-
AmazonAIConvertPredictionsProvider.prototype.generateTranscribeUrl = function (_a) {
|
|
363
|
-
var credentials = _a.credentials, region = _a.region, languageCode = _a.languageCode;
|
|
364
|
-
var url = [
|
|
365
|
-
"wss://transcribestreaming." + region + ".amazonaws.com:8443",
|
|
366
|
-
'/stream-transcription-websocket?',
|
|
367
|
-
"media-encoding=pcm&",
|
|
368
|
-
"sample-rate=" + (LANGUAGES_CODE_IN_8KHZ.includes(languageCode) ? '8000' : '16000') + "&",
|
|
369
|
-
"language-code=" + languageCode,
|
|
370
|
-
].join('');
|
|
371
|
-
var signedUrl = core_1.Signer.signUrl(url, credentials, { region: region, service: 'transcribe' }, 300);
|
|
372
|
-
return signedUrl;
|
|
373
|
-
};
|
|
374
|
-
return AmazonAIConvertPredictionsProvider;
|
|
375
|
-
}(AbstractConvertPredictionsProvider_1.AbstractConvertPredictionsProvider));
|
|
376
|
-
exports.AmazonAIConvertPredictionsProvider = AmazonAIConvertPredictionsProvider;
|
|
377
|
-
//# sourceMappingURL=AmazonAIConvertPredictionsProvider.js.map
|