@uptime.app/contracts 2.0.43-rc.0 → 2.0.43

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 (172) hide show
  1. package/dist/cjs/collection/enriched-collection.d.ts +0 -1
  2. package/dist/cjs/collection/enriched-collection.d.ts.map +1 -1
  3. package/dist/cjs/enriched-hack/enriched-hack.d.ts +0 -1
  4. package/dist/cjs/enriched-hack/enriched-hack.d.ts.map +1 -1
  5. package/dist/cjs/index.d.ts +1 -0
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +1 -0
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/spark/spark.d.ts +0 -1
  10. package/dist/cjs/spark/spark.d.ts.map +1 -1
  11. package/dist/cjs/user/cognito-user-authentication-log.d.ts +9 -0
  12. package/dist/cjs/user/cognito-user-authentication-log.d.ts.map +1 -0
  13. package/dist/cjs/user/cognito-user-authentication-log.js +3 -0
  14. package/dist/cjs/user/cognito-user-authentication-log.js.map +1 -0
  15. package/dist/esm/collection/enriched-collection.d.ts +0 -1
  16. package/dist/esm/collection/enriched-collection.d.ts.map +1 -1
  17. package/dist/esm/enriched-hack/enriched-hack.d.ts +0 -1
  18. package/dist/esm/enriched-hack/enriched-hack.d.ts.map +1 -1
  19. package/dist/esm/index.d.ts +1 -0
  20. package/dist/esm/index.d.ts.map +1 -1
  21. package/dist/esm/index.js +1 -0
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/spark/spark.d.ts +0 -1
  24. package/dist/esm/spark/spark.d.ts.map +1 -1
  25. package/dist/esm/user/cognito-user-authentication-log.d.ts +9 -0
  26. package/dist/esm/user/cognito-user-authentication-log.d.ts.map +1 -0
  27. package/dist/esm/user/cognito-user-authentication-log.js +2 -0
  28. package/dist/esm/user/cognito-user-authentication-log.js.map +1 -0
  29. package/package.json +2 -2
  30. package/src/access-control/collection-access-control.ts +28 -28
  31. package/src/access-control/hack-access-control.ts +32 -32
  32. package/src/access-control/profile-access-control.ts +27 -27
  33. package/src/app-hack/app-full-hack.ts +9 -9
  34. package/src/app-hack/app-hack-metadata.ts +61 -61
  35. package/src/app-hack/app-restricted-hack.ts +22 -22
  36. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  37. package/src/b2b-organisation/b2b-carousel.ts +33 -33
  38. package/src/b2b-organisation/b2b-org-idp-mapping.ts +27 -27
  39. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  40. package/src/b2b-organisation/b2b-organisation-invitation.ts +45 -45
  41. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  42. package/src/b2b-organisation/b2b-organisation-member.ts +11 -11
  43. package/src/b2b-organisation/b2b-organisation.ts +33 -33
  44. package/src/brand/brand-events.ts +21 -21
  45. package/src/brand/brand.ts +27 -27
  46. package/src/catalogue/catalogue.ts +147 -147
  47. package/src/cms-hack/cms-searchable-hack.ts +44 -44
  48. package/src/collection/collection-events.ts +21 -21
  49. package/src/collection/collection.ts +57 -57
  50. package/src/collection/enriched-collection-events.ts +18 -18
  51. package/src/collection/enriched-collection.ts +64 -65
  52. package/src/creator/creator-events.ts +32 -32
  53. package/src/creator/creator.ts +7 -7
  54. package/src/distribution/collection-distribution.ts +17 -17
  55. package/src/distribution/distribution-events.ts +61 -61
  56. package/src/distribution/hack-distribution.ts +18 -18
  57. package/src/draft-hack/draft-hack-events.ts +21 -21
  58. package/src/draft-hack/draft-hack.ts +190 -190
  59. package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
  60. package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
  61. package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
  62. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +21 -21
  63. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +17 -17
  64. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  65. package/src/enriched-hack/enriched-hack.ts +109 -109
  66. package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
  67. package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
  68. package/src/entitlement/user-entitlements-commands.ts +54 -54
  69. package/src/entitlement/user-entitlements-events.ts +29 -29
  70. package/src/entitlement/user-entitlements.ts +18 -18
  71. package/src/flashcard/flashcard-events.ts +85 -85
  72. package/src/flashcard/flashcard.ts +138 -138
  73. package/src/hack/extracted-subject.ts +31 -31
  74. package/src/hack/hack-events.ts +21 -21
  75. package/src/hack/hack-published.ts +21 -21
  76. package/src/hack/hack-with-voice-events.ts +20 -20
  77. package/src/hack/hack-with-voice.ts +33 -33
  78. package/src/hack/hack.ts +117 -117
  79. package/src/hack/publish-hack-command.ts +20 -20
  80. package/src/hack-mapping/access-helper.ts +6 -6
  81. package/src/hack-mapping/app-full-hack.test.ts +12 -12
  82. package/src/hack-mapping/app-full-hack.ts +14 -14
  83. package/src/hack-mapping/app-hack-metadata.test.ts +22 -22
  84. package/src/hack-mapping/app-hack-metadata.ts +82 -82
  85. package/src/hack-mapping/app-restricted-hack.test.ts +11 -11
  86. package/src/hack-mapping/app-restricted-hack.ts +21 -21
  87. package/src/hack-mapping/remove-undefined-fields.ts +9 -9
  88. package/src/hack-mapping/test-data/enriched-hack.json +2575 -2576
  89. package/src/hack-mapping/test-data/expected-app-full-hack.json +2508 -2508
  90. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +92 -93
  91. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +798 -799
  92. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  93. package/src/hack-metadata/hack-metadata.ts +17 -17
  94. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  95. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  96. package/src/hack-statistics/hack-statistics-events.ts +21 -21
  97. package/src/hack-statistics/hack-statistics.ts +9 -9
  98. package/src/hackbot/hack-generation-commands.ts +44 -44
  99. package/src/hackbot/hack-generation-trigger-events.ts +21 -21
  100. package/src/hackbot/hack-generation-trigger.ts +56 -56
  101. package/src/history/history-events.ts +21 -21
  102. package/src/history/history.ts +46 -46
  103. package/src/identity-provider/domain-identity-provider-events.ts +20 -20
  104. package/src/identity-provider/domain-identity-provider.ts +10 -10
  105. package/src/identity-provider/identity-provider-events.ts +20 -20
  106. package/src/identity-provider/identity-provider.ts +27 -27
  107. package/src/index.ts +181 -180
  108. package/src/interest/interest-events.ts +21 -21
  109. package/src/interest/interest.ts +15 -15
  110. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  111. package/src/knowledge-source/knowledge-source.ts +43 -43
  112. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +52 -52
  113. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
  114. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
  115. package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
  116. package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
  117. package/src/knowledge-source-parsing/user-hack-generation-options.ts +7 -7
  118. package/src/localisation/live-locales.ts +45 -45
  119. package/src/localisation/locale-language.ts +4 -4
  120. package/src/localisation/supported-languages.ts +11 -11
  121. package/src/localisation/supported-locales.ts +67 -67
  122. package/src/message-bus/Context.ts +7 -7
  123. package/src/moderation/hack-moderation-result-events.ts +18 -18
  124. package/src/moderation/hack-moderation-result.ts +27 -27
  125. package/src/partner/partner-events.ts +21 -21
  126. package/src/partner/partner.ts +7 -7
  127. package/src/pending-hack/pending-hack-events.ts +20 -20
  128. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  129. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  130. package/src/pending-hack/pending-hack.ts +78 -78
  131. package/src/preferences/preferences-events.ts +15 -15
  132. package/src/preferences/preferences.ts +35 -35
  133. package/src/profile/profile-events.ts +41 -41
  134. package/src/profile/profile.ts +29 -29
  135. package/src/profile/translated-profile.ts +13 -13
  136. package/src/referral/referral-events.ts +41 -41
  137. package/src/referral/referral.ts +76 -76
  138. package/src/saved/saved-collection-events.ts +19 -19
  139. package/src/saved/saved-collection.ts +8 -8
  140. package/src/segment/segment-commands.ts +75 -75
  141. package/src/segment/segment-events.ts +42 -42
  142. package/src/segment/segment-with-voice.ts +8 -8
  143. package/src/segment/segment.ts +82 -82
  144. package/src/skin/skin-events.ts +21 -21
  145. package/src/skin/skin.ts +6 -6
  146. package/src/spark/spark-board-read-model.ts +17 -17
  147. package/src/spark/spark-board.ts +12 -12
  148. package/src/spark/spark-events.ts +42 -42
  149. package/src/spark/spark.ts +80 -81
  150. package/src/text-to-speech/create-speech-commands.ts +22 -22
  151. package/src/text-to-speech/speech-created-events.ts +10 -10
  152. package/src/text-to-speech/supported-voices.ts +183 -183
  153. package/src/text-to-speech/text-segment.ts +29 -29
  154. package/src/theme/theme-events.ts +21 -21
  155. package/src/theme/theme.ts +68 -68
  156. package/src/translation/translation-events.ts +73 -73
  157. package/src/translation/translation.ts +25 -25
  158. package/src/trending/trending-events.ts +21 -21
  159. package/src/trending/trending-hacks.ts +8 -8
  160. package/src/user/cognito-user-authentication-log.ts +8 -0
  161. package/src/user/get-user.ts +60 -60
  162. package/src/user/user-events.ts +30 -30
  163. package/src/user-context/user-context-events.ts +21 -21
  164. package/src/user-context/user-context.ts +15 -15
  165. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  166. package/src/user-notification-context/user-notification-context.ts +9 -9
  167. package/src/user-statistics/user-statistics-events.ts +97 -97
  168. package/src/user-statistics/user-statistics.ts +82 -82
  169. package/src/video-cropping/video-cropping-events.ts +43 -43
  170. package/src/video-cropping/video-metadata.ts +12 -12
  171. package/tsconfig.cjs.json +7 -7
  172. package/tsconfig.npm.json +22 -22
@@ -1,81 +1,80 @@
1
- import { CardType, SegmentType } from '../segment/segment';
2
- import { Profile } from '../profile/profile';
3
- import { SupportedLocale } from '../localisation/supported-locales';
4
- import { ThemeTemplate } from '../theme/theme';
5
- import { Hack } from '../hack/hack';
6
-
7
- export interface Spark {
8
- id: string;
9
- v: number;
10
- createdAt: string;
11
- updatedAt: string;
12
- userId: string;
13
- hackId: string;
14
- segmentId: string;
15
- card: SparkedCard;
16
- boardId: string;
17
- theme: {
18
- fontFamily: string;
19
- light: ThemeTemplate;
20
- dark: ThemeTemplate;
21
- player?: {
22
- light: {
23
- backgroundColor: string;
24
- },
25
- dark: {
26
- backgroundColor: string;
27
- }
28
- }
29
- };
30
- note?: string;
31
- hack: SparkHack;
32
- baseLocaleHackId: string;
33
- locale: SupportedLocale;
34
- language: string;
35
- }
36
-
37
- export interface SparkedCard {
38
- id: string;
39
- markdown: string;
40
- segmentType: SegmentType;
41
- isTitle?: boolean;
42
- cardType?: CardType;
43
- }
44
-
45
- // matches Profile of EnrichedHack interface
46
- export type SparkHack = Pick<Hack,
47
- 'id'
48
- | 'title'
49
- | 'owner'
50
- | 'themeId'
51
- | 'isHidden'
52
- | 'editorialTags'
53
- | 'coverUrl'
54
- | 'topics'
55
- | 'type'
56
- | 'affiliate'
57
- | 'contributors'
58
- | 'createdAt'
59
- | 'updatedAt'
60
- | 'v'
61
- | 'sourceData'
62
- | 'subjects' >
63
- & {
64
- profile: Profile
65
- | {
66
- deleted: boolean;
67
- uptimeOwned: boolean;
68
- avatarUrl: string;
69
- createdByFormerOrgMember: boolean;
70
- };
71
- segments: Pick<Hack['segments'],
72
- 'inANutshell'
73
- | 'favouriteQuote'
74
- | 'introduction'
75
- | 'insights'
76
- | 'conclusion'
77
- | 'overview'
78
- | 'hereAreTheInsights'
79
- | 'putInAction'>;
80
- acl: string[]
81
- };
1
+ import { CardType, SegmentType } from '../segment/segment';
2
+ import { Profile } from '../profile/profile';
3
+ import { SupportedLocale } from '../localisation/supported-locales';
4
+ import { ThemeTemplate } from '../theme/theme';
5
+ import { Hack } from '../hack/hack';
6
+
7
+ export interface Spark {
8
+ id: string;
9
+ v: number;
10
+ createdAt: string;
11
+ updatedAt: string;
12
+ userId: string;
13
+ hackId: string;
14
+ segmentId: string;
15
+ card: SparkedCard;
16
+ boardId: string;
17
+ theme: {
18
+ fontFamily: string;
19
+ light: ThemeTemplate;
20
+ dark: ThemeTemplate;
21
+ player?: {
22
+ light: {
23
+ backgroundColor: string;
24
+ },
25
+ dark: {
26
+ backgroundColor: string;
27
+ }
28
+ }
29
+ };
30
+ note?: string;
31
+ hack: SparkHack;
32
+ baseLocaleHackId: string;
33
+ locale: SupportedLocale;
34
+ language: string;
35
+ }
36
+
37
+ export interface SparkedCard {
38
+ id: string;
39
+ markdown: string;
40
+ segmentType: SegmentType;
41
+ isTitle?: boolean;
42
+ cardType?: CardType;
43
+ }
44
+
45
+ // matches Profile of EnrichedHack interface
46
+ export type SparkHack = Pick<Hack,
47
+ 'id'
48
+ | 'title'
49
+ | 'owner'
50
+ | 'themeId'
51
+ | 'isHidden'
52
+ | 'editorialTags'
53
+ | 'coverUrl'
54
+ | 'topics'
55
+ | 'type'
56
+ | 'affiliate'
57
+ | 'contributors'
58
+ | 'createdAt'
59
+ | 'updatedAt'
60
+ | 'v'
61
+ | 'sourceData'
62
+ | 'subjects' >
63
+ & {
64
+ profile: Profile
65
+ | {
66
+ deleted: boolean;
67
+ uptimeOwned: boolean;
68
+ avatarUrl: string;
69
+ };
70
+ segments: Pick<Hack['segments'],
71
+ 'inANutshell'
72
+ | 'favouriteQuote'
73
+ | 'introduction'
74
+ | 'insights'
75
+ | 'conclusion'
76
+ | 'overview'
77
+ | 'hereAreTheInsights'
78
+ | 'putInAction'>;
79
+ acl: string[]
80
+ };
@@ -1,22 +1,22 @@
1
- import { TextSegment, Voice } from './text-segment';
2
-
3
- export interface CreateSpeechFromTextCommand {
4
- id: string;
5
- type: 'CreateSpeechFromText';
6
- payload: {
7
- locale: string;
8
- textSegments: TextSegment[];
9
- /** voices to generate. If omitted then all voices for the given locale will be generated */
10
- voiceIds?: string[]
11
- };
12
- }
13
-
14
- export interface CreateSpeechWithVoiceCommand {
15
- id: string;
16
- type: 'CreateSpeechWithVoice';
17
- payload: {
18
- locale: string;
19
- textSegments: TextSegment[];
20
- voice: Voice;
21
- };
22
- }
1
+ import { TextSegment, Voice } from './text-segment';
2
+
3
+ export interface CreateSpeechFromTextCommand {
4
+ id: string;
5
+ type: 'CreateSpeechFromText';
6
+ payload: {
7
+ locale: string;
8
+ textSegments: TextSegment[];
9
+ /** voices to generate. If omitted then all voices for the given locale will be generated */
10
+ voiceIds?: string[]
11
+ };
12
+ }
13
+
14
+ export interface CreateSpeechWithVoiceCommand {
15
+ id: string;
16
+ type: 'CreateSpeechWithVoice';
17
+ payload: {
18
+ locale: string;
19
+ textSegments: TextSegment[];
20
+ voice: Voice;
21
+ };
22
+ }
@@ -1,10 +1,10 @@
1
- import { TextSegmentWithSpeech } from './text-segment';
2
-
3
- export interface SpeechFromTextCreatedEvent {
4
- id: string;
5
- type: 'SpeechFromTextCreated';
6
- payload: {
7
- locale: string;
8
- textSegments: TextSegmentWithSpeech[];
9
- };
10
- }
1
+ import { TextSegmentWithSpeech } from './text-segment';
2
+
3
+ export interface SpeechFromTextCreatedEvent {
4
+ id: string;
5
+ type: 'SpeechFromTextCreated';
6
+ payload: {
7
+ locale: string;
8
+ textSegments: TextSegmentWithSpeech[];
9
+ };
10
+ }
@@ -1,183 +1,183 @@
1
- import { SupportedLocale } from '../localisation/supported-locales';
2
- import { SupportedSpeechProvider, Voice } from './text-segment';
3
-
4
- const britishFable: Voice = { id: 'en-US-FableMultilingualNeural', name: 'Jean', countryCode: 'GB', language: 'en-GB', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
5
- const americanNova: Voice = { id: 'en-US-NovaMultilingualNeural', name: 'Diana', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
6
- const americanOnyx: Voice = { id: 'en-US-OnyxMultilingualNeural', name: 'Harold', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
7
- const americanAlloy: Voice = { id: 'en-US-AlloyMultilingualNeural', name: 'Danny', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
8
- const americanEcho: Voice = { id: 'en-US-EchoMultilingualNeural', name: 'Zach', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
9
- const americanShimmer: Voice = { id: 'en-US-ShimmerMultilingualNeural', name: 'Lydia', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
10
-
11
- const brazilianBrenda: Voice = { id: 'pt-BR-BrendaNeural', name: 'Brenda', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
12
- const brazilianGiovanna: Voice = { id: 'pt-BR-GiovannaNeural', name: 'Giovanna', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
13
- const brazilianAntonio: Voice = { id: 'pt-BR-AntonioNeural', name: 'Antonio', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
14
- const brazilianHumberto: Voice = { id: 'pt-BR-HumbertoNeural', name: 'Humberto', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
15
-
16
- const mexicanBeatriz: Voice = { id: 'es-MX-BeatrizNeural', name: 'Beatriz', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
17
- const mexicanCecilio: Voice = { id: 'es-MX-CecilioNeural', name: 'Cecilio', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
18
- const spanishAbril: Voice = { id: 'es-ES-AbrilNeural', name: 'Abril', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
19
- const spanishAlvaro: Voice = { id: 'es-ES-AlvaroNeural', name: 'Alvaro', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
20
- const latamPaloma: Voice = { id: 'es-US-PalomaNeural', name: 'Paloma', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
21
- const latamAlonso: Voice = { id: 'es-US-AlonsoNeural', name: 'Alonso', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
22
-
23
- const frenchHenri: Voice = { id: 'fr-FR-HenriNeural', name: 'Henri', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
24
- const frenchJerome: Voice = { id: 'fr-FR-JeromeNeural', name: 'Jerome', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
25
- const frenchJacqueline: Voice = { id: 'fr-FR-JacquelineNeural', name: 'Jacqueline', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
26
- const belgianCharline: Voice = { id: 'fr-BE-CharlineNeural', name: 'Charline', countryCode: 'BE', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
27
-
28
- const italianElsa: Voice = { id: 'it-IT-ElsaNeural', name: 'Elsa', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
29
- const italianFabiola: Voice = { id: 'it-IT-FabiolaNeural', name: 'Fabiola', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
30
- const italianCalimero: Voice = { id: 'it-IT-CalimeroNeural', name: 'Calimero', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
31
- const italianCataldo: Voice = { id: 'it-IT-CataldoNeural', name: 'Cataldo', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
32
-
33
- const dutchColette: Voice = { id: 'nl-NL-ColetteNeural', name: 'Colette', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
34
- const dutchMaarten: Voice = { id: 'nl-NL-MaartenNeural', name: 'Maarten', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
35
- const dutchFenna: Voice = { id: 'nl-NL-FennaNeural', name: 'Fenna', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
36
-
37
- const germanKatja: Voice = { id: 'de-DE-KatjaNeural', name: 'Katja', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
38
- const germanConrad: Voice = { id: 'de-DE-ConradNeural', name: 'Conrad', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
39
- const germanChristoph: Voice = { id: 'de-DE-ChristophNeural', name: 'Christoph', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
40
- const germanElke: Voice = { id: 'de-DE-ElkeNeural', name: 'Elke', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
41
-
42
- const polishZofia: Voice = { id: 'pl-PL-ZofiaNeural', name: 'Zofia', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
43
- const polishMarek: Voice = { id: 'pl-PL-MarekNeural', name: 'Marek', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
44
-
45
- const swedishSofie: Voice = { id: 'sv-SE-SofieNeural', name: 'Sofie', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
46
- const swedishMattias: Voice = { id: 'sv-SE-MattiasNeural', name: 'Mattias', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
47
-
48
- const turkishAhmet: Voice = { id: 'tr-TR-AhmetNeural', name: 'Ahmet', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
49
- const turkishEmel: Voice = { id: 'tr-TR-EmelNeural', name: 'Emel', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
50
-
51
- const canadianFrenchSylvie: Voice = { id: 'fr-CA-SylvieNeural', name: 'Sylvie', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
52
- const canadianFrenchThierry: Voice = { id: 'fr-CA-ThierryNeural', name: 'Thierry', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
53
- const canadianFrenchAntoine: Voice = { id: 'fr-CA-AntoineNeural', name: 'Antoine', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
54
- const canadianFrenchJean: Voice = { id: 'fr-CA-JeanNeural', name: 'Jean', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
55
-
56
- const chineseSimplifiedXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
57
- const chineseSimplifiedXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
58
- const chineseSimplifiedYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
59
- const chineseSimplifiedYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
60
-
61
- const chineseTraditionalXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
62
- const chineseTraditionalXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
63
- const chineseTraditionalYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
64
- const chineseTraditionalYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
65
- const chineseTraditionalYunSong: Voice = { id: 'yue-CN-YunSongNeural', name: 'YunSong', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
66
- const chineseTraditionalHiuGaai: Voice = { id: 'zh-HK-HiuGaaiNeural', name: 'HiuGaai', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
67
-
68
- const norwegianPernille: Voice = { id: 'nb-NO-PernilleNeural', name: 'Pernille', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
69
- const norwegianFinn: Voice = { id: 'nb-NO-FinnNeural', name: 'Finn', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
70
-
71
- const malaysianYasmin: Voice = { id: 'ms-MY-YasminNeural', name: 'Yasmin', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
72
- const malaysianOsman: Voice = { id: 'ms-MY-OsmanNeural', name: 'Osman', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
73
-
74
- const russianSvetlana: Voice = { id: 'ru-RU-SvetlanaNeural', name: 'Svetlana', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
75
- const russianDariya: Voice = { id: 'ru-RU-DariyaNeural', name: 'Dariya', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
76
- const russianDmitry: Voice = { id: 'ru-RU-DmitryNeural', name: 'Dmitry', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
77
-
78
- const indianSwara: Voice = { id: 'hi-IN-SwaraNeural', name: 'Swara', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
79
- const indianMadhur: Voice = { id: 'hi-IN-MadhurNeural', name: 'Madhur', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
80
-
81
- const thaiAchara: Voice = { id: 'th-TH-AcharaNeural', name: 'Achara', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
82
- const thaiNiwat: Voice = { id: 'th-TH-NiwatNeural', name: 'Niwat', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
83
- const thaiPremwadee: Voice = { id: 'th-TH-PremwadeeNeural', name: 'Premwadee', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
84
-
85
- const koreanHyunsu: Voice = { id: 'ko-KR-HyunsuNeural', name: 'Hyunsu', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
86
- const koreanGookMin: Voice = { id: 'ko-KR-GookMinNeural', name: 'GookMin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
87
- const koreanJimin: Voice = { id: 'ko-KR-JiMinNeural', name: 'Jimin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
88
- const koreanYuJin: Voice = { id: 'ko-KR-YuJinNeural', name: 'YuJin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
89
-
90
- const arabicAmina: Voice = { id: 'ar-DZ-AminaNeural', name: 'Amina', countryCode: 'DZ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
91
- const arabicShakir: Voice = { id: 'ar-EG-ShakirNeural', name: 'Shakir', countryCode: 'EG', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
92
- const arabicBassel: Voice = { id: 'ar-IQ-BasselNeural', name: 'Bassel', countryCode: 'IQ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
93
- const arabicMouna: Voice = { id: 'ar-MA-MounaNeural', name: 'Mouna', countryCode: 'MA', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
94
-
95
- const indonesianGadis: Voice = { id: 'id-ID-GadisNeural', name: 'Gadis', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
96
- const indonesianArdi: Voice = { id: 'id-ID-ArdiNeural', name: 'Ardi', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
97
- const indonesianJajang: Voice = { id: 'su-ID-JajangNeural', name: 'Jajang', countryCode: 'SU', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
98
- const indonesianSiti: Voice = { id: 'jv-ID-SitiNeural', name: 'Siti', countryCode: 'JV', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
99
-
100
- const japaneseNanami: Voice = { id: 'ja-JP-NanamiNeural', name: 'Nanami', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
101
- const japaneseDaichi: Voice = { id: 'ja-JP-DaichiNeural', name: 'Daichi', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
102
- const japaneseMayu: Voice = { id: 'ja-JP-MayuNeural', name: 'Mayu', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
103
- const japaneseNaoki: Voice = { id: 'ja-JP-NaokiNeural', name: 'Naoki', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
104
-
105
- const vietnameseNamMinh: Voice = { id: 'vi-VN-NamMinhNeural', name: 'NamMinh', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
106
- const vietnameseHoaiMy: Voice = { id: 'vi-VN-HoaiMyNeural', name: 'HoaiMy', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
107
-
108
- const hebrewHila: Voice = { id: 'he-IL-HilaNeural', name: 'Hila', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
109
- const hebrewAvri: Voice = { id: 'he-IL-AvriNeural', name: 'Avri', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
110
-
111
- const voicesForLocales = new Map<string, Voice[]>([
112
- [SupportedLocale.enUS, [britishFable, americanAlloy, americanEcho, americanNova, americanOnyx, americanShimmer]],
113
- [SupportedLocale.ptBR, [brazilianBrenda, brazilianGiovanna, brazilianAntonio, brazilianHumberto]],
114
- [SupportedLocale.es, [mexicanBeatriz, mexicanCecilio, spanishAbril, spanishAlvaro, latamPaloma, latamAlonso]],
115
- [SupportedLocale.frFR, [frenchHenri, frenchJerome, frenchJacqueline, belgianCharline]],
116
- [SupportedLocale.itIT, [italianElsa, italianFabiola, italianCalimero, italianCataldo]],
117
- [SupportedLocale.nlNL, [dutchColette, dutchMaarten, dutchFenna]],
118
- [SupportedLocale.deDE, [germanKatja, germanConrad, germanChristoph, germanElke]],
119
- [SupportedLocale.plPL, [polishZofia, polishMarek]],
120
- [SupportedLocale.svSE, [swedishSofie, swedishMattias]],
121
- [SupportedLocale.trTR, [turkishAhmet, turkishEmel]],
122
- [SupportedLocale.frCA, [canadianFrenchSylvie, canadianFrenchThierry, canadianFrenchAntoine, canadianFrenchJean]],
123
- [SupportedLocale.zhCN, [chineseSimplifiedXiaochen, chineseSimplifiedXiaoyan, chineseSimplifiedYunye, chineseSimplifiedYunyang]],
124
- [SupportedLocale.zhTW, [chineseTraditionalXiaochen, chineseTraditionalXiaoyan, chineseTraditionalYunye, chineseTraditionalYunyang, chineseTraditionalYunSong, chineseTraditionalHiuGaai]],
125
- [SupportedLocale.nbNO, [norwegianPernille, norwegianFinn]],
126
- [SupportedLocale.msMY, [malaysianYasmin, malaysianOsman]],
127
- [SupportedLocale.ruRU, [russianDariya, russianDmitry, russianSvetlana]],
128
- [SupportedLocale.hiIN, [indianSwara, indianMadhur]],
129
- [SupportedLocale.thTH, [thaiAchara, thaiNiwat, thaiPremwadee]],
130
- [SupportedLocale.koKR, [koreanHyunsu, koreanGookMin, koreanJimin, koreanYuJin]],
131
- [SupportedLocale.ar, [arabicAmina, arabicShakir, arabicBassel, arabicMouna]],
132
- [SupportedLocale.idID, [indonesianGadis, indonesianArdi, indonesianJajang, indonesianSiti]],
133
- [SupportedLocale.jaJP, [japaneseNanami, japaneseDaichi, japaneseMayu, japaneseNaoki]],
134
- [SupportedLocale.viVN, [vietnameseNamMinh, vietnameseHoaiMy]],
135
- [SupportedLocale.heIL, [hebrewHila, hebrewAvri]],
136
- ]);
137
-
138
- const defaultVoiceForLocales = new Map<string, Voice>([
139
- [SupportedLocale.enUS, americanNova],
140
- [SupportedLocale.ptBR, brazilianHumberto],
141
- [SupportedLocale.es, latamPaloma],
142
- [SupportedLocale.frFR, frenchJacqueline],
143
- [SupportedLocale.itIT, italianElsa],
144
- [SupportedLocale.nlNL, dutchColette],
145
- [SupportedLocale.deDE, germanKatja],
146
- [SupportedLocale.plPL, polishZofia],
147
- [SupportedLocale.svSE, swedishSofie],
148
- [SupportedLocale.trTR, turkishAhmet],
149
- [SupportedLocale.frCA, canadianFrenchSylvie],
150
- [SupportedLocale.zhCN, chineseSimplifiedXiaochen],
151
- [SupportedLocale.zhTW, chineseTraditionalXiaochen],
152
- [SupportedLocale.nbNO, norwegianPernille],
153
- [SupportedLocale.msMY, malaysianYasmin],
154
- [SupportedLocale.ruRU, russianSvetlana],
155
- [SupportedLocale.hiIN, indianMadhur],
156
- [SupportedLocale.thTH, thaiPremwadee],
157
- [SupportedLocale.koKR, koreanHyunsu],
158
- [SupportedLocale.ar, arabicAmina],
159
- [SupportedLocale.idID, indonesianGadis],
160
- [SupportedLocale.jaJP, japaneseNanami],
161
- [SupportedLocale.viVN, vietnameseNamMinh],
162
- [SupportedLocale.heIL, hebrewHila]
163
- ]);
164
-
165
- export function getSupportedVoices(locale: string): Voice[] {
166
- const voices = voicesForLocales.get(locale);
167
- if (!voices) {
168
- throw new Error(`Cannot list supported voices. Unsupported locale: ${JSON.stringify(locale)}`);
169
- }
170
- return voices;
171
- }
172
-
173
- export function getSupportedVoiceIds(locale: string): string[] {
174
- return getSupportedVoices(locale).map(voice => voice.id);
175
- }
176
-
177
- export function getDefaultVoice(locale: string): Voice {
178
- const voice = defaultVoiceForLocales.get(locale);
179
- if (!voice) {
180
- throw new Error(`Cannot find default voice. Unsupported locale: ${JSON.stringify(locale)}`);
181
- }
182
- return voice;
183
- }
1
+ import { SupportedLocale } from '../localisation/supported-locales';
2
+ import { SupportedSpeechProvider, Voice } from './text-segment';
3
+
4
+ const britishFable: Voice = { id: 'en-US-FableMultilingualNeural', name: 'Jean', countryCode: 'GB', language: 'en-GB', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
5
+ const americanNova: Voice = { id: 'en-US-NovaMultilingualNeural', name: 'Diana', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
6
+ const americanOnyx: Voice = { id: 'en-US-OnyxMultilingualNeural', name: 'Harold', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
7
+ const americanAlloy: Voice = { id: 'en-US-AlloyMultilingualNeural', name: 'Danny', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
8
+ const americanEcho: Voice = { id: 'en-US-EchoMultilingualNeural', name: 'Zach', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
9
+ const americanShimmer: Voice = { id: 'en-US-ShimmerMultilingualNeural', name: 'Lydia', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
10
+
11
+ const brazilianBrenda: Voice = { id: 'pt-BR-BrendaNeural', name: 'Brenda', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
12
+ const brazilianGiovanna: Voice = { id: 'pt-BR-GiovannaNeural', name: 'Giovanna', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
13
+ const brazilianAntonio: Voice = { id: 'pt-BR-AntonioNeural', name: 'Antonio', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
14
+ const brazilianHumberto: Voice = { id: 'pt-BR-HumbertoNeural', name: 'Humberto', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
15
+
16
+ const mexicanBeatriz: Voice = { id: 'es-MX-BeatrizNeural', name: 'Beatriz', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
17
+ const mexicanCecilio: Voice = { id: 'es-MX-CecilioNeural', name: 'Cecilio', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
18
+ const spanishAbril: Voice = { id: 'es-ES-AbrilNeural', name: 'Abril', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
19
+ const spanishAlvaro: Voice = { id: 'es-ES-AlvaroNeural', name: 'Alvaro', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
20
+ const latamPaloma: Voice = { id: 'es-US-PalomaNeural', name: 'Paloma', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
21
+ const latamAlonso: Voice = { id: 'es-US-AlonsoNeural', name: 'Alonso', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
22
+
23
+ const frenchHenri: Voice = { id: 'fr-FR-HenriNeural', name: 'Henri', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
24
+ const frenchJerome: Voice = { id: 'fr-FR-JeromeNeural', name: 'Jerome', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
25
+ const frenchJacqueline: Voice = { id: 'fr-FR-JacquelineNeural', name: 'Jacqueline', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
26
+ const belgianCharline: Voice = { id: 'fr-BE-CharlineNeural', name: 'Charline', countryCode: 'BE', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
27
+
28
+ const italianElsa: Voice = { id: 'it-IT-ElsaNeural', name: 'Elsa', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
29
+ const italianFabiola: Voice = { id: 'it-IT-FabiolaNeural', name: 'Fabiola', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
30
+ const italianCalimero: Voice = { id: 'it-IT-CalimeroNeural', name: 'Calimero', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
31
+ const italianCataldo: Voice = { id: 'it-IT-CataldoNeural', name: 'Cataldo', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
32
+
33
+ const dutchColette: Voice = { id: 'nl-NL-ColetteNeural', name: 'Colette', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
34
+ const dutchMaarten: Voice = { id: 'nl-NL-MaartenNeural', name: 'Maarten', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
35
+ const dutchFenna: Voice = { id: 'nl-NL-FennaNeural', name: 'Fenna', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
36
+
37
+ const germanKatja: Voice = { id: 'de-DE-KatjaNeural', name: 'Katja', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
38
+ const germanConrad: Voice = { id: 'de-DE-ConradNeural', name: 'Conrad', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
39
+ const germanChristoph: Voice = { id: 'de-DE-ChristophNeural', name: 'Christoph', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
40
+ const germanElke: Voice = { id: 'de-DE-ElkeNeural', name: 'Elke', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
41
+
42
+ const polishZofia: Voice = { id: 'pl-PL-ZofiaNeural', name: 'Zofia', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
43
+ const polishMarek: Voice = { id: 'pl-PL-MarekNeural', name: 'Marek', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
44
+
45
+ const swedishSofie: Voice = { id: 'sv-SE-SofieNeural', name: 'Sofie', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
46
+ const swedishMattias: Voice = { id: 'sv-SE-MattiasNeural', name: 'Mattias', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
47
+
48
+ const turkishAhmet: Voice = { id: 'tr-TR-AhmetNeural', name: 'Ahmet', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
49
+ const turkishEmel: Voice = { id: 'tr-TR-EmelNeural', name: 'Emel', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
50
+
51
+ const canadianFrenchSylvie: Voice = { id: 'fr-CA-SylvieNeural', name: 'Sylvie', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
52
+ const canadianFrenchThierry: Voice = { id: 'fr-CA-ThierryNeural', name: 'Thierry', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
53
+ const canadianFrenchAntoine: Voice = { id: 'fr-CA-AntoineNeural', name: 'Antoine', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
54
+ const canadianFrenchJean: Voice = { id: 'fr-CA-JeanNeural', name: 'Jean', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
55
+
56
+ const chineseSimplifiedXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
57
+ const chineseSimplifiedXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
58
+ const chineseSimplifiedYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
59
+ const chineseSimplifiedYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
60
+
61
+ const chineseTraditionalXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
62
+ const chineseTraditionalXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
63
+ const chineseTraditionalYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
64
+ const chineseTraditionalYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
65
+ const chineseTraditionalYunSong: Voice = { id: 'yue-CN-YunSongNeural', name: 'YunSong', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
66
+ const chineseTraditionalHiuGaai: Voice = { id: 'zh-HK-HiuGaaiNeural', name: 'HiuGaai', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
67
+
68
+ const norwegianPernille: Voice = { id: 'nb-NO-PernilleNeural', name: 'Pernille', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
69
+ const norwegianFinn: Voice = { id: 'nb-NO-FinnNeural', name: 'Finn', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
70
+
71
+ const malaysianYasmin: Voice = { id: 'ms-MY-YasminNeural', name: 'Yasmin', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
72
+ const malaysianOsman: Voice = { id: 'ms-MY-OsmanNeural', name: 'Osman', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
73
+
74
+ const russianSvetlana: Voice = { id: 'ru-RU-SvetlanaNeural', name: 'Svetlana', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
75
+ const russianDariya: Voice = { id: 'ru-RU-DariyaNeural', name: 'Dariya', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
76
+ const russianDmitry: Voice = { id: 'ru-RU-DmitryNeural', name: 'Dmitry', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
77
+
78
+ const indianSwara: Voice = { id: 'hi-IN-SwaraNeural', name: 'Swara', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
79
+ const indianMadhur: Voice = { id: 'hi-IN-MadhurNeural', name: 'Madhur', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
80
+
81
+ const thaiAchara: Voice = { id: 'th-TH-AcharaNeural', name: 'Achara', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
82
+ const thaiNiwat: Voice = { id: 'th-TH-NiwatNeural', name: 'Niwat', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
83
+ const thaiPremwadee: Voice = { id: 'th-TH-PremwadeeNeural', name: 'Premwadee', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
84
+
85
+ const koreanHyunsu: Voice = { id: 'ko-KR-HyunsuNeural', name: 'Hyunsu', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
86
+ const koreanGookMin: Voice = { id: 'ko-KR-GookMinNeural', name: 'GookMin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
87
+ const koreanJimin: Voice = { id: 'ko-KR-JiMinNeural', name: 'Jimin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
88
+ const koreanYuJin: Voice = { id: 'ko-KR-YuJinNeural', name: 'YuJin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
89
+
90
+ const arabicAmina: Voice = { id: 'ar-DZ-AminaNeural', name: 'Amina', countryCode: 'DZ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
91
+ const arabicShakir: Voice = { id: 'ar-EG-ShakirNeural', name: 'Shakir', countryCode: 'EG', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
92
+ const arabicBassel: Voice = { id: 'ar-IQ-BasselNeural', name: 'Bassel', countryCode: 'IQ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
93
+ const arabicMouna: Voice = { id: 'ar-MA-MounaNeural', name: 'Mouna', countryCode: 'MA', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
94
+
95
+ const indonesianGadis: Voice = { id: 'id-ID-GadisNeural', name: 'Gadis', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
96
+ const indonesianArdi: Voice = { id: 'id-ID-ArdiNeural', name: 'Ardi', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
97
+ const indonesianJajang: Voice = { id: 'su-ID-JajangNeural', name: 'Jajang', countryCode: 'SU', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
98
+ const indonesianSiti: Voice = { id: 'jv-ID-SitiNeural', name: 'Siti', countryCode: 'JV', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
99
+
100
+ const japaneseNanami: Voice = { id: 'ja-JP-NanamiNeural', name: 'Nanami', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
101
+ const japaneseDaichi: Voice = { id: 'ja-JP-DaichiNeural', name: 'Daichi', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
102
+ const japaneseMayu: Voice = { id: 'ja-JP-MayuNeural', name: 'Mayu', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
103
+ const japaneseNaoki: Voice = { id: 'ja-JP-NaokiNeural', name: 'Naoki', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
104
+
105
+ const vietnameseNamMinh: Voice = { id: 'vi-VN-NamMinhNeural', name: 'NamMinh', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
106
+ const vietnameseHoaiMy: Voice = { id: 'vi-VN-HoaiMyNeural', name: 'HoaiMy', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
107
+
108
+ const hebrewHila: Voice = { id: 'he-IL-HilaNeural', name: 'Hila', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
109
+ const hebrewAvri: Voice = { id: 'he-IL-AvriNeural', name: 'Avri', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
110
+
111
+ const voicesForLocales = new Map<string, Voice[]>([
112
+ [SupportedLocale.enUS, [britishFable, americanAlloy, americanEcho, americanNova, americanOnyx, americanShimmer]],
113
+ [SupportedLocale.ptBR, [brazilianBrenda, brazilianGiovanna, brazilianAntonio, brazilianHumberto]],
114
+ [SupportedLocale.es, [mexicanBeatriz, mexicanCecilio, spanishAbril, spanishAlvaro, latamPaloma, latamAlonso]],
115
+ [SupportedLocale.frFR, [frenchHenri, frenchJerome, frenchJacqueline, belgianCharline]],
116
+ [SupportedLocale.itIT, [italianElsa, italianFabiola, italianCalimero, italianCataldo]],
117
+ [SupportedLocale.nlNL, [dutchColette, dutchMaarten, dutchFenna]],
118
+ [SupportedLocale.deDE, [germanKatja, germanConrad, germanChristoph, germanElke]],
119
+ [SupportedLocale.plPL, [polishZofia, polishMarek]],
120
+ [SupportedLocale.svSE, [swedishSofie, swedishMattias]],
121
+ [SupportedLocale.trTR, [turkishAhmet, turkishEmel]],
122
+ [SupportedLocale.frCA, [canadianFrenchSylvie, canadianFrenchThierry, canadianFrenchAntoine, canadianFrenchJean]],
123
+ [SupportedLocale.zhCN, [chineseSimplifiedXiaochen, chineseSimplifiedXiaoyan, chineseSimplifiedYunye, chineseSimplifiedYunyang]],
124
+ [SupportedLocale.zhTW, [chineseTraditionalXiaochen, chineseTraditionalXiaoyan, chineseTraditionalYunye, chineseTraditionalYunyang, chineseTraditionalYunSong, chineseTraditionalHiuGaai]],
125
+ [SupportedLocale.nbNO, [norwegianPernille, norwegianFinn]],
126
+ [SupportedLocale.msMY, [malaysianYasmin, malaysianOsman]],
127
+ [SupportedLocale.ruRU, [russianDariya, russianDmitry, russianSvetlana]],
128
+ [SupportedLocale.hiIN, [indianSwara, indianMadhur]],
129
+ [SupportedLocale.thTH, [thaiAchara, thaiNiwat, thaiPremwadee]],
130
+ [SupportedLocale.koKR, [koreanHyunsu, koreanGookMin, koreanJimin, koreanYuJin]],
131
+ [SupportedLocale.ar, [arabicAmina, arabicShakir, arabicBassel, arabicMouna]],
132
+ [SupportedLocale.idID, [indonesianGadis, indonesianArdi, indonesianJajang, indonesianSiti]],
133
+ [SupportedLocale.jaJP, [japaneseNanami, japaneseDaichi, japaneseMayu, japaneseNaoki]],
134
+ [SupportedLocale.viVN, [vietnameseNamMinh, vietnameseHoaiMy]],
135
+ [SupportedLocale.heIL, [hebrewHila, hebrewAvri]],
136
+ ]);
137
+
138
+ const defaultVoiceForLocales = new Map<string, Voice>([
139
+ [SupportedLocale.enUS, americanNova],
140
+ [SupportedLocale.ptBR, brazilianHumberto],
141
+ [SupportedLocale.es, latamPaloma],
142
+ [SupportedLocale.frFR, frenchJacqueline],
143
+ [SupportedLocale.itIT, italianElsa],
144
+ [SupportedLocale.nlNL, dutchColette],
145
+ [SupportedLocale.deDE, germanKatja],
146
+ [SupportedLocale.plPL, polishZofia],
147
+ [SupportedLocale.svSE, swedishSofie],
148
+ [SupportedLocale.trTR, turkishAhmet],
149
+ [SupportedLocale.frCA, canadianFrenchSylvie],
150
+ [SupportedLocale.zhCN, chineseSimplifiedXiaochen],
151
+ [SupportedLocale.zhTW, chineseTraditionalXiaochen],
152
+ [SupportedLocale.nbNO, norwegianPernille],
153
+ [SupportedLocale.msMY, malaysianYasmin],
154
+ [SupportedLocale.ruRU, russianSvetlana],
155
+ [SupportedLocale.hiIN, indianMadhur],
156
+ [SupportedLocale.thTH, thaiPremwadee],
157
+ [SupportedLocale.koKR, koreanHyunsu],
158
+ [SupportedLocale.ar, arabicAmina],
159
+ [SupportedLocale.idID, indonesianGadis],
160
+ [SupportedLocale.jaJP, japaneseNanami],
161
+ [SupportedLocale.viVN, vietnameseNamMinh],
162
+ [SupportedLocale.heIL, hebrewHila]
163
+ ]);
164
+
165
+ export function getSupportedVoices(locale: string): Voice[] {
166
+ const voices = voicesForLocales.get(locale);
167
+ if (!voices) {
168
+ throw new Error(`Cannot list supported voices. Unsupported locale: ${JSON.stringify(locale)}`);
169
+ }
170
+ return voices;
171
+ }
172
+
173
+ export function getSupportedVoiceIds(locale: string): string[] {
174
+ return getSupportedVoices(locale).map(voice => voice.id);
175
+ }
176
+
177
+ export function getDefaultVoice(locale: string): Voice {
178
+ const voice = defaultVoiceForLocales.get(locale);
179
+ if (!voice) {
180
+ throw new Error(`Cannot find default voice. Unsupported locale: ${JSON.stringify(locale)}`);
181
+ }
182
+ return voice;
183
+ }