@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.
Files changed (148) hide show
  1. package/README.md +3 -0
  2. package/lib/Predictions.d.ts +11 -45
  3. package/lib/Predictions.js +24 -132
  4. package/lib/errors/PredictionsError.d.ts +4 -0
  5. package/lib/errors/PredictionsError.js +15 -0
  6. package/lib/errors/types/validation.d.ts +14 -0
  7. package/lib/errors/types/validation.js +50 -0
  8. package/lib/errors/utils/assertValidationError.d.ts +2 -0
  9. package/lib/errors/utils/assertValidationError.js +14 -0
  10. package/lib/index.d.ts +2 -4
  11. package/lib/index.js +2 -9
  12. package/{lib-esm/Providers → lib/providers}/AmazonAIConvertPredictionsProvider.d.ts +6 -7
  13. package/lib/providers/AmazonAIConvertPredictionsProvider.js +307 -0
  14. package/lib/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.d.ts +5 -6
  15. package/lib/providers/AmazonAIIdentifyPredictionsProvider.js +334 -0
  16. package/lib/{Providers → providers}/AmazonAIInterpretPredictionsProvider.d.ts +3 -4
  17. package/lib/providers/AmazonAIInterpretPredictionsProvider.js +208 -0
  18. package/lib/providers/IdentifyTextUtils.d.ts +16 -0
  19. package/lib/{Providers → providers}/IdentifyTextUtils.js +97 -148
  20. package/lib/{Providers → providers}/Utils.d.ts +2 -2
  21. package/lib/{Providers → providers}/Utils.js +11 -12
  22. package/lib/{Providers → providers}/index.d.ts +1 -2
  23. package/lib/providers/index.js +11 -0
  24. package/lib/tsconfig.tsbuildinfo +1 -0
  25. package/lib/types/AWSTypes.d.ts +8 -9
  26. package/lib/types/AWSTypes.js +0 -1
  27. package/lib/types/Predictions.d.ts +63 -59
  28. package/lib/types/Predictions.js +41 -28
  29. package/lib/types/index.js +1 -2
  30. package/lib-esm/Predictions.d.ts +11 -45
  31. package/lib-esm/Predictions.js +23 -133
  32. package/lib-esm/errors/PredictionsError.d.ts +4 -0
  33. package/lib-esm/errors/PredictionsError.js +11 -0
  34. package/lib-esm/errors/types/validation.d.ts +14 -0
  35. package/lib-esm/errors/types/validation.js +47 -0
  36. package/lib-esm/errors/utils/assertValidationError.d.ts +2 -0
  37. package/lib-esm/errors/utils/assertValidationError.js +10 -0
  38. package/lib-esm/index.d.ts +2 -4
  39. package/lib-esm/index.js +1 -5
  40. package/{lib/Providers → lib-esm/providers}/AmazonAIConvertPredictionsProvider.d.ts +6 -7
  41. package/lib-esm/providers/AmazonAIConvertPredictionsProvider.js +303 -0
  42. package/lib-esm/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.d.ts +5 -6
  43. package/lib-esm/providers/AmazonAIIdentifyPredictionsProvider.js +330 -0
  44. package/lib-esm/{Providers → providers}/AmazonAIInterpretPredictionsProvider.d.ts +3 -4
  45. package/lib-esm/providers/AmazonAIInterpretPredictionsProvider.js +204 -0
  46. package/lib-esm/providers/IdentifyTextUtils.d.ts +16 -0
  47. package/lib-esm/providers/IdentifyTextUtils.js +264 -0
  48. package/lib-esm/{Providers → providers}/Utils.d.ts +2 -2
  49. package/lib-esm/{Providers → providers}/Utils.js +10 -12
  50. package/lib-esm/{Providers → providers}/index.d.ts +1 -2
  51. package/lib-esm/{Providers → providers}/index.js +1 -3
  52. package/lib-esm/tsconfig.tsbuildinfo +1 -0
  53. package/lib-esm/types/AWSTypes.d.ts +8 -9
  54. package/lib-esm/types/AWSTypes.js +1 -1
  55. package/lib-esm/types/Predictions.d.ts +63 -59
  56. package/lib-esm/types/Predictions.js +34 -27
  57. package/lib-esm/types/index.js +0 -1
  58. package/package.json +39 -48
  59. package/src/Predictions.ts +33 -220
  60. package/src/errors/PredictionsError.ts +16 -0
  61. package/src/errors/types/validation.ts +51 -0
  62. package/src/errors/utils/assertValidationError.ts +18 -0
  63. package/src/index.ts +16 -16
  64. package/src/{Providers → providers}/AmazonAIConvertPredictionsProvider.ts +210 -171
  65. package/src/{Providers → providers}/AmazonAIIdentifyPredictionsProvider.ts +244 -246
  66. package/src/providers/AmazonAIInterpretPredictionsProvider.ts +293 -0
  67. package/src/{Providers → providers}/IdentifyTextUtils.ts +69 -52
  68. package/src/{Providers → providers}/Utils.ts +2 -2
  69. package/src/{Providers → providers}/index.ts +0 -2
  70. package/src/types/AWSTypes.ts +5 -6
  71. package/src/types/Predictions.ts +107 -62
  72. package/lib/.tsbuildinfo +0 -3
  73. package/lib/Predictions.js.map +0 -1
  74. package/lib/Providers/AmazonAIConvertPredictionsProvider.js +0 -377
  75. package/lib/Providers/AmazonAIConvertPredictionsProvider.js.map +0 -1
  76. package/lib/Providers/AmazonAIIdentifyPredictionsProvider.js +0 -441
  77. package/lib/Providers/AmazonAIIdentifyPredictionsProvider.js.map +0 -1
  78. package/lib/Providers/AmazonAIInterpretPredictionsProvider.js +0 -321
  79. package/lib/Providers/AmazonAIInterpretPredictionsProvider.js.map +0 -1
  80. package/lib/Providers/AmazonAIPredictionsProvider.d.ts +0 -14
  81. package/lib/Providers/AmazonAIPredictionsProvider.js +0 -43
  82. package/lib/Providers/AmazonAIPredictionsProvider.js.map +0 -1
  83. package/lib/Providers/IdentifyTextUtils.d.ts +0 -40
  84. package/lib/Providers/IdentifyTextUtils.js.map +0 -1
  85. package/lib/Providers/Utils.js.map +0 -1
  86. package/lib/Providers/index.js +0 -13
  87. package/lib/Providers/index.js.map +0 -1
  88. package/lib/index.js.map +0 -1
  89. package/lib/types/AWSTypes.js.map +0 -1
  90. package/lib/types/Predictions.js.map +0 -1
  91. package/lib/types/Providers/AbstractConvertPredictionsProvider.d.ts +0 -9
  92. package/lib/types/Providers/AbstractConvertPredictionsProvider.js +0 -44
  93. package/lib/types/Providers/AbstractConvertPredictionsProvider.js.map +0 -1
  94. package/lib/types/Providers/AbstractIdentifyPredictionsProvider.d.ts +0 -9
  95. package/lib/types/Providers/AbstractIdentifyPredictionsProvider.js +0 -44
  96. package/lib/types/Providers/AbstractIdentifyPredictionsProvider.js.map +0 -1
  97. package/lib/types/Providers/AbstractInterpretPredictionsProvider.d.ts +0 -7
  98. package/lib/types/Providers/AbstractInterpretPredictionsProvider.js +0 -27
  99. package/lib/types/Providers/AbstractInterpretPredictionsProvider.js.map +0 -1
  100. package/lib/types/Providers/AbstractPredictionsProvider.d.ts +0 -7
  101. package/lib/types/Providers/AbstractPredictionsProvider.js +0 -16
  102. package/lib/types/Providers/AbstractPredictionsProvider.js.map +0 -1
  103. package/lib/types/Providers/index.d.ts +0 -4
  104. package/lib/types/Providers/index.js +0 -10
  105. package/lib/types/Providers/index.js.map +0 -1
  106. package/lib/types/index.js.map +0 -1
  107. package/lib-esm/.tsbuildinfo +0 -3
  108. package/lib-esm/Predictions.js.map +0 -1
  109. package/lib-esm/Providers/AmazonAIConvertPredictionsProvider.js +0 -375
  110. package/lib-esm/Providers/AmazonAIConvertPredictionsProvider.js.map +0 -1
  111. package/lib-esm/Providers/AmazonAIIdentifyPredictionsProvider.js +0 -439
  112. package/lib-esm/Providers/AmazonAIIdentifyPredictionsProvider.js.map +0 -1
  113. package/lib-esm/Providers/AmazonAIInterpretPredictionsProvider.js +0 -319
  114. package/lib-esm/Providers/AmazonAIInterpretPredictionsProvider.js.map +0 -1
  115. package/lib-esm/Providers/AmazonAIPredictionsProvider.d.ts +0 -14
  116. package/lib-esm/Providers/AmazonAIPredictionsProvider.js +0 -41
  117. package/lib-esm/Providers/AmazonAIPredictionsProvider.js.map +0 -1
  118. package/lib-esm/Providers/IdentifyTextUtils.d.ts +0 -40
  119. package/lib-esm/Providers/IdentifyTextUtils.js +0 -313
  120. package/lib-esm/Providers/IdentifyTextUtils.js.map +0 -1
  121. package/lib-esm/Providers/Utils.js.map +0 -1
  122. package/lib-esm/Providers/index.js.map +0 -1
  123. package/lib-esm/index.js.map +0 -1
  124. package/lib-esm/types/AWSTypes.js.map +0 -1
  125. package/lib-esm/types/Predictions.js.map +0 -1
  126. package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.d.ts +0 -9
  127. package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.js +0 -42
  128. package/lib-esm/types/Providers/AbstractConvertPredictionsProvider.js.map +0 -1
  129. package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.d.ts +0 -9
  130. package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.js +0 -42
  131. package/lib-esm/types/Providers/AbstractIdentifyPredictionsProvider.js.map +0 -1
  132. package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.d.ts +0 -7
  133. package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.js +0 -25
  134. package/lib-esm/types/Providers/AbstractInterpretPredictionsProvider.js.map +0 -1
  135. package/lib-esm/types/Providers/AbstractPredictionsProvider.d.ts +0 -7
  136. package/lib-esm/types/Providers/AbstractPredictionsProvider.js +0 -14
  137. package/lib-esm/types/Providers/AbstractPredictionsProvider.js.map +0 -1
  138. package/lib-esm/types/Providers/index.d.ts +0 -4
  139. package/lib-esm/types/Providers/index.js +0 -7
  140. package/lib-esm/types/Providers/index.js.map +0 -1
  141. package/lib-esm/types/index.js.map +0 -1
  142. package/src/Providers/AmazonAIInterpretPredictionsProvider.ts +0 -281
  143. package/src/Providers/AmazonAIPredictionsProvider.ts +0 -69
  144. package/src/types/Providers/AbstractConvertPredictionsProvider.ts +0 -55
  145. package/src/types/Providers/AbstractIdentifyPredictionsProvider.ts +0 -57
  146. package/src/types/Providers/AbstractInterpretPredictionsProvider.ts +0 -26
  147. package/src/types/Providers/AbstractPredictionsProvider.ts +0 -20
  148. package/src/types/Providers/index.ts +0 -6
@@ -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 enum InterpretTextCategories {
21
- ALL = 'ALL',
22
- LANGUAGE = 'LANGUAGE',
23
- ENTITIES = 'ENTITIES',
24
- SENTIMENT = 'SENTIMENT',
25
- SYNTAX = 'SYNTAX',
26
- KEY_PHRASES = 'KEY_PHRASES',
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.LANGUAGE;
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
- | InterpretTextCategories.ENTITIES
47
- | InterpretTextCategories.SENTIMENT
48
- | InterpretTextCategories.SYNTAX
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.ALL;
43
+ type: Extract<InterpretTextCategories, 'all'>;
57
44
  }
58
45
 
59
46
  export interface TextEntities {
60
- type: string;
61
- text: string;
47
+ type?: string;
48
+ text?: string;
62
49
  }
63
50
 
64
- export interface KeyPhrases {
65
- text: string;
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?: Array<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?: 'public' | 'private' | 'protected';
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 interface BytesSource {
133
- bytes: Buffer | ArrayBuffer | Blob | string;
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 = StorageSource | FileSource | BytesSource;
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: Polygon;
190
- boundingBox: 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: Polygon;
197
- boundingBox: 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: Polygon;
211
- boundingBox: 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: string;
240
- boundingBoxes: BoundingBox[];
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
- boundingBox?: BoundingBox;
281
- ageRange?: {
282
- low?: Number;
283
- high?: Number;
284
- };
285
- landmarks?: {
286
- type?: string;
287
- x?: number;
288
- y?: number;
289
- }[];
290
- attributes?: FaceAttributes;
291
- metadata?: object;
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 isBytesSource(obj: any): obj is BytesSource {
334
- const key: keyof BytesSource = 'bytes';
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
@@ -1,3 +0,0 @@
1
- {
2
- "version": "3.8.3"
3
- }
@@ -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