@uptime.app/contracts 2.0.7-rc.0 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/knowledge-source-parsing/knowledge-source-metadata.d.ts +0 -1
- package/dist/cjs/knowledge-source-parsing/knowledge-source-metadata.d.ts.map +1 -1
- package/dist/cjs/user/get-user.d.ts +5 -0
- package/dist/cjs/user/get-user.d.ts.map +1 -1
- package/dist/esm/knowledge-source-parsing/knowledge-source-metadata.d.ts +0 -1
- package/dist/esm/knowledge-source-parsing/knowledge-source-metadata.d.ts.map +1 -1
- package/dist/esm/user/get-user.d.ts +5 -0
- package/dist/esm/user/get-user.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/access-control/collection-access-control.ts +28 -28
- package/src/access-control/hack-access-control.ts +29 -29
- package/src/app-hack/app-full-hack.ts +9 -9
- package/src/app-hack/app-hack-metadata.ts +60 -60
- package/src/app-hack/app-restricted-hack.ts +22 -22
- package/src/b2b-content-access/b2b-content-access.ts +57 -57
- package/src/b2b-organisation/b2b-carousel.ts +33 -33
- package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
- package/src/b2b-organisation/b2b-organisation-invitation.ts +35 -35
- package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
- package/src/b2b-organisation/b2b-organisation-member.ts +10 -10
- package/src/b2b-organisation/b2b-organisation.ts +32 -32
- package/src/brand/brand-events.ts +21 -21
- package/src/brand/brand.ts +26 -26
- package/src/catalogue/catalogue.ts +149 -149
- package/src/cms-hack/cms-searchable-hack.ts +44 -44
- package/src/collection/collection-events.ts +21 -21
- package/src/collection/collection.ts +57 -57
- package/src/collection/enriched-collection-events.ts +18 -18
- package/src/collection/enriched-collection.ts +64 -64
- package/src/creator/creator-events.ts +32 -32
- package/src/creator/creator.ts +7 -7
- package/src/distribution/collection-distribution.ts +17 -17
- package/src/distribution/distribution-events.ts +61 -61
- package/src/distribution/hack-distribution.ts +18 -18
- package/src/draft-hack/draft-hack-events.ts +21 -21
- package/src/draft-hack/draft-hack.ts +189 -189
- package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
- package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
- package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
- package/src/enriched-hack/enriched-hack-events.ts +21 -21
- package/src/enriched-hack/enriched-hack.ts +103 -103
- package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
- package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
- package/src/entitlement/user-entitlements-commands.ts +54 -54
- package/src/entitlement/user-entitlements-events.ts +29 -29
- package/src/entitlement/user-entitlements.ts +18 -18
- package/src/flashcard/flashcard-events.ts +85 -85
- package/src/flashcard/flashcard.ts +138 -138
- package/src/hack/extracted-subject.ts +31 -31
- package/src/hack/hack-events.ts +21 -21
- package/src/hack/hack-published.ts +21 -21
- package/src/hack/hack-with-voice-events.ts +20 -20
- package/src/hack/hack-with-voice.ts +33 -33
- package/src/hack/hack.ts +116 -116
- package/src/hack/publish-hack-command.ts +20 -20
- package/src/hack-metadata/hack-metadata-events.ts +21 -21
- package/src/hack-metadata/hack-metadata.ts +17 -17
- package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
- package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
- package/src/hack-statistics/hack-statistics-events.ts +21 -21
- package/src/hack-statistics/hack-statistics.ts +9 -9
- package/src/hackbot/hack-generation-commands.ts +42 -42
- package/src/hackbot/hack-generation-trigger-events.ts +21 -21
- package/src/hackbot/hack-generation-trigger.ts +54 -54
- package/src/history/history-events.ts +21 -21
- package/src/history/history.ts +46 -46
- package/src/index.ts +165 -165
- package/src/interest/interest-events.ts +21 -21
- package/src/interest/interest.ts +15 -15
- package/src/knowledge-source/knowledge-source-events.ts +21 -21
- package/src/knowledge-source/knowledge-source.ts +43 -43
- package/src/knowledge-source-parsing/knowledge-source-metadata.ts +40 -42
- package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
- package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
- package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
- package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
- package/src/knowledge-source-parsing/user-hack-generation-options.ts +6 -6
- package/src/localisation/live-locales.ts +45 -45
- package/src/localisation/locale-language.ts +4 -4
- package/src/localisation/supported-languages.ts +11 -11
- package/src/localisation/supported-locales.ts +67 -67
- package/src/message-bus/Context.ts +7 -7
- package/src/moderation/hack-moderation-result-events.ts +18 -18
- package/src/moderation/hack-moderation-result.ts +27 -27
- package/src/partner/partner-events.ts +21 -21
- package/src/partner/partner.ts +7 -7
- package/src/pending-hack/pending-hack-events.ts +20 -20
- package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
- package/src/pending-hack/pending-hack-with-voice.ts +25 -25
- package/src/pending-hack/pending-hack.ts +77 -77
- package/src/preferences/preferences-events.ts +15 -15
- package/src/preferences/preferences.ts +35 -35
- package/src/profile/profile-events.ts +41 -41
- package/src/profile/profile.ts +28 -28
- package/src/profile/translated-profile.ts +13 -13
- package/src/referral/referral-events.ts +41 -41
- package/src/referral/referral.ts +76 -76
- package/src/saved/saved-collection-events.ts +19 -19
- package/src/saved/saved-collection.ts +8 -8
- package/src/segment/segment-commands.ts +75 -75
- package/src/segment/segment-events.ts +42 -42
- package/src/segment/segment-with-voice.ts +8 -8
- package/src/segment/segment.ts +82 -82
- package/src/skin/skin-events.ts +21 -21
- package/src/skin/skin.ts +6 -6
- package/src/spark/spark-board-read-model.ts +17 -17
- package/src/spark/spark-board.ts +12 -12
- package/src/spark/spark-events.ts +42 -42
- package/src/spark/spark.ts +80 -80
- package/src/text-to-speech/create-speech-commands.ts +22 -22
- package/src/text-to-speech/speech-created-events.ts +10 -10
- package/src/text-to-speech/supported-voices.ts +184 -184
- package/src/text-to-speech/text-segment.ts +29 -29
- package/src/theme/theme-events.ts +21 -21
- package/src/theme/theme.ts +68 -68
- package/src/translation/translation-events.ts +73 -73
- package/src/translation/translation.ts +25 -25
- package/src/trending/trending-events.ts +21 -21
- package/src/trending/trending-hacks.ts +8 -8
- package/src/user/get-user.ts +30 -24
- package/src/user/user-events.ts +26 -26
- package/src/user-context/user-context-events.ts +21 -21
- package/src/user-context/user-context.ts +15 -15
- package/src/user-notification-context/user-notification-context-events.ts +21 -21
- package/src/user-notification-context/user-notification-context.ts +9 -9
- package/src/user-statistics/user-statistics-events.ts +97 -97
- package/src/user-statistics/user-statistics.ts +82 -82
- package/src/video-cropping/video-cropping-events.ts +43 -43
- package/src/video-cropping/video-metadata.ts +12 -12
- package/tsconfig.cjs.json +7 -7
- package/tsconfig.npm.json +21 -21
package/src/spark/spark.ts
CHANGED
|
@@ -1,80 +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
|
-
};
|
|
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
|
+
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,184 +1,184 @@
|
|
|
1
|
-
import { SupportedLocale } from '../localisation/supported-locales';
|
|
2
|
-
import { SupportedSpeechProvider, Voice } from './text-segment';
|
|
3
|
-
|
|
4
|
-
const britishSonia: Voice = { id: 'en-GB-SoniaNeural', name: 'Sonia', countryCode: 'GB', language: 'en-GB', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
5
|
-
const britishRyan: Voice = { id: 'en-GB-RyanNeural', name: 'Ryan', countryCode: 'GB', language: 'en-GB', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
6
|
-
|
|
7
|
-
const americanNancy: Voice = { id: 'en-US-NancyNeural', name: 'Nancy', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
8
|
-
const americanSara: Voice = { id: 'en-US-SaraNeural', name: 'Sara', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
9
|
-
const americanChristopher: Voice = { id: 'en-US-ChristopherNeural', name: 'Christopher', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
10
|
-
const americanTony: Voice = { id: 'en-US-TonyNeural', name: 'Tony', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
11
|
-
|
|
12
|
-
const brazilianBrenda: Voice = { id: 'pt-BR-BrendaNeural', name: 'Brenda', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
13
|
-
const brazilianGiovanna: Voice = { id: 'pt-BR-GiovannaNeural', name: 'Giovanna', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
14
|
-
const brazilianAntonio: Voice = { id: 'pt-BR-AntonioNeural', name: 'Antonio', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
15
|
-
const brazilianHumberto: Voice = { id: 'pt-BR-HumbertoNeural', name: 'Humberto', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
16
|
-
|
|
17
|
-
const mexicanBeatriz: Voice = { id: 'es-MX-BeatrizNeural', name: 'Beatriz', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
18
|
-
const mexicanCecilio: Voice = { id: 'es-MX-CecilioNeural', name: 'Cecilio', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
19
|
-
const spanishAbril: Voice = { id: 'es-ES-AbrilNeural', name: 'Abril', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
20
|
-
const spanishAlvaro: Voice = { id: 'es-ES-AlvaroNeural', name: 'Alvaro', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
21
|
-
const latamPaloma: Voice = { id: 'es-US-PalomaNeural', name: 'Paloma', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
22
|
-
const latamAlonso: Voice = { id: 'es-US-AlonsoNeural', name: 'Alonso', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
23
|
-
|
|
24
|
-
const frenchHenri: Voice = { id: 'fr-FR-HenriNeural', name: 'Henri', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
25
|
-
const frenchJerome: Voice = { id: 'fr-FR-JeromeNeural', name: 'Jerome', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
26
|
-
const frenchJacqueline: Voice = { id: 'fr-FR-JacquelineNeural', name: 'Jacqueline', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
27
|
-
const belgianCharline: Voice = { id: 'fr-BE-CharlineNeural', name: 'Charline', countryCode: 'BE', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
28
|
-
|
|
29
|
-
const italianElsa: Voice = { id: 'it-IT-ElsaNeural', name: 'Elsa', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
30
|
-
const italianFabiola: Voice = { id: 'it-IT-FabiolaNeural', name: 'Fabiola', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
31
|
-
const italianCalimero: Voice = { id: 'it-IT-CalimeroNeural', name: 'Calimero', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
32
|
-
const italianCataldo: Voice = { id: 'it-IT-CataldoNeural', name: 'Cataldo', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
33
|
-
|
|
34
|
-
const dutchColette: Voice = { id: 'nl-NL-ColetteNeural', name: 'Colette', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
35
|
-
const dutchMaarten: Voice = { id: 'nl-NL-MaartenNeural', name: 'Maarten', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
36
|
-
const dutchFenna: Voice = { id: 'nl-NL-FennaNeural', name: 'Fenna', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
37
|
-
|
|
38
|
-
const germanKatja: Voice = { id: 'de-DE-KatjaNeural', name: 'Katja', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
39
|
-
const germanConrad: Voice = { id: 'de-DE-ConradNeural', name: 'Conrad', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
40
|
-
const germanChristoph: Voice = { id: 'de-DE-ChristophNeural', name: 'Christoph', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
41
|
-
const germanElke: Voice = { id: 'de-DE-ElkeNeural', name: 'Elke', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
42
|
-
|
|
43
|
-
const polishZofia: Voice = { id: 'pl-PL-ZofiaNeural', name: 'Zofia', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
44
|
-
const polishMarek: Voice = { id: 'pl-PL-MarekNeural', name: 'Marek', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
45
|
-
|
|
46
|
-
const swedishSofie: Voice = { id: 'sv-SE-SofieNeural', name: 'Sofie', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
47
|
-
const swedishMattias: Voice = { id: 'sv-SE-MattiasNeural', name: 'Mattias', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
48
|
-
|
|
49
|
-
const turkishAhmet: Voice = { id: 'tr-TR-AhmetNeural', name: 'Ahmet', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
50
|
-
const turkishEmel: Voice = { id: 'tr-TR-EmelNeural', name: 'Emel', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
51
|
-
|
|
52
|
-
const canadianFrenchSylvie: Voice = { id: 'fr-CA-SylvieNeural', name: 'Sylvie', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
53
|
-
const canadianFrenchThierry: Voice = { id: 'fr-CA-ThierryNeural', name: 'Thierry', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
54
|
-
const canadianFrenchAntoine: Voice = { id: 'fr-CA-AntoineNeural', name: 'Antoine', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
55
|
-
const canadianFrenchJean: Voice = { id: 'fr-CA-JeanNeural', name: 'Jean', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
56
|
-
|
|
57
|
-
const chineseSimplifiedXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
58
|
-
const chineseSimplifiedXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
59
|
-
const chineseSimplifiedYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
60
|
-
const chineseSimplifiedYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
61
|
-
|
|
62
|
-
const chineseTraditionalXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
63
|
-
const chineseTraditionalXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
64
|
-
const chineseTraditionalYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
65
|
-
const chineseTraditionalYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
66
|
-
const chineseTraditionalYunSong: Voice = { id: 'yue-CN-YunSongNeural', name: 'YunSong', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
67
|
-
const chineseTraditionalHiuGaai: Voice = { id: 'zh-HK-HiuGaaiNeural', name: 'HiuGaai', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
68
|
-
|
|
69
|
-
const norwegianPernille: Voice = { id: 'nb-NO-PernilleNeural', name: 'Pernille', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
70
|
-
const norwegianFinn: Voice = { id: 'nb-NO-FinnNeural', name: 'Finn', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
71
|
-
|
|
72
|
-
const malaysianYasmin: Voice = { id: 'ms-MY-YasminNeural', name: 'Yasmin', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
73
|
-
const malaysianOsman: Voice = { id: 'ms-MY-OsmanNeural', name: 'Osman', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
74
|
-
|
|
75
|
-
const russianSvetlana: Voice = { id: 'ru-RU-SvetlanaNeural', name: 'Svetlana', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
76
|
-
const russianDariya: Voice = { id: 'ru-RU-DariyaNeural', name: 'Dariya', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
77
|
-
const russianDmitry: Voice = { id: 'ru-RU-DmitryNeural', name: 'Dmitry', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
78
|
-
|
|
79
|
-
const indianSwara: Voice = { id: 'hi-IN-SwaraNeural', name: 'Swara', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
80
|
-
const indianMadhur: Voice = { id: 'hi-IN-MadhurNeural', name: 'Madhur', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
81
|
-
|
|
82
|
-
const thaiAchara: Voice = { id: 'th-TH-AcharaNeural', name: 'Achara', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
83
|
-
const thaiNiwat: Voice = { id: 'th-TH-NiwatNeural', name: 'Niwat', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
84
|
-
const thaiPremwadee: Voice = { id: 'th-TH-PremwadeeNeural', name: 'Premwadee', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
85
|
-
|
|
86
|
-
const koreanHyunsu: Voice = { id: 'ko-KR-HyunsuNeural', name: 'Hyunsu', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
87
|
-
const koreanGookMin: Voice = { id: 'ko-KR-GookMinNeural', name: 'GookMin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
88
|
-
const koreanJimin: Voice = { id: 'ko-KR-JiMinNeural', name: 'Jimin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
89
|
-
const koreanYuJin: Voice = { id: 'ko-KR-YuJinNeural', name: 'YuJin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
90
|
-
|
|
91
|
-
const arabicAmina: Voice = { id: 'ar-DZ-AminaNeural', name: 'Amina', countryCode: 'DZ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
92
|
-
const arabicShakir: Voice = { id: 'ar-EG-ShakirNeural', name: 'Shakir', countryCode: 'EG', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
93
|
-
const arabicBassel: Voice = { id: 'ar-IQ-BasselNeural', name: 'Bassel', countryCode: 'IQ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
94
|
-
const arabicMouna: Voice = { id: 'ar-MA-MounaNeural', name: 'Mouna', countryCode: 'MA', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
95
|
-
|
|
96
|
-
const indonesianGadis: Voice = { id: 'id-ID-GadisNeural', name: 'Gadis', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
97
|
-
const indonesianArdi: Voice = { id: 'id-ID-ArdiNeural', name: 'Ardi', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
98
|
-
const indonesianJajang: Voice = { id: 'su-ID-JajangNeural', name: 'Jajang', countryCode: 'SU', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
99
|
-
const indonesianSiti: Voice = { id: 'jv-ID-SitiNeural', name: 'Siti', countryCode: 'JV', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
100
|
-
|
|
101
|
-
const japaneseNanami: Voice = { id: 'ja-JP-NanamiNeural', name: 'Nanami', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
102
|
-
const japaneseDaichi: Voice = { id: 'ja-JP-DaichiNeural', name: 'Daichi', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
103
|
-
const japaneseMayu: Voice = { id: 'ja-JP-MayuNeural', name: 'Mayu', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
104
|
-
const japaneseNaoki: Voice = { id: 'ja-JP-NaokiNeural', name: 'Naoki', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
105
|
-
|
|
106
|
-
const vietnameseNamMinh: Voice = { id: 'vi-VN-NamMinhNeural', name: 'NamMinh', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
107
|
-
const vietnameseHoaiMy: Voice = { id: 'vi-VN-HoaiMyNeural', name: 'HoaiMy', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
108
|
-
|
|
109
|
-
const hebrewHila: Voice = { id: 'he-IL-HilaNeural', name: 'Hila', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
110
|
-
const hebrewAvri: Voice = { id: 'he-IL-AvriNeural', name: 'Avri', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
111
|
-
|
|
112
|
-
const voicesForLocales = new Map<string, Voice[]>([
|
|
113
|
-
[SupportedLocale.enUS, [britishSonia, britishRyan, americanNancy, americanSara, americanChristopher, americanTony]],
|
|
114
|
-
[SupportedLocale.ptBR, [brazilianBrenda, brazilianGiovanna, brazilianAntonio, brazilianHumberto]],
|
|
115
|
-
[SupportedLocale.es, [mexicanBeatriz, mexicanCecilio, spanishAbril, spanishAlvaro, latamPaloma, latamAlonso]],
|
|
116
|
-
[SupportedLocale.frFR, [frenchHenri, frenchJerome, frenchJacqueline, belgianCharline]],
|
|
117
|
-
[SupportedLocale.itIT, [italianElsa, italianFabiola, italianCalimero, italianCataldo]],
|
|
118
|
-
[SupportedLocale.nlNL, [dutchColette, dutchMaarten, dutchFenna]],
|
|
119
|
-
[SupportedLocale.deDE, [germanKatja, germanConrad, germanChristoph, germanElke]],
|
|
120
|
-
[SupportedLocale.plPL, [polishZofia, polishMarek]],
|
|
121
|
-
[SupportedLocale.svSE, [swedishSofie, swedishMattias]],
|
|
122
|
-
[SupportedLocale.trTR, [turkishAhmet, turkishEmel]],
|
|
123
|
-
[SupportedLocale.frCA, [canadianFrenchSylvie, canadianFrenchThierry, canadianFrenchAntoine, canadianFrenchJean]],
|
|
124
|
-
[SupportedLocale.zhCN, [chineseSimplifiedXiaochen, chineseSimplifiedXiaoyan, chineseSimplifiedYunye, chineseSimplifiedYunyang]],
|
|
125
|
-
[SupportedLocale.zhTW, [chineseTraditionalXiaochen, chineseTraditionalXiaoyan, chineseTraditionalYunye, chineseTraditionalYunyang, chineseTraditionalYunSong, chineseTraditionalHiuGaai]],
|
|
126
|
-
[SupportedLocale.nbNO, [norwegianPernille, norwegianFinn]],
|
|
127
|
-
[SupportedLocale.msMY, [malaysianYasmin, malaysianOsman]],
|
|
128
|
-
[SupportedLocale.ruRU, [russianDariya, russianDmitry, russianSvetlana]],
|
|
129
|
-
[SupportedLocale.hiIN, [indianSwara, indianMadhur]],
|
|
130
|
-
[SupportedLocale.thTH, [thaiAchara, thaiNiwat, thaiPremwadee]],
|
|
131
|
-
[SupportedLocale.koKR, [koreanHyunsu, koreanGookMin, koreanJimin, koreanYuJin]],
|
|
132
|
-
[SupportedLocale.ar, [arabicAmina, arabicShakir, arabicBassel, arabicMouna]],
|
|
133
|
-
[SupportedLocale.idID, [indonesianGadis, indonesianArdi, indonesianJajang, indonesianSiti]],
|
|
134
|
-
[SupportedLocale.jaJP, [japaneseNanami, japaneseDaichi, japaneseMayu, japaneseNaoki]],
|
|
135
|
-
[SupportedLocale.viVN, [vietnameseNamMinh, vietnameseHoaiMy]],
|
|
136
|
-
[SupportedLocale.heIL, [hebrewHila, hebrewAvri]],
|
|
137
|
-
]);
|
|
138
|
-
|
|
139
|
-
const defaultVoiceForLocales = new Map<string, Voice>([
|
|
140
|
-
[SupportedLocale.enUS, americanSara],
|
|
141
|
-
[SupportedLocale.ptBR, brazilianHumberto],
|
|
142
|
-
[SupportedLocale.es, latamPaloma],
|
|
143
|
-
[SupportedLocale.frFR, frenchJacqueline],
|
|
144
|
-
[SupportedLocale.itIT, italianElsa],
|
|
145
|
-
[SupportedLocale.nlNL, dutchColette],
|
|
146
|
-
[SupportedLocale.deDE, germanKatja],
|
|
147
|
-
[SupportedLocale.plPL, polishZofia],
|
|
148
|
-
[SupportedLocale.svSE, swedishSofie],
|
|
149
|
-
[SupportedLocale.trTR, turkishAhmet],
|
|
150
|
-
[SupportedLocale.frCA, canadianFrenchSylvie],
|
|
151
|
-
[SupportedLocale.zhCN, chineseSimplifiedXiaochen],
|
|
152
|
-
[SupportedLocale.zhTW, chineseTraditionalXiaochen],
|
|
153
|
-
[SupportedLocale.nbNO, norwegianPernille],
|
|
154
|
-
[SupportedLocale.msMY, malaysianYasmin],
|
|
155
|
-
[SupportedLocale.ruRU, russianSvetlana],
|
|
156
|
-
[SupportedLocale.hiIN, indianMadhur],
|
|
157
|
-
[SupportedLocale.thTH, thaiPremwadee],
|
|
158
|
-
[SupportedLocale.koKR, koreanHyunsu],
|
|
159
|
-
[SupportedLocale.ar, arabicAmina],
|
|
160
|
-
[SupportedLocale.idID, indonesianGadis],
|
|
161
|
-
[SupportedLocale.jaJP, japaneseNanami],
|
|
162
|
-
[SupportedLocale.viVN, vietnameseNamMinh],
|
|
163
|
-
[SupportedLocale.heIL, hebrewHila]
|
|
164
|
-
]);
|
|
165
|
-
|
|
166
|
-
export function getSupportedVoices(locale: string): Voice[] {
|
|
167
|
-
const voices = voicesForLocales.get(locale);
|
|
168
|
-
if (!voices) {
|
|
169
|
-
throw new Error(`Cannot list supported voices. Unsupported locale: ${JSON.stringify(locale)}`);
|
|
170
|
-
}
|
|
171
|
-
return voices;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export function getSupportedVoiceIds(locale: string): string[] {
|
|
175
|
-
return getSupportedVoices(locale).map(voice => voice.id);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export function getDefaultVoice(locale: string): Voice {
|
|
179
|
-
const voice = defaultVoiceForLocales.get(locale);
|
|
180
|
-
if (!voice) {
|
|
181
|
-
throw new Error(`Cannot find default voice. Unsupported locale: ${JSON.stringify(locale)}`);
|
|
182
|
-
}
|
|
183
|
-
return voice;
|
|
184
|
-
}
|
|
1
|
+
import { SupportedLocale } from '../localisation/supported-locales';
|
|
2
|
+
import { SupportedSpeechProvider, Voice } from './text-segment';
|
|
3
|
+
|
|
4
|
+
const britishSonia: Voice = { id: 'en-GB-SoniaNeural', name: 'Sonia', countryCode: 'GB', language: 'en-GB', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
5
|
+
const britishRyan: Voice = { id: 'en-GB-RyanNeural', name: 'Ryan', countryCode: 'GB', language: 'en-GB', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
6
|
+
|
|
7
|
+
const americanNancy: Voice = { id: 'en-US-NancyNeural', name: 'Nancy', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
8
|
+
const americanSara: Voice = { id: 'en-US-SaraNeural', name: 'Sara', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
9
|
+
const americanChristopher: Voice = { id: 'en-US-ChristopherNeural', name: 'Christopher', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
10
|
+
const americanTony: Voice = { id: 'en-US-TonyNeural', name: 'Tony', countryCode: 'US', language: 'en-US', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
11
|
+
|
|
12
|
+
const brazilianBrenda: Voice = { id: 'pt-BR-BrendaNeural', name: 'Brenda', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
13
|
+
const brazilianGiovanna: Voice = { id: 'pt-BR-GiovannaNeural', name: 'Giovanna', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
14
|
+
const brazilianAntonio: Voice = { id: 'pt-BR-AntonioNeural', name: 'Antonio', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
15
|
+
const brazilianHumberto: Voice = { id: 'pt-BR-HumbertoNeural', name: 'Humberto', countryCode: 'BR', language: 'pt-BR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
16
|
+
|
|
17
|
+
const mexicanBeatriz: Voice = { id: 'es-MX-BeatrizNeural', name: 'Beatriz', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
18
|
+
const mexicanCecilio: Voice = { id: 'es-MX-CecilioNeural', name: 'Cecilio', countryCode: 'MX', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
19
|
+
const spanishAbril: Voice = { id: 'es-ES-AbrilNeural', name: 'Abril', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
20
|
+
const spanishAlvaro: Voice = { id: 'es-ES-AlvaroNeural', name: 'Alvaro', countryCode: 'ES', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
21
|
+
const latamPaloma: Voice = { id: 'es-US-PalomaNeural', name: 'Paloma', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
22
|
+
const latamAlonso: Voice = { id: 'es-US-AlonsoNeural', name: 'Alonso', countryCode: 'LATAM', language: 'es', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
23
|
+
|
|
24
|
+
const frenchHenri: Voice = { id: 'fr-FR-HenriNeural', name: 'Henri', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
25
|
+
const frenchJerome: Voice = { id: 'fr-FR-JeromeNeural', name: 'Jerome', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
26
|
+
const frenchJacqueline: Voice = { id: 'fr-FR-JacquelineNeural', name: 'Jacqueline', countryCode: 'FR', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
27
|
+
const belgianCharline: Voice = { id: 'fr-BE-CharlineNeural', name: 'Charline', countryCode: 'BE', language: 'fr-FR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
28
|
+
|
|
29
|
+
const italianElsa: Voice = { id: 'it-IT-ElsaNeural', name: 'Elsa', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
30
|
+
const italianFabiola: Voice = { id: 'it-IT-FabiolaNeural', name: 'Fabiola', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
31
|
+
const italianCalimero: Voice = { id: 'it-IT-CalimeroNeural', name: 'Calimero', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
32
|
+
const italianCataldo: Voice = { id: 'it-IT-CataldoNeural', name: 'Cataldo', countryCode: 'IT', language: 'it-IT', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
33
|
+
|
|
34
|
+
const dutchColette: Voice = { id: 'nl-NL-ColetteNeural', name: 'Colette', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
35
|
+
const dutchMaarten: Voice = { id: 'nl-NL-MaartenNeural', name: 'Maarten', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
36
|
+
const dutchFenna: Voice = { id: 'nl-NL-FennaNeural', name: 'Fenna', countryCode: 'NL', language: 'nl-NL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
37
|
+
|
|
38
|
+
const germanKatja: Voice = { id: 'de-DE-KatjaNeural', name: 'Katja', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
39
|
+
const germanConrad: Voice = { id: 'de-DE-ConradNeural', name: 'Conrad', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
40
|
+
const germanChristoph: Voice = { id: 'de-DE-ChristophNeural', name: 'Christoph', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
41
|
+
const germanElke: Voice = { id: 'de-DE-ElkeNeural', name: 'Elke', countryCode: 'DE', language: 'de-DE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
42
|
+
|
|
43
|
+
const polishZofia: Voice = { id: 'pl-PL-ZofiaNeural', name: 'Zofia', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
44
|
+
const polishMarek: Voice = { id: 'pl-PL-MarekNeural', name: 'Marek', countryCode: 'PL', language: 'pl-PL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
45
|
+
|
|
46
|
+
const swedishSofie: Voice = { id: 'sv-SE-SofieNeural', name: 'Sofie', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
47
|
+
const swedishMattias: Voice = { id: 'sv-SE-MattiasNeural', name: 'Mattias', countryCode: 'SV', language: 'sv-SE', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
48
|
+
|
|
49
|
+
const turkishAhmet: Voice = { id: 'tr-TR-AhmetNeural', name: 'Ahmet', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
50
|
+
const turkishEmel: Voice = { id: 'tr-TR-EmelNeural', name: 'Emel', countryCode: 'TR', language: 'tr-TR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
51
|
+
|
|
52
|
+
const canadianFrenchSylvie: Voice = { id: 'fr-CA-SylvieNeural', name: 'Sylvie', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
53
|
+
const canadianFrenchThierry: Voice = { id: 'fr-CA-ThierryNeural', name: 'Thierry', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
54
|
+
const canadianFrenchAntoine: Voice = { id: 'fr-CA-AntoineNeural', name: 'Antoine', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
55
|
+
const canadianFrenchJean: Voice = { id: 'fr-CA-JeanNeural', name: 'Jean', countryCode: 'CA', language: 'fr-CA', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
56
|
+
|
|
57
|
+
const chineseSimplifiedXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
58
|
+
const chineseSimplifiedXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
59
|
+
const chineseSimplifiedYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
60
|
+
const chineseSimplifiedYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-CN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
61
|
+
|
|
62
|
+
const chineseTraditionalXiaochen: Voice = { id: 'zh-CN-XiaochenNeural', name: 'Xiaochen', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
63
|
+
const chineseTraditionalXiaoyan: Voice = { id: 'zh-CN-XiaoyanNeural', name: 'Xiaoyan', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
64
|
+
const chineseTraditionalYunye: Voice = { id: 'zh-CN-YunyeNeural', name: 'Yunye', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
65
|
+
const chineseTraditionalYunyang: Voice = { id: 'zh-CN-YunyangNeural', name: 'Yunyang', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
66
|
+
const chineseTraditionalYunSong: Voice = { id: 'yue-CN-YunSongNeural', name: 'YunSong', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
67
|
+
const chineseTraditionalHiuGaai: Voice = { id: 'zh-HK-HiuGaaiNeural', name: 'HiuGaai', countryCode: 'CN', language: 'zh-TW', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
68
|
+
|
|
69
|
+
const norwegianPernille: Voice = { id: 'nb-NO-PernilleNeural', name: 'Pernille', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
70
|
+
const norwegianFinn: Voice = { id: 'nb-NO-FinnNeural', name: 'Finn', countryCode: 'NO', language: 'nb-NO', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
71
|
+
|
|
72
|
+
const malaysianYasmin: Voice = { id: 'ms-MY-YasminNeural', name: 'Yasmin', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
73
|
+
const malaysianOsman: Voice = { id: 'ms-MY-OsmanNeural', name: 'Osman', countryCode: 'MY', language: 'ms-MY', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
74
|
+
|
|
75
|
+
const russianSvetlana: Voice = { id: 'ru-RU-SvetlanaNeural', name: 'Svetlana', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
76
|
+
const russianDariya: Voice = { id: 'ru-RU-DariyaNeural', name: 'Dariya', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
77
|
+
const russianDmitry: Voice = { id: 'ru-RU-DmitryNeural', name: 'Dmitry', countryCode: 'RU', language: 'ru-RU', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
78
|
+
|
|
79
|
+
const indianSwara: Voice = { id: 'hi-IN-SwaraNeural', name: 'Swara', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
80
|
+
const indianMadhur: Voice = { id: 'hi-IN-MadhurNeural', name: 'Madhur', countryCode: 'IN', language: 'hi-IN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
81
|
+
|
|
82
|
+
const thaiAchara: Voice = { id: 'th-TH-AcharaNeural', name: 'Achara', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
83
|
+
const thaiNiwat: Voice = { id: 'th-TH-NiwatNeural', name: 'Niwat', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
84
|
+
const thaiPremwadee: Voice = { id: 'th-TH-PremwadeeNeural', name: 'Premwadee', countryCode: 'TH', language: 'th-TH', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
85
|
+
|
|
86
|
+
const koreanHyunsu: Voice = { id: 'ko-KR-HyunsuNeural', name: 'Hyunsu', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
87
|
+
const koreanGookMin: Voice = { id: 'ko-KR-GookMinNeural', name: 'GookMin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
88
|
+
const koreanJimin: Voice = { id: 'ko-KR-JiMinNeural', name: 'Jimin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
89
|
+
const koreanYuJin: Voice = { id: 'ko-KR-YuJinNeural', name: 'YuJin', countryCode: 'KR', language: 'ko-KR', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
90
|
+
|
|
91
|
+
const arabicAmina: Voice = { id: 'ar-DZ-AminaNeural', name: 'Amina', countryCode: 'DZ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
92
|
+
const arabicShakir: Voice = { id: 'ar-EG-ShakirNeural', name: 'Shakir', countryCode: 'EG', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
93
|
+
const arabicBassel: Voice = { id: 'ar-IQ-BasselNeural', name: 'Bassel', countryCode: 'IQ', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
94
|
+
const arabicMouna: Voice = { id: 'ar-MA-MounaNeural', name: 'Mouna', countryCode: 'MA', language: 'ar', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
95
|
+
|
|
96
|
+
const indonesianGadis: Voice = { id: 'id-ID-GadisNeural', name: 'Gadis', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
97
|
+
const indonesianArdi: Voice = { id: 'id-ID-ArdiNeural', name: 'Ardi', countryCode: 'ID', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
98
|
+
const indonesianJajang: Voice = { id: 'su-ID-JajangNeural', name: 'Jajang', countryCode: 'SU', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
99
|
+
const indonesianSiti: Voice = { id: 'jv-ID-SitiNeural', name: 'Siti', countryCode: 'JV', language: 'id-ID', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
100
|
+
|
|
101
|
+
const japaneseNanami: Voice = { id: 'ja-JP-NanamiNeural', name: 'Nanami', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
102
|
+
const japaneseDaichi: Voice = { id: 'ja-JP-DaichiNeural', name: 'Daichi', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
103
|
+
const japaneseMayu: Voice = { id: 'ja-JP-MayuNeural', name: 'Mayu', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
104
|
+
const japaneseNaoki: Voice = { id: 'ja-JP-NaokiNeural', name: 'Naoki', countryCode: 'JP', language: 'ja-JP', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
105
|
+
|
|
106
|
+
const vietnameseNamMinh: Voice = { id: 'vi-VN-NamMinhNeural', name: 'NamMinh', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
107
|
+
const vietnameseHoaiMy: Voice = { id: 'vi-VN-HoaiMyNeural', name: 'HoaiMy', countryCode: 'VN', language: 'vi-VN', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
108
|
+
|
|
109
|
+
const hebrewHila: Voice = { id: 'he-IL-HilaNeural', name: 'Hila', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
110
|
+
const hebrewAvri: Voice = { id: 'he-IL-AvriNeural', name: 'Avri', countryCode: 'IL', language: 'he-IL', speechProvider: SupportedSpeechProvider.MicrosoftAzure };
|
|
111
|
+
|
|
112
|
+
const voicesForLocales = new Map<string, Voice[]>([
|
|
113
|
+
[SupportedLocale.enUS, [britishSonia, britishRyan, americanNancy, americanSara, americanChristopher, americanTony]],
|
|
114
|
+
[SupportedLocale.ptBR, [brazilianBrenda, brazilianGiovanna, brazilianAntonio, brazilianHumberto]],
|
|
115
|
+
[SupportedLocale.es, [mexicanBeatriz, mexicanCecilio, spanishAbril, spanishAlvaro, latamPaloma, latamAlonso]],
|
|
116
|
+
[SupportedLocale.frFR, [frenchHenri, frenchJerome, frenchJacqueline, belgianCharline]],
|
|
117
|
+
[SupportedLocale.itIT, [italianElsa, italianFabiola, italianCalimero, italianCataldo]],
|
|
118
|
+
[SupportedLocale.nlNL, [dutchColette, dutchMaarten, dutchFenna]],
|
|
119
|
+
[SupportedLocale.deDE, [germanKatja, germanConrad, germanChristoph, germanElke]],
|
|
120
|
+
[SupportedLocale.plPL, [polishZofia, polishMarek]],
|
|
121
|
+
[SupportedLocale.svSE, [swedishSofie, swedishMattias]],
|
|
122
|
+
[SupportedLocale.trTR, [turkishAhmet, turkishEmel]],
|
|
123
|
+
[SupportedLocale.frCA, [canadianFrenchSylvie, canadianFrenchThierry, canadianFrenchAntoine, canadianFrenchJean]],
|
|
124
|
+
[SupportedLocale.zhCN, [chineseSimplifiedXiaochen, chineseSimplifiedXiaoyan, chineseSimplifiedYunye, chineseSimplifiedYunyang]],
|
|
125
|
+
[SupportedLocale.zhTW, [chineseTraditionalXiaochen, chineseTraditionalXiaoyan, chineseTraditionalYunye, chineseTraditionalYunyang, chineseTraditionalYunSong, chineseTraditionalHiuGaai]],
|
|
126
|
+
[SupportedLocale.nbNO, [norwegianPernille, norwegianFinn]],
|
|
127
|
+
[SupportedLocale.msMY, [malaysianYasmin, malaysianOsman]],
|
|
128
|
+
[SupportedLocale.ruRU, [russianDariya, russianDmitry, russianSvetlana]],
|
|
129
|
+
[SupportedLocale.hiIN, [indianSwara, indianMadhur]],
|
|
130
|
+
[SupportedLocale.thTH, [thaiAchara, thaiNiwat, thaiPremwadee]],
|
|
131
|
+
[SupportedLocale.koKR, [koreanHyunsu, koreanGookMin, koreanJimin, koreanYuJin]],
|
|
132
|
+
[SupportedLocale.ar, [arabicAmina, arabicShakir, arabicBassel, arabicMouna]],
|
|
133
|
+
[SupportedLocale.idID, [indonesianGadis, indonesianArdi, indonesianJajang, indonesianSiti]],
|
|
134
|
+
[SupportedLocale.jaJP, [japaneseNanami, japaneseDaichi, japaneseMayu, japaneseNaoki]],
|
|
135
|
+
[SupportedLocale.viVN, [vietnameseNamMinh, vietnameseHoaiMy]],
|
|
136
|
+
[SupportedLocale.heIL, [hebrewHila, hebrewAvri]],
|
|
137
|
+
]);
|
|
138
|
+
|
|
139
|
+
const defaultVoiceForLocales = new Map<string, Voice>([
|
|
140
|
+
[SupportedLocale.enUS, americanSara],
|
|
141
|
+
[SupportedLocale.ptBR, brazilianHumberto],
|
|
142
|
+
[SupportedLocale.es, latamPaloma],
|
|
143
|
+
[SupportedLocale.frFR, frenchJacqueline],
|
|
144
|
+
[SupportedLocale.itIT, italianElsa],
|
|
145
|
+
[SupportedLocale.nlNL, dutchColette],
|
|
146
|
+
[SupportedLocale.deDE, germanKatja],
|
|
147
|
+
[SupportedLocale.plPL, polishZofia],
|
|
148
|
+
[SupportedLocale.svSE, swedishSofie],
|
|
149
|
+
[SupportedLocale.trTR, turkishAhmet],
|
|
150
|
+
[SupportedLocale.frCA, canadianFrenchSylvie],
|
|
151
|
+
[SupportedLocale.zhCN, chineseSimplifiedXiaochen],
|
|
152
|
+
[SupportedLocale.zhTW, chineseTraditionalXiaochen],
|
|
153
|
+
[SupportedLocale.nbNO, norwegianPernille],
|
|
154
|
+
[SupportedLocale.msMY, malaysianYasmin],
|
|
155
|
+
[SupportedLocale.ruRU, russianSvetlana],
|
|
156
|
+
[SupportedLocale.hiIN, indianMadhur],
|
|
157
|
+
[SupportedLocale.thTH, thaiPremwadee],
|
|
158
|
+
[SupportedLocale.koKR, koreanHyunsu],
|
|
159
|
+
[SupportedLocale.ar, arabicAmina],
|
|
160
|
+
[SupportedLocale.idID, indonesianGadis],
|
|
161
|
+
[SupportedLocale.jaJP, japaneseNanami],
|
|
162
|
+
[SupportedLocale.viVN, vietnameseNamMinh],
|
|
163
|
+
[SupportedLocale.heIL, hebrewHila]
|
|
164
|
+
]);
|
|
165
|
+
|
|
166
|
+
export function getSupportedVoices(locale: string): Voice[] {
|
|
167
|
+
const voices = voicesForLocales.get(locale);
|
|
168
|
+
if (!voices) {
|
|
169
|
+
throw new Error(`Cannot list supported voices. Unsupported locale: ${JSON.stringify(locale)}`);
|
|
170
|
+
}
|
|
171
|
+
return voices;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export function getSupportedVoiceIds(locale: string): string[] {
|
|
175
|
+
return getSupportedVoices(locale).map(voice => voice.id);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export function getDefaultVoice(locale: string): Voice {
|
|
179
|
+
const voice = defaultVoiceForLocales.get(locale);
|
|
180
|
+
if (!voice) {
|
|
181
|
+
throw new Error(`Cannot find default voice. Unsupported locale: ${JSON.stringify(locale)}`);
|
|
182
|
+
}
|
|
183
|
+
return voice;
|
|
184
|
+
}
|