mirror of
https://github.com/jambonz/jambonz-webapp.git
synced 2026-07-04 19:21:58 +00:00
Feat/tts stt voices languages from api server (#376)
* support fetching tts/stt language and voice from api server * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip
This commit is contained in:
+17
-30
@@ -91,12 +91,9 @@ import type {
|
||||
DeleteAccount,
|
||||
ChangePassword,
|
||||
SignIn,
|
||||
GetVoices,
|
||||
LanguageOption,
|
||||
VoiceOption,
|
||||
GetLanguages,
|
||||
GoogleCustomVoice,
|
||||
GoogleCustomVoicesQuery,
|
||||
SpeechSupportedLanguagesAndVoices,
|
||||
} from "./types";
|
||||
import { Availability, StatusCodes } from "./types";
|
||||
import { JaegerRoot } from "./jaeger-types";
|
||||
@@ -336,32 +333,6 @@ export const postSpeechService = (
|
||||
return postFetch<SidResponse, Partial<SpeechCredential>>(apiUrl, payload);
|
||||
};
|
||||
|
||||
export const postSpeechServiceVoices = (
|
||||
sid: string,
|
||||
payload: Partial<GetVoices>
|
||||
) => {
|
||||
const userData = parseJwt(getToken());
|
||||
const apiUrl =
|
||||
userData.scope === USER_ACCOUNT
|
||||
? `${API_ACCOUNTS}/${userData.account_sid}/SpeechCredentials/voices`
|
||||
: `${API_SERVICE_PROVIDERS}/${sid}/SpeechCredentials/voices`;
|
||||
|
||||
return postFetch<VoiceOption[], Partial<GetVoices>>(apiUrl, payload);
|
||||
};
|
||||
|
||||
export const postSpeechServiceLanguages = (
|
||||
sid: string,
|
||||
payload: Partial<GetLanguages>
|
||||
) => {
|
||||
const userData = parseJwt(getToken());
|
||||
const apiUrl =
|
||||
userData.scope === USER_ACCOUNT
|
||||
? `${API_ACCOUNTS}/${userData.account_sid}/SpeechCredentials/languages`
|
||||
: `${API_SERVICE_PROVIDERS}/${sid}/SpeechCredentials/languages`;
|
||||
|
||||
return postFetch<LanguageOption[], Partial<GetLanguages>>(apiUrl, payload);
|
||||
};
|
||||
|
||||
export const postMsTeamsTentant = (payload: Partial<MSTeamsTenant>) => {
|
||||
return postFetch<SidResponse, Partial<MSTeamsTenant>>(
|
||||
API_MS_TEAMS_TENANTS,
|
||||
@@ -900,6 +871,22 @@ export const getPrice = () => {
|
||||
return getFetch<PriceInfo[]>(API_PRICE);
|
||||
};
|
||||
|
||||
export const getSpeechSupportedLanguagesAndVoices = (
|
||||
sid: string | undefined,
|
||||
vendor: string,
|
||||
label: string
|
||||
) => {
|
||||
const userData = parseJwt(getToken());
|
||||
const apiUrl =
|
||||
(userData.scope === USER_ACCOUNT
|
||||
? `${API_ACCOUNTS}/${userData.account_sid}`
|
||||
: `${API_SERVICE_PROVIDERS}/${sid}`) +
|
||||
`/SpeechCredentials/speech/supportedLanguagesAndVoices?vendor=${vendor}${
|
||||
label ? `&label=${label}` : ""
|
||||
}`;
|
||||
return getFetch<SpeechSupportedLanguagesAndVoices>(apiUrl);
|
||||
};
|
||||
|
||||
/** Hooks for components to fetch data with refetch method */
|
||||
|
||||
/** :GET /{apiPath} -- this is generic for any fetch of data collections */
|
||||
|
||||
+6
-12
@@ -1,4 +1,4 @@
|
||||
import type { Vendor } from "src/vendor/types";
|
||||
import type { Language, Model, Vendor, VoiceLanguage } from "src/vendor/types";
|
||||
|
||||
/** Simple types */
|
||||
|
||||
@@ -697,21 +697,15 @@ export interface SignIn {
|
||||
account_sid?: null | string;
|
||||
}
|
||||
|
||||
export interface GetVoices {
|
||||
export interface GetLanguagesAndVoices {
|
||||
vendor: string;
|
||||
label: string;
|
||||
}
|
||||
|
||||
export interface VoiceOption extends SelectorOptions {
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface GetLanguages extends GetVoices {
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface LanguageOption extends SelectorOptions {
|
||||
[key: string]: unknown;
|
||||
export interface SpeechSupportedLanguagesAndVoices {
|
||||
tts: VoiceLanguage[];
|
||||
stt: Language[];
|
||||
models: Model[];
|
||||
}
|
||||
|
||||
export interface ElevenLabsOptions {
|
||||
|
||||
@@ -16,7 +16,6 @@ import {
|
||||
LANG_EN_US,
|
||||
VENDOR_GOOGLE,
|
||||
LANG_EN_US_STANDARD_C,
|
||||
useSpeechVendors,
|
||||
VENDOR_CUSTOM,
|
||||
} from "src/vendor";
|
||||
import {
|
||||
@@ -61,7 +60,6 @@ type ApplicationFormProps = {
|
||||
|
||||
export const ApplicationForm = ({ application }: ApplicationFormProps) => {
|
||||
const navigate = useNavigate();
|
||||
const { synthesis, recognizers } = useSpeechVendors();
|
||||
const user = useSelectState("user");
|
||||
const currentServiceProvider = useSelectState("currentServiceProvider");
|
||||
const [accounts] = useServiceProviderData<Account[]>("Accounts");
|
||||
@@ -685,14 +683,12 @@ export const ApplicationForm = ({ application }: ApplicationFormProps) => {
|
||||
}
|
||||
accountSid={accountSid}
|
||||
credentials={credentials}
|
||||
synthesis={synthesis}
|
||||
ttsVendor={[synthVendor, setSynthVendor]}
|
||||
ttsVendorOptions={ttsVendorOptions}
|
||||
ttsVoice={[synthVoice, setSynthVoice]}
|
||||
ttsLang={[synthLang, setSynthLang]}
|
||||
ttsLabelOptions={ttsLabelOptions}
|
||||
ttsLabel={[synthLabel, setSynthLabel]}
|
||||
recognizers={recognizers}
|
||||
sttVendor={[recogVendor, setRecogVendor]}
|
||||
sttVendorOptions={sttVendorOptions}
|
||||
sttLang={[recogLang, setRecogLang]}
|
||||
@@ -716,7 +712,6 @@ export const ApplicationForm = ({ application }: ApplicationFormProps) => {
|
||||
}
|
||||
accountSid={accountSid}
|
||||
credentials={credentials}
|
||||
synthesis={synthesis}
|
||||
ttsVendor={[
|
||||
fallbackSpeechSynthsisVendor,
|
||||
setFallbackSpeechSynthsisVendor,
|
||||
@@ -735,7 +730,6 @@ export const ApplicationForm = ({ application }: ApplicationFormProps) => {
|
||||
fallbackSpeechSynthsisLabel,
|
||||
setFallbackSpeechSynthsisLabel,
|
||||
]}
|
||||
recognizers={recognizers}
|
||||
sttVendor={[
|
||||
fallbackSpeechRecognizerVendor,
|
||||
setFallbackSpeechRecognizerVendor,
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import React, { useEffect, useRef, useState } from "react";
|
||||
import {
|
||||
getGoogleCustomVoices,
|
||||
postSpeechServiceLanguages,
|
||||
postSpeechServiceVoices,
|
||||
getSpeechSupportedLanguagesAndVoices,
|
||||
} from "src/api";
|
||||
import { SpeechCredential } from "src/api/types";
|
||||
import { USER_ADMIN } from "src/api/constants";
|
||||
import {
|
||||
SpeechCredential,
|
||||
SpeechSupportedLanguagesAndVoices,
|
||||
} from "src/api/types";
|
||||
import { Selector } from "src/components/forms";
|
||||
import { SelectorOption } from "src/components/forms/selector";
|
||||
import { useSelectState } from "src/store";
|
||||
import { toastError, useSelectState } from "src/store";
|
||||
import { hasLength } from "src/utils";
|
||||
import {
|
||||
ELEVENLABS_LANG_EN,
|
||||
@@ -25,22 +28,17 @@ import {
|
||||
VENDOR_SONIOX,
|
||||
VENDOR_WELLSAID,
|
||||
VENDOR_WHISPER,
|
||||
useTtsModels,
|
||||
} from "src/vendor";
|
||||
import {
|
||||
LabelOptions,
|
||||
Language,
|
||||
RecognizerVendors,
|
||||
SynthesisVendors,
|
||||
VendorOptions,
|
||||
Voice,
|
||||
VoiceLanguage,
|
||||
} from "src/vendor/types";
|
||||
type SpeechProviderSelectionProbs = {
|
||||
accountSid: string;
|
||||
serviceProviderSid: string;
|
||||
credentials: SpeechCredential[] | undefined;
|
||||
synthesis: SynthesisVendors | undefined;
|
||||
ttsVendor: [
|
||||
keyof SynthesisVendors,
|
||||
React.Dispatch<React.SetStateAction<keyof SynthesisVendors>>
|
||||
@@ -50,7 +48,6 @@ type SpeechProviderSelectionProbs = {
|
||||
ttsLang: [string, React.Dispatch<React.SetStateAction<string>>];
|
||||
ttsLabelOptions: LabelOptions[];
|
||||
ttsLabel: [string, React.Dispatch<React.SetStateAction<string>>];
|
||||
recognizers: RecognizerVendors | undefined;
|
||||
sttVendor: [
|
||||
keyof RecognizerVendors,
|
||||
React.Dispatch<React.SetStateAction<keyof RecognizerVendors>>
|
||||
@@ -65,20 +62,23 @@ export const SpeechProviderSelection = ({
|
||||
accountSid,
|
||||
serviceProviderSid,
|
||||
credentials,
|
||||
synthesis,
|
||||
ttsVendor: [synthVendor, setSynthVendor],
|
||||
ttsVendorOptions,
|
||||
ttsVoice: [synthVoice, setSynthVoice],
|
||||
ttsLang: [synthLang, setSynthLang],
|
||||
ttsLabelOptions,
|
||||
ttsLabel: [synthLabel, setSynthLabel],
|
||||
recognizers,
|
||||
sttVendor: [recogVendor, setRecogVendor],
|
||||
sttVendorOptions,
|
||||
sttLang: [recogLang, setRecogLang],
|
||||
sttLabelOptions,
|
||||
sttLabel: [recogLabel, setRecogLabel],
|
||||
}: SpeechProviderSelectionProbs) => {
|
||||
const user = useSelectState("user");
|
||||
const [
|
||||
synthesisSupportedLanguagesAndVoices,
|
||||
setSynthesisSupportedLanguagesAndVoices,
|
||||
] = useState<SpeechSupportedLanguagesAndVoices | null>();
|
||||
const [selectedCredential, setSelectedCredential] = useState<
|
||||
SpeechCredential | undefined
|
||||
>();
|
||||
@@ -88,117 +88,55 @@ export const SpeechProviderSelection = ({
|
||||
const [synthesisLanguageOptions, setSynthesisLanguageOptions] = useState<
|
||||
SelectorOption[]
|
||||
>([]);
|
||||
const [synthesisModelOptions, setSynthesisModelOptions] = useState<
|
||||
SelectorOption[]
|
||||
>([]);
|
||||
const [
|
||||
synthesisGoogleCustomVoiceOptions,
|
||||
setSynthesisGoogleCustomVoiceOptions,
|
||||
] = useState<SelectorOption[]>([]);
|
||||
const [recogLanguageOptions, setRecogLanguageOptions] = useState<
|
||||
SelectorOption[]
|
||||
>([]);
|
||||
|
||||
const currentVendor = useRef("");
|
||||
|
||||
const currentServiceProvider = useSelectState("currentServiceProvider");
|
||||
|
||||
const currentVendor = useRef(synthVendor);
|
||||
|
||||
const ttsModels = useTtsModels();
|
||||
|
||||
// Get Synthesis languages and voices
|
||||
useEffect(() => {
|
||||
/** When Custom Vendor is used, user you have to input the lange and voice. */
|
||||
if (synthVendor.toString().startsWith(VENDOR_CUSTOM)) {
|
||||
setSynthVoice("");
|
||||
return;
|
||||
}
|
||||
currentVendor.current = synthVendor;
|
||||
if (
|
||||
!synthesis ||
|
||||
synthVendor.startsWith("custom:") ||
|
||||
synthVendor === VENDOR_DEEPGRAM
|
||||
!user ||
|
||||
(user?.scope === USER_ADMIN &&
|
||||
!currentServiceProvider?.service_provider_sid)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
const voiceOpts = synthesis[synthVendor as keyof SynthesisVendors]
|
||||
.filter((lang: VoiceLanguage) => {
|
||||
// ELEVENLABS has same voice for all lange, take voices from the 1st language
|
||||
// Only first language has voices, the rest has empty voices
|
||||
if (synthVendor === VENDOR_ELEVENLABS && lang.voices.length > 0) {
|
||||
return true;
|
||||
}
|
||||
return lang.code === synthLang;
|
||||
})
|
||||
.flatMap((lang: VoiceLanguage) =>
|
||||
lang.voices.map((voice: Voice) => ({
|
||||
name: voice.name,
|
||||
value: voice.value,
|
||||
}))
|
||||
) as Voice[];
|
||||
setSynthesisVoiceOptions(voiceOpts);
|
||||
configSynthesis();
|
||||
}, [synthVendor, synthLabel, currentServiceProvider]);
|
||||
|
||||
const langOpts = synthesis[synthVendor as keyof SynthesisVendors].map(
|
||||
(lang: VoiceLanguage) => ({
|
||||
name: lang.name,
|
||||
value: lang.code,
|
||||
})
|
||||
);
|
||||
setSynthesisLanguageOptions(langOpts);
|
||||
|
||||
if (synthVendor === VENDOR_ELEVENLABS) {
|
||||
postSpeechServiceVoices(
|
||||
currentServiceProvider
|
||||
? currentServiceProvider.service_provider_sid
|
||||
: "",
|
||||
{
|
||||
vendor: synthVendor,
|
||||
label: synthLabel,
|
||||
}
|
||||
).then(({ json }) => {
|
||||
// If after successfully fetching data, vendor is still good, then apply value
|
||||
if (currentVendor.current !== VENDOR_ELEVENLABS) {
|
||||
return;
|
||||
}
|
||||
if (json.length > 0) {
|
||||
setSynthesisVoiceOptions(json);
|
||||
}
|
||||
});
|
||||
|
||||
postSpeechServiceLanguages(
|
||||
currentServiceProvider
|
||||
? currentServiceProvider.service_provider_sid
|
||||
: "",
|
||||
{
|
||||
vendor: synthVendor,
|
||||
label: synthLabel,
|
||||
}
|
||||
).then(({ json }) => {
|
||||
if (json.length > 0) {
|
||||
setSynthesisLanguageOptions(json);
|
||||
}
|
||||
});
|
||||
} else if (synthVendor === VENDOR_GOOGLE) {
|
||||
getGoogleCustomVoices({
|
||||
...(synthLabel && { label: synthLabel }),
|
||||
account_sid: accountSid,
|
||||
service_provider_sid: serviceProviderSid,
|
||||
}).then(({ json }) => {
|
||||
// If after successfully fetching data, vendor is still good, then apply value
|
||||
if (currentVendor.current !== VENDOR_GOOGLE) {
|
||||
return;
|
||||
}
|
||||
const customVOices = json.map((v) => ({
|
||||
name: `${v.name} (Custom)`,
|
||||
value: `custom_${v.google_custom_voice_sid}`,
|
||||
}));
|
||||
const options = synthesis[synthVendor as keyof SynthesisVendors]
|
||||
.filter((lang: VoiceLanguage) => {
|
||||
return lang.code === synthLang;
|
||||
})
|
||||
.flatMap((lang: VoiceLanguage) =>
|
||||
lang.voices.map((voice: Voice) => ({
|
||||
name: voice.name,
|
||||
value: voice.value,
|
||||
}))
|
||||
) as Voice[];
|
||||
setSynthesisVoiceOptions([...customVOices, ...options]);
|
||||
if (customVOices.length > 0) {
|
||||
setSynthVoice(customVOices[0].value);
|
||||
}
|
||||
});
|
||||
// Get Recognizer languages and voices
|
||||
useEffect(() => {
|
||||
/** When Custom Vendor is used, user you have to input the lange and voice. */
|
||||
if (recogVendor.toString().startsWith(VENDOR_CUSTOM)) {
|
||||
setRecogLang(LANG_EN_US);
|
||||
return;
|
||||
}
|
||||
}, [
|
||||
synthVendor,
|
||||
synthesis,
|
||||
synthLabel,
|
||||
accountSid,
|
||||
serviceProviderSid,
|
||||
synthLang,
|
||||
]);
|
||||
if (
|
||||
!user ||
|
||||
(user?.scope === USER_ADMIN &&
|
||||
!currentServiceProvider?.service_provider_sid)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
configRecognizer();
|
||||
}, [recogVendor, recogLabel, currentServiceProvider]);
|
||||
|
||||
useEffect(() => {
|
||||
if (credentials) {
|
||||
@@ -218,294 +156,355 @@ export const SpeechProviderSelection = ({
|
||||
setRecogLabel(sttLabelOptions[0].value);
|
||||
}
|
||||
}, [ttsLabelOptions, sttLabelOptions]);
|
||||
|
||||
const configSynthesis = () => {
|
||||
getSpeechSupportedLanguagesAndVoices(
|
||||
currentServiceProvider?.service_provider_sid,
|
||||
synthVendor,
|
||||
synthLabel
|
||||
)
|
||||
.then(({ json }) => {
|
||||
setSynthesisSupportedLanguagesAndVoices(json);
|
||||
// Extract model
|
||||
if (json.models && json.models.length) {
|
||||
setSynthesisModelOptions(json.models);
|
||||
if (synthVendor === VENDOR_DEEPGRAM) {
|
||||
setSynthVoice(json.models[0].value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (json.tts && json.tts.length) {
|
||||
// Extract Language
|
||||
const langOpts = json.tts.map((lang) => ({
|
||||
name: lang.name,
|
||||
value: lang.value,
|
||||
}));
|
||||
const nLang = langOpts.length ? langOpts[0].value : "";
|
||||
setSynthesisLanguageOptions(langOpts);
|
||||
// Extract Voice
|
||||
const voicesOpts =
|
||||
json.tts.find((lang) => {
|
||||
if (synthVendor === VENDOR_ELEVENLABS && lang.voices.length > 0) {
|
||||
return true;
|
||||
}
|
||||
return lang.value === nLang;
|
||||
})?.voices || [];
|
||||
setSynthesisVoiceOptions(voicesOpts);
|
||||
|
||||
if (synthVendor === VENDOR_GOOGLE) {
|
||||
getGoogleCustomVoices({
|
||||
...(synthLabel && { label: synthLabel }),
|
||||
account_sid: accountSid,
|
||||
service_provider_sid: serviceProviderSid,
|
||||
}).then(({ json }) => {
|
||||
// If after successfully fetching data, vendor is still good, then apply value
|
||||
if (currentVendor.current !== VENDOR_GOOGLE) {
|
||||
return;
|
||||
}
|
||||
const customVOices = json.map((v) => ({
|
||||
name: `${v.name} (Custom)`,
|
||||
value: `custom_${v.google_custom_voice_sid}`,
|
||||
}));
|
||||
setSynthesisGoogleCustomVoiceOptions(customVOices);
|
||||
setSynthesisVoiceOptions([...customVOices, ...voicesOpts]);
|
||||
if (customVOices.length > 0) {
|
||||
setSynthVoice(customVOices[0].value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Default setting
|
||||
if (synthVendor === VENDOR_GOOGLE && synthLang === LANG_EN_US) {
|
||||
setSynthVoice(LANG_EN_US_STANDARD_C);
|
||||
return;
|
||||
}
|
||||
if (synthVendor === VENDOR_ELEVENLABS) {
|
||||
// Samve Voices applied to all languages
|
||||
// Voices are only available for the 1st language.
|
||||
setSynthLang(ELEVENLABS_LANG_EN);
|
||||
setSynthVoice(voicesOpts[0].value);
|
||||
return;
|
||||
}
|
||||
if (synthVendor === VENDOR_WHISPER) {
|
||||
const newLang = json.tts.find((lang) => lang.value === LANG_EN_US);
|
||||
setSynthLang(LANG_EN_US);
|
||||
setSynthVoice(newLang!.voices[0].value);
|
||||
return;
|
||||
}
|
||||
/** Google and AWS have different language lists */
|
||||
/** If the new language doesn't map then default to "en-US" */
|
||||
let newLang = json.tts.find((lang) => lang.value === synthLang);
|
||||
|
||||
if (newLang) {
|
||||
setSynthVoice(newLang.voices[0].value);
|
||||
return;
|
||||
}
|
||||
|
||||
newLang = json.tts.find((lang) => lang.value === LANG_EN_US);
|
||||
|
||||
setSynthLang(LANG_EN_US);
|
||||
setSynthVoice(newLang!.voices[0].value);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
toastError(error.msg);
|
||||
});
|
||||
};
|
||||
|
||||
const configRecognizer = () => {
|
||||
getSpeechSupportedLanguagesAndVoices(
|
||||
currentServiceProvider?.service_provider_sid,
|
||||
recogVendor,
|
||||
recogLabel
|
||||
)
|
||||
.then(({ json }) => {
|
||||
// Extract Language
|
||||
const langOpts = json.stt.map((lang) => ({
|
||||
name: lang.name,
|
||||
value: lang.value,
|
||||
}));
|
||||
setRecogLanguageOptions(langOpts);
|
||||
|
||||
/**When vendor is custom, Language is input by user */
|
||||
if (recogVendor.toString() === VENDOR_CUSTOM) return;
|
||||
|
||||
/** Google and AWS have different language lists */
|
||||
/** If the new language doesn't map then default to "en-US" */
|
||||
const newLang = json.stt.find((lang) => lang.value === recogLang);
|
||||
|
||||
if (
|
||||
(recogVendor === VENDOR_GOOGLE || recogVendor === VENDOR_AWS) &&
|
||||
!newLang
|
||||
) {
|
||||
setRecogLang(LANG_EN_US);
|
||||
}
|
||||
// Default colbalt language
|
||||
if (recogVendor === VENDOR_COBALT) {
|
||||
setRecogLang(LANG_COBALT_EN_US);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
toastError(error.msg);
|
||||
});
|
||||
};
|
||||
return (
|
||||
<>
|
||||
{synthesis && (
|
||||
<fieldset>
|
||||
<label htmlFor="synthesis_vendor">Speech synthesis vendor</label>
|
||||
<Selector
|
||||
id="synthesis_vendor"
|
||||
name="synthesis_vendor"
|
||||
value={synthVendor}
|
||||
options={ttsVendorOptions.filter(
|
||||
(vendor) =>
|
||||
vendor.value != VENDOR_ASSEMBLYAI &&
|
||||
vendor.value != VENDOR_SONIOX &&
|
||||
vendor.value !== VENDOR_CUSTOM &&
|
||||
vendor.value !== VENDOR_COBALT
|
||||
)}
|
||||
onChange={(e) => {
|
||||
const vendor = e.target.value as keyof SynthesisVendors;
|
||||
setSynthVendor(vendor);
|
||||
setSynthLabel("");
|
||||
|
||||
/** When Custom Vendor is used, user you have to input the lange and voice. */
|
||||
if (vendor.toString().startsWith(VENDOR_CUSTOM)) {
|
||||
setSynthVoice("");
|
||||
return;
|
||||
}
|
||||
|
||||
/** DEEPGRAM only support voice */
|
||||
if (vendor.toString().startsWith(VENDOR_DEEPGRAM)) {
|
||||
if (ttsModels) {
|
||||
setSynthVoice(ttsModels[VENDOR_DEEPGRAM][0].value);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** When using Google and en-US, ensure "Standard-C" is used as default */
|
||||
if (
|
||||
e.target.value === VENDOR_GOOGLE &&
|
||||
synthLang === LANG_EN_US
|
||||
) {
|
||||
setSynthVoice(LANG_EN_US_STANDARD_C);
|
||||
return;
|
||||
}
|
||||
|
||||
if (vendor === VENDOR_ELEVENLABS) {
|
||||
// Samve Voices applied to all languages
|
||||
// Voices are only available for the 1st language.
|
||||
setSynthLang(ELEVENLABS_LANG_EN);
|
||||
setSynthVoice(synthesis[vendor][0].voices[0].value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (vendor === VENDOR_WHISPER) {
|
||||
const newLang = synthesis[vendor].find(
|
||||
(lang) => lang.code === LANG_EN_US
|
||||
);
|
||||
setSynthLang(LANG_EN_US);
|
||||
setSynthVoice(newLang!.voices[0].value);
|
||||
return;
|
||||
}
|
||||
|
||||
/** Google and AWS have different language lists */
|
||||
/** If the new language doesn't map then default to "en-US" */
|
||||
let newLang = synthesis[vendor].find(
|
||||
(lang) => lang.code === synthLang
|
||||
);
|
||||
|
||||
if (newLang) {
|
||||
setSynthVoice(newLang.voices[0].value);
|
||||
return;
|
||||
}
|
||||
|
||||
newLang = synthesis[vendor].find(
|
||||
(lang) => lang.code === LANG_EN_US
|
||||
);
|
||||
|
||||
setSynthLang(LANG_EN_US);
|
||||
setSynthVoice(newLang!.voices[0].value);
|
||||
}}
|
||||
/>
|
||||
{hasLength(ttsLabelOptions) && (
|
||||
<>
|
||||
<label htmlFor="synthesis_label">Label</label>
|
||||
<Selector
|
||||
id="systhesis_label"
|
||||
name="systhesis_label"
|
||||
value={synthLabel}
|
||||
options={ttsLabelOptions}
|
||||
onChange={(e) => {
|
||||
setSynthLabel(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
<fieldset>
|
||||
<label htmlFor="synthesis_vendor">Speech synthesis vendor</label>
|
||||
<Selector
|
||||
id="synthesis_vendor"
|
||||
name="synthesis_vendor"
|
||||
value={synthVendor}
|
||||
options={ttsVendorOptions.filter(
|
||||
(vendor) =>
|
||||
vendor.value != VENDOR_ASSEMBLYAI &&
|
||||
vendor.value != VENDOR_SONIOX &&
|
||||
vendor.value !== VENDOR_CUSTOM &&
|
||||
vendor.value !== VENDOR_COBALT
|
||||
)}
|
||||
{ttsModels && synthVendor === VENDOR_DEEPGRAM && (
|
||||
onChange={(e) => {
|
||||
const vendor = e.target.value as keyof SynthesisVendors;
|
||||
setSynthVendor(vendor);
|
||||
setSynthLabel("");
|
||||
setSynthesisLanguageOptions([]);
|
||||
setSynthesisVoiceOptions([]);
|
||||
}}
|
||||
/>
|
||||
{hasLength(ttsLabelOptions) && (
|
||||
<>
|
||||
<label htmlFor="synthesis_label">Label</label>
|
||||
<Selector
|
||||
id="systhesis_label"
|
||||
name="systhesis_label"
|
||||
value={synthLabel}
|
||||
options={ttsLabelOptions}
|
||||
onChange={(e) => {
|
||||
setSynthLabel(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{synthesisModelOptions && synthVendor === VENDOR_DEEPGRAM && (
|
||||
<>
|
||||
<label htmlFor="synthesis_lang">Model</label>
|
||||
<Selector
|
||||
id="synthesis_voice"
|
||||
name="synthesis_voice"
|
||||
value={synthVoice}
|
||||
options={synthesisModelOptions}
|
||||
onChange={(e) => setSynthVoice(e.target.value)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{synthVendor &&
|
||||
!synthVendor.toString().startsWith(VENDOR_CUSTOM) &&
|
||||
synthVendor !== VENDOR_DEEPGRAM &&
|
||||
synthLang && (
|
||||
<>
|
||||
<label htmlFor="synthesis_lang">Model</label>
|
||||
<label htmlFor="synthesis_lang">Language</label>
|
||||
<Selector
|
||||
id="synthesis_voice"
|
||||
name="synthesis_voice"
|
||||
value={synthVoice}
|
||||
options={ttsModels[synthVendor]}
|
||||
onChange={(e) => setSynthVoice(e.target.value)}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{synthVendor &&
|
||||
!synthVendor.toString().startsWith(VENDOR_CUSTOM) &&
|
||||
synthVendor !== VENDOR_DEEPGRAM &&
|
||||
synthLang && (
|
||||
<>
|
||||
<label htmlFor="synthesis_lang">Language</label>
|
||||
<Selector
|
||||
id="synthesis_lang"
|
||||
name="synthesis_lang"
|
||||
value={synthLang}
|
||||
options={synthesisLanguageOptions}
|
||||
onChange={(e) => {
|
||||
const language = e.target.value;
|
||||
setSynthLang(language);
|
||||
|
||||
/** When using Google and en-US, ensure "Standard-C" is used as default */
|
||||
if (
|
||||
synthVendor === VENDOR_GOOGLE &&
|
||||
language === LANG_EN_US
|
||||
) {
|
||||
setSynthVoice(LANG_EN_US_STANDARD_C);
|
||||
return;
|
||||
}
|
||||
|
||||
const newLang = synthesis[
|
||||
synthVendor as keyof SynthesisVendors
|
||||
].find((lang) => lang.code === language);
|
||||
|
||||
setSynthVoice(newLang!.voices[0].value);
|
||||
}}
|
||||
/>
|
||||
<label htmlFor="synthesis_voice">Voice</label>
|
||||
{synthVendor === VENDOR_MICROSOFT &&
|
||||
selectedCredential &&
|
||||
selectedCredential.use_custom_tts ? (
|
||||
<input
|
||||
id="custom_microsoft_synthesis_voice"
|
||||
type="text"
|
||||
name="custom_microsoft_synthesis_voice"
|
||||
placeholder="Required"
|
||||
required
|
||||
value={synthVoice}
|
||||
onChange={(e) => {
|
||||
setSynthVoice(e.target.value);
|
||||
}}
|
||||
/>
|
||||
) : (
|
||||
<Selector
|
||||
id="synthesis_voice"
|
||||
name="synthesis_voice"
|
||||
value={synthVoice}
|
||||
options={synthesisVoiceOptions}
|
||||
onChange={(e) => setSynthVoice(e.target.value)}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
{synthVendor.toString().startsWith(VENDOR_CUSTOM) && (
|
||||
<>
|
||||
<label htmlFor="custom_vendor_synthesis_lang">Language</label>
|
||||
<input
|
||||
id="custom_vendor_synthesis_lang"
|
||||
type="text"
|
||||
name="custom_vendor_synthesis_lang"
|
||||
placeholder="Required"
|
||||
required
|
||||
id="synthesis_lang"
|
||||
name="synthesis_lang"
|
||||
value={synthLang}
|
||||
options={synthesisLanguageOptions}
|
||||
onChange={(e) => {
|
||||
setSynthLang(e.target.value);
|
||||
const language = e.target.value;
|
||||
setSynthLang(language);
|
||||
|
||||
/** When using Google and en-US, ensure "Standard-C" is used as default */
|
||||
if (
|
||||
synthVendor === VENDOR_GOOGLE &&
|
||||
language === LANG_EN_US
|
||||
) {
|
||||
setSynthVoice(LANG_EN_US_STANDARD_C);
|
||||
return;
|
||||
}
|
||||
|
||||
const voices =
|
||||
synthesisSupportedLanguagesAndVoices?.tts.find(
|
||||
(lang) => lang.value === language
|
||||
)?.voices || [];
|
||||
if (
|
||||
synthVendor === VENDOR_GOOGLE &&
|
||||
synthesisGoogleCustomVoiceOptions &&
|
||||
synthesisGoogleCustomVoiceOptions.length
|
||||
) {
|
||||
setSynthesisVoiceOptions([
|
||||
...synthesisGoogleCustomVoiceOptions,
|
||||
...voices,
|
||||
]);
|
||||
} else {
|
||||
setSynthesisVoiceOptions(voices);
|
||||
}
|
||||
|
||||
setSynthVoice(voices[0].value);
|
||||
}}
|
||||
/>
|
||||
|
||||
<label htmlFor="custom_vendor_synthesis_voice">Voice</label>
|
||||
<input
|
||||
id="custom_vendor_synthesis_voice"
|
||||
type="text"
|
||||
name="custom_vendor_synthesis_voice"
|
||||
placeholder="Required"
|
||||
required
|
||||
value={synthVoice}
|
||||
onChange={(e) => {
|
||||
setSynthVoice(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</fieldset>
|
||||
)}
|
||||
{recognizers && (
|
||||
<fieldset>
|
||||
<label htmlFor="recognizer_vendor">Speech recognizer vendor</label>
|
||||
<Selector
|
||||
id="recognizer_vendor"
|
||||
name="recognizer_vendor"
|
||||
value={recogVendor}
|
||||
options={sttVendorOptions.filter(
|
||||
(vendor) =>
|
||||
vendor.value != VENDOR_WELLSAID &&
|
||||
vendor.value != VENDOR_ELEVENLABS &&
|
||||
vendor.value != VENDOR_WHISPER &&
|
||||
vendor.value !== VENDOR_CUSTOM
|
||||
)}
|
||||
onChange={(e) => {
|
||||
const vendor = e.target.value as keyof RecognizerVendors;
|
||||
setRecogVendor(vendor);
|
||||
setRecogLabel("");
|
||||
|
||||
/**When vendor is custom, Language is input by user */
|
||||
if (vendor.toString() === VENDOR_CUSTOM) return;
|
||||
|
||||
/** Google and AWS have different language lists */
|
||||
/** If the new language doesn't map then default to "en-US" */
|
||||
const newLang = recognizers[vendor].find(
|
||||
(lang: Language) => lang.code === recogLang
|
||||
);
|
||||
|
||||
if (
|
||||
(vendor === VENDOR_GOOGLE || vendor === VENDOR_AWS) &&
|
||||
!newLang
|
||||
) {
|
||||
setRecogLang(LANG_EN_US);
|
||||
}
|
||||
// Default colbalt language
|
||||
if (vendor === VENDOR_COBALT) {
|
||||
setRecogLang(LANG_COBALT_EN_US);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
{hasLength(sttLabelOptions) && (
|
||||
<>
|
||||
<label htmlFor="recog_label">Label</label>
|
||||
<Selector
|
||||
id="recog_label"
|
||||
name="recog_label"
|
||||
value={recogLabel}
|
||||
options={sttLabelOptions}
|
||||
onChange={(e) => {
|
||||
setRecogLabel(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{recogVendor &&
|
||||
!recogVendor.toString().startsWith(VENDOR_CUSTOM) &&
|
||||
recogLang && (
|
||||
<>
|
||||
<label htmlFor="recognizer_lang">Language</label>
|
||||
<Selector
|
||||
id="recognizer_lang"
|
||||
name="recognizer_lang"
|
||||
value={recogLang}
|
||||
options={recognizers[
|
||||
recogVendor as keyof RecognizerVendors
|
||||
].map((lang: Language) => ({
|
||||
name: lang.name,
|
||||
value: lang.code,
|
||||
}))}
|
||||
<label htmlFor="synthesis_voice">Voice</label>
|
||||
{synthVendor === VENDOR_MICROSOFT &&
|
||||
selectedCredential &&
|
||||
selectedCredential.use_custom_tts ? (
|
||||
<input
|
||||
id="custom_microsoft_synthesis_voice"
|
||||
type="text"
|
||||
name="custom_microsoft_synthesis_voice"
|
||||
placeholder="Required"
|
||||
required
|
||||
value={synthVoice}
|
||||
onChange={(e) => {
|
||||
setRecogLang(e.target.value);
|
||||
setSynthVoice(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{recogVendor.toString().startsWith(VENDOR_CUSTOM) && (
|
||||
) : (
|
||||
<Selector
|
||||
id="synthesis_voice"
|
||||
name="synthesis_voice"
|
||||
value={synthVoice}
|
||||
options={synthesisVoiceOptions}
|
||||
onChange={(e) => setSynthVoice(e.target.value)}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
{synthVendor.toString().startsWith(VENDOR_CUSTOM) && (
|
||||
<>
|
||||
<label htmlFor="custom_vendor_synthesis_lang">Language</label>
|
||||
<input
|
||||
id="custom_vendor_synthesis_lang"
|
||||
type="text"
|
||||
name="custom_vendor_synthesis_lang"
|
||||
placeholder="Required"
|
||||
required
|
||||
value={synthLang}
|
||||
onChange={(e) => {
|
||||
setSynthLang(e.target.value);
|
||||
}}
|
||||
/>
|
||||
|
||||
<label htmlFor="custom_vendor_synthesis_voice">Voice</label>
|
||||
<input
|
||||
id="custom_vendor_synthesis_voice"
|
||||
type="text"
|
||||
name="custom_vendor_synthesis_voice"
|
||||
placeholder="Required"
|
||||
required
|
||||
value={synthVoice}
|
||||
onChange={(e) => {
|
||||
setSynthVoice(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<label htmlFor="recognizer_vendor">Speech recognizer vendor</label>
|
||||
<Selector
|
||||
id="recognizer_vendor"
|
||||
name="recognizer_vendor"
|
||||
value={recogVendor}
|
||||
options={sttVendorOptions.filter(
|
||||
(vendor) =>
|
||||
vendor.value != VENDOR_WELLSAID &&
|
||||
vendor.value != VENDOR_ELEVENLABS &&
|
||||
vendor.value != VENDOR_WHISPER &&
|
||||
vendor.value !== VENDOR_CUSTOM
|
||||
)}
|
||||
onChange={(e) => {
|
||||
const vendor = e.target.value as keyof RecognizerVendors;
|
||||
setRecogVendor(vendor);
|
||||
setRecogLabel("");
|
||||
|
||||
setRecogLanguageOptions([]);
|
||||
}}
|
||||
/>
|
||||
{hasLength(sttLabelOptions) && (
|
||||
<>
|
||||
<label htmlFor="recog_label">Label</label>
|
||||
<Selector
|
||||
id="recog_label"
|
||||
name="recog_label"
|
||||
value={recogLabel}
|
||||
options={sttLabelOptions}
|
||||
onChange={(e) => {
|
||||
setRecogLabel(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
{recogVendor &&
|
||||
!recogVendor.toString().startsWith(VENDOR_CUSTOM) &&
|
||||
recogLang && (
|
||||
<>
|
||||
<label htmlFor="custom_vendor_recognizer_voice">Language</label>
|
||||
<input
|
||||
id="custom_vendor_recognizer_voice"
|
||||
type="text"
|
||||
name="custom_vendor_recognizer_voice"
|
||||
placeholder="Required"
|
||||
required
|
||||
<label htmlFor="recognizer_lang">Language</label>
|
||||
<Selector
|
||||
id="recognizer_lang"
|
||||
name="recognizer_lang"
|
||||
value={recogLang}
|
||||
options={recogLanguageOptions}
|
||||
onChange={(e) => {
|
||||
setRecogLang(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</fieldset>
|
||||
)}
|
||||
{recogVendor.toString().startsWith(VENDOR_CUSTOM) && (
|
||||
<>
|
||||
<label htmlFor="custom_vendor_recognizer_voice">Language</label>
|
||||
<input
|
||||
id="custom_vendor_recognizer_voice"
|
||||
type="text"
|
||||
name="custom_vendor_recognizer_voice"
|
||||
placeholder="Required"
|
||||
required
|
||||
value={recogLang}
|
||||
onChange={(e) => {
|
||||
setRecogLang(e.target.value);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</fieldset>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -16,6 +16,7 @@ import { toastError, toastSuccess, useSelectState } from "src/store";
|
||||
import {
|
||||
deleteGoogleCustomVoice,
|
||||
getGoogleCustomVoices,
|
||||
getSpeechSupportedLanguagesAndVoices,
|
||||
postGoogleCustomVoice,
|
||||
postSpeechService,
|
||||
putGoogleCustomVoice,
|
||||
@@ -39,7 +40,6 @@ import {
|
||||
VENDOR_ELEVENLABS,
|
||||
VENDOR_ASSEMBLYAI,
|
||||
VENDOR_WHISPER,
|
||||
useTtsModels,
|
||||
} from "src/vendor";
|
||||
import { MSG_REQUIRED_FIELDS } from "src/constants";
|
||||
import {
|
||||
@@ -56,7 +56,7 @@ import type {
|
||||
RegionVendors,
|
||||
GoogleServiceKey,
|
||||
Vendor,
|
||||
TtsModels,
|
||||
Model,
|
||||
} from "src/vendor/types";
|
||||
import type {
|
||||
Account,
|
||||
@@ -140,7 +140,7 @@ export const SpeechServiceForm = ({ credential }: SpeechServiceFormProps) => {
|
||||
const [useCustomVoicesCheck, setUseCustomVoicesCheck] = useState(false);
|
||||
const [customVoices, setCustomVoices] = useState<GoogleCustomVoice[]>([]);
|
||||
const [customVoicesMessage, setCustomVoicesMessage] = useState("");
|
||||
const ttsModels = useTtsModels();
|
||||
const [ttsModels, setTtsModels] = useState<Model[]>([]);
|
||||
const [optionsInitialChecked, setOptionsInitialChecked] = useState(false);
|
||||
const [options, setOptions] = useState("");
|
||||
const [tmpOptions, setTmpOptions] = useState("");
|
||||
@@ -366,6 +366,22 @@ export const SpeechServiceForm = ({ credential }: SpeechServiceFormProps) => {
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (vendor === VENDOR_ELEVENLABS || vendor === VENDOR_WHISPER) {
|
||||
getSpeechSupportedLanguagesAndVoices(
|
||||
currentServiceProvider?.service_provider_sid,
|
||||
vendor,
|
||||
""
|
||||
).then(({ json }) => {
|
||||
if (json.models) {
|
||||
setTtsModels(json.models);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
setTtsModels([]);
|
||||
}
|
||||
}, [vendor]);
|
||||
|
||||
useEffect(() => {
|
||||
setLocation();
|
||||
if (credential && credential.data) {
|
||||
@@ -582,13 +598,11 @@ export const SpeechServiceForm = ({ credential }: SpeechServiceFormProps) => {
|
||||
setApiKey("");
|
||||
setGoogleServiceKey(null);
|
||||
if (
|
||||
ttsModels &&
|
||||
ttsModels.length > 0 &&
|
||||
(e.target.value === VENDOR_ELEVENLABS ||
|
||||
e.target.value === VENDOR_WHISPER)
|
||||
) {
|
||||
setTtsModelId(
|
||||
ttsModels[e.target.value as keyof TtsModels][0].value
|
||||
);
|
||||
setTtsModelId(ttsModels[0].value);
|
||||
}
|
||||
}}
|
||||
disabled={credential ? true : false}
|
||||
@@ -1120,14 +1134,14 @@ export const SpeechServiceForm = ({ credential }: SpeechServiceFormProps) => {
|
||||
</fieldset>
|
||||
)}
|
||||
{(vendor == VENDOR_ELEVENLABS || vendor == VENDOR_WHISPER) &&
|
||||
ttsModels && (
|
||||
ttsModels.length > 0 && (
|
||||
<fieldset>
|
||||
<label htmlFor={`${vendor}_tts_model_id`}>Model</label>
|
||||
<Selector
|
||||
id={"tts_model_id"}
|
||||
name={"tts_model_id"}
|
||||
value={ttsModelId}
|
||||
options={ttsModels[vendor as keyof TtsModels]}
|
||||
options={ttsModels}
|
||||
onChange={(e) => {
|
||||
setTtsModelId(e.target.value);
|
||||
}}
|
||||
|
||||
Vendored
+1
-130
@@ -1,12 +1,6 @@
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
import type {
|
||||
VendorOptions,
|
||||
SynthesisVendors,
|
||||
RecognizerVendors,
|
||||
RegionVendors,
|
||||
TtsModels,
|
||||
} from "./types";
|
||||
import type { VendorOptions, RegionVendors } from "./types";
|
||||
|
||||
export const LANG_EN_US = "en-US";
|
||||
export const ELEVENLABS_LANG_EN = "en";
|
||||
@@ -86,38 +80,6 @@ export const vendors: VendorOptions[] = [
|
||||
},
|
||||
].sort((a, b) => a.name.localeCompare(b.name)) as VendorOptions[];
|
||||
|
||||
export const useTtsModels = () => {
|
||||
const [models, setModels] = useState<TtsModels>();
|
||||
|
||||
useEffect(() => {
|
||||
let ignore = false;
|
||||
Promise.all([
|
||||
import("./speech-synthsis-models/elevenlabs-models"),
|
||||
import("./speech-synthsis-models/whisper-models"),
|
||||
import("./speech-synthsis-models/deepgram-models"),
|
||||
]).then(
|
||||
([
|
||||
{ default: elevenlabs },
|
||||
{ default: whisper },
|
||||
{ default: deepgram },
|
||||
]) => {
|
||||
if (!ignore) {
|
||||
setModels({
|
||||
elevenlabs,
|
||||
whisper,
|
||||
deepgram,
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
return function cleanup() {
|
||||
ignore = true;
|
||||
};
|
||||
}, []);
|
||||
|
||||
return models;
|
||||
};
|
||||
|
||||
export const useRegionVendors = () => {
|
||||
const [regions, setRegions] = useState<RegionVendors>();
|
||||
|
||||
@@ -151,94 +113,3 @@ export const useRegionVendors = () => {
|
||||
|
||||
return regions;
|
||||
};
|
||||
|
||||
export const useSpeechVendors = () => {
|
||||
const [speech, setSpeech] = useState<{
|
||||
synthesis?: SynthesisVendors;
|
||||
recognizers?: RecognizerVendors;
|
||||
}>({});
|
||||
|
||||
useEffect(() => {
|
||||
let ignore = false;
|
||||
|
||||
Promise.all([
|
||||
import("./speech-recognizer/aws-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/google-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/ms-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/nuance-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/deepgram-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/ibm-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/nvidia-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/soniox-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/cobalt-speech-recognizer-lang"),
|
||||
import("./speech-recognizer/assemblyai-speech-recognizer-lang"),
|
||||
import("./speech-synthesis/aws-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/google-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/ms-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/wellsaid-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/nuance-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/ibm-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/nvidia-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/elevellabs-speech-synthesis-lang"),
|
||||
import("./speech-synthesis/whisper-speech-synthesis-lang"),
|
||||
]).then(
|
||||
([
|
||||
{ default: awsRecognizer },
|
||||
{ default: googleRecognizer },
|
||||
{ default: msRecognizer },
|
||||
{ default: nuanceRecognizer },
|
||||
{ default: deepgramRecognizer },
|
||||
{ default: ibmRecognizer },
|
||||
{ default: nvidiaRecognizer },
|
||||
{ default: sonioxRecognizer },
|
||||
{ default: cobaltRecognizer },
|
||||
{ default: assemblyaiRecognizer },
|
||||
{ default: awsSynthesis },
|
||||
{ default: googleSynthesis },
|
||||
{ default: msSynthesis },
|
||||
{ default: wellsaidSynthesis },
|
||||
{ default: nuanceSynthesis },
|
||||
{ default: ibmSynthesis },
|
||||
{ default: nvidiaynthesis },
|
||||
{ default: elevenLabsSynthesis },
|
||||
{ default: whisperSynthesis },
|
||||
]) => {
|
||||
if (!ignore) {
|
||||
setSpeech({
|
||||
synthesis: {
|
||||
aws: awsSynthesis,
|
||||
google: googleSynthesis,
|
||||
microsoft: msSynthesis,
|
||||
wellsaid: wellsaidSynthesis,
|
||||
nuance: nuanceSynthesis,
|
||||
ibm: ibmSynthesis,
|
||||
nvidia: nvidiaynthesis,
|
||||
elevenlabs: elevenLabsSynthesis,
|
||||
whisper: whisperSynthesis,
|
||||
// Deepgram just have model which includes language, voice
|
||||
deepgram: [],
|
||||
},
|
||||
recognizers: {
|
||||
aws: awsRecognizer,
|
||||
google: googleRecognizer,
|
||||
microsoft: msRecognizer,
|
||||
nuance: nuanceRecognizer,
|
||||
deepgram: deepgramRecognizer,
|
||||
ibm: ibmRecognizer,
|
||||
nvidia: nvidiaRecognizer,
|
||||
soniox: sonioxRecognizer,
|
||||
cobalt: cobaltRecognizer,
|
||||
assemblyai: assemblyaiRecognizer,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return function cleanup() {
|
||||
ignore = true;
|
||||
};
|
||||
}, []);
|
||||
|
||||
return speech;
|
||||
};
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{ name: "Global English", code: "en" },
|
||||
{ name: "Australian English", code: "en_au" },
|
||||
{ name: "British English", code: "en_uk" },
|
||||
{ name: "US English", code: "en_us" },
|
||||
{ name: "Spanish", code: "es" },
|
||||
{ name: "French", code: "fr" },
|
||||
{ name: "German", code: "de" },
|
||||
{ name: "Italian", code: "it" },
|
||||
{ name: "Portuguese", code: "pt" },
|
||||
{ name: "Dutch", code: "nl" },
|
||||
{ name: "Hindi", code: "hi" },
|
||||
{ name: "Japanese", code: "ja" },
|
||||
{ name: "Chinese", code: "zh" },
|
||||
{ name: "Finnish", code: "fi" },
|
||||
{ name: "Korean", code: "ko" },
|
||||
{ name: "Polish", code: "pl" },
|
||||
{ name: "Russian", code: "ru" },
|
||||
{ name: "Turkish", code: "tr" },
|
||||
{ name: "Ukrainian", code: "uk" },
|
||||
{ name: "Vietnamese", code: "vi" },
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,14 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{ name: "Australian English", code: "en-AU" },
|
||||
{ name: "British English", code: "en-GB" },
|
||||
{ name: "US English", code: "en-US" },
|
||||
{ name: "French", code: "fr-FR" },
|
||||
{ name: "Canadian French", code: "fr-CA" },
|
||||
{ name: "German", code: "de-DE" },
|
||||
{ name: "Italian", code: "it-IT" },
|
||||
{ name: "US Spanish", code: "es-US" },
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,30 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "English US",
|
||||
code: "en_US-8khz",
|
||||
},
|
||||
{
|
||||
name: "English UK",
|
||||
code: "en_UK-8khz",
|
||||
},
|
||||
{
|
||||
name: "Spanish",
|
||||
code: "es_xx-8khz",
|
||||
},
|
||||
{
|
||||
name: "French",
|
||||
code: "fr_fr-8khz",
|
||||
},
|
||||
{
|
||||
name: "Russian",
|
||||
code: "ru_ru-8khz",
|
||||
},
|
||||
{
|
||||
name: "Portuguese",
|
||||
code: "pt_br-8khz",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,142 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "Chinese - general",
|
||||
code: "zh",
|
||||
},
|
||||
{
|
||||
name: "Chinese (China)",
|
||||
code: "zh-CN",
|
||||
},
|
||||
{
|
||||
name: "Chinese (Taiwan)",
|
||||
code: "zh-TW",
|
||||
},
|
||||
{
|
||||
name: "Dutch - general",
|
||||
code: "nl",
|
||||
},
|
||||
{
|
||||
name: "English - general",
|
||||
code: "en",
|
||||
},
|
||||
{
|
||||
name: "English (Australia)",
|
||||
code: "en-AU",
|
||||
},
|
||||
{
|
||||
name: "English (United Kingdom)",
|
||||
code: "en-GB",
|
||||
},
|
||||
{
|
||||
name: "English (India)",
|
||||
code: "en-IN",
|
||||
},
|
||||
{
|
||||
name: "English (New Zealand)",
|
||||
code: "en-NZ",
|
||||
},
|
||||
{
|
||||
name: "English (United States)",
|
||||
code: "en-US",
|
||||
},
|
||||
{
|
||||
name: "French - general",
|
||||
code: "fr",
|
||||
},
|
||||
{
|
||||
name: "French (Canada)",
|
||||
code: "fr-CA",
|
||||
},
|
||||
{
|
||||
name: "German - general",
|
||||
code: "de",
|
||||
},
|
||||
{
|
||||
name: "Hindi - general",
|
||||
code: "hi",
|
||||
},
|
||||
{
|
||||
name: "Hindi (Roman Script)",
|
||||
code: "hi-Latin",
|
||||
},
|
||||
{
|
||||
name: "Indonesian - general",
|
||||
code: "in",
|
||||
},
|
||||
{
|
||||
name: "Italian - general",
|
||||
code: "it",
|
||||
},
|
||||
{
|
||||
name: "Japanese - general",
|
||||
code: "ja",
|
||||
},
|
||||
{
|
||||
name: "Korean - general",
|
||||
code: "ko",
|
||||
},
|
||||
{
|
||||
name: "Norwegian - general",
|
||||
code: "no",
|
||||
},
|
||||
{
|
||||
name: "Polish - general",
|
||||
code: "pl",
|
||||
},
|
||||
{
|
||||
name: "Portuguese - general",
|
||||
code: "pt",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Brazil)",
|
||||
code: "pt-BR",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Portugal)",
|
||||
code: "pt-PT",
|
||||
},
|
||||
{
|
||||
name: "Russian - general",
|
||||
code: "ru",
|
||||
},
|
||||
{
|
||||
name: "Spanish - general",
|
||||
code: "es",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Latin America)",
|
||||
code: "es-419",
|
||||
},
|
||||
{
|
||||
name: "Swedish - general",
|
||||
code: "sv",
|
||||
},
|
||||
{
|
||||
name: "Turkish - general",
|
||||
code: "tr",
|
||||
},
|
||||
{
|
||||
name: "Ukrainian - general",
|
||||
code: "uk",
|
||||
},
|
||||
{
|
||||
name: "Flemish - general",
|
||||
code: "nl-BE",
|
||||
},
|
||||
{
|
||||
name: "Danish - general",
|
||||
code: "da",
|
||||
},
|
||||
{
|
||||
name: "Tamil - general",
|
||||
code: "ta",
|
||||
},
|
||||
{
|
||||
name: "Tamasheq - general",
|
||||
code: "taq",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,134 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{ name: "Afrikaans (South Africa)", code: "af-ZA" },
|
||||
{ name: "Albanian (Albania)", code: "sq-AL" },
|
||||
{ name: "Amharic (Ethiopia)", code: "am-ET" },
|
||||
{ name: "Arabic (Algeria)", code: "ar-DZ" },
|
||||
{ name: "Arabic (Bahrain)", code: "ar-BH" },
|
||||
{ name: "Arabic (Egypt)", code: "ar-EG" },
|
||||
{ name: "Arabic (Iraq)", code: "ar-IQ" },
|
||||
{ name: "Arabic (Israel)", code: "ar-IL" },
|
||||
{ name: "Arabic (Jordan)", code: "ar-JO" },
|
||||
{ name: "Arabic (Kuwait)", code: "ar-KW" },
|
||||
{ name: "Arabic (Lebanon)", code: "ar-LB" },
|
||||
{ name: "Arabic (Morocco)", code: "ar-MA" },
|
||||
{ name: "Arabic (Oman)", code: "ar-OM" },
|
||||
{ name: "Arabic (Qatar)", code: "ar-QA" },
|
||||
{ name: "Arabic (Saudi Arabia)", code: "ar-SA" },
|
||||
{ name: "Arabic (State of Palestine)", code: "ar-PS" },
|
||||
{ name: "Arabic (Tunisia)", code: "ar-TN" },
|
||||
{ name: "Arabic (United Arab Emirates)", code: "ar-AE" },
|
||||
{ name: "Armenian (Armenia)", code: "hy-AM" },
|
||||
{ name: "Azerbaijani (Azerbaijan)", code: "az-AZ" },
|
||||
{ name: "Basque (Spain)", code: "eu-ES" },
|
||||
{ name: "Bengali (Bangladesh)", code: "bn-BD" },
|
||||
{ name: "Bengali (India)", code: "bn-IN" },
|
||||
{ name: "Bulgarian (Bulgaria)", code: "bg-BG" },
|
||||
{ name: "Burmese (Myanmar)", code: "my-MM" },
|
||||
{ name: "Catalan (Spain)", code: "ca-ES" },
|
||||
{ name: "Chinese, Cantonese (Traditional, Hong Kong)", code: "yue-Hant-HK" },
|
||||
{ name: "Chinese, Mandarin (Simplified, China)", code: "zh" },
|
||||
{ name: "Chinese, Mandarin (Simplified, Hong Kong)", code: "zh-HK" },
|
||||
{ name: "Chinese, Mandarin (Simplified, Taiwan)", code: "zh-TW" },
|
||||
{ name: "Croatian (Croatia)", code: "hr-HR" },
|
||||
{ name: "Czech (Czech Republic)", code: "cs-CZ" },
|
||||
{ name: "Danish (Denmark)", code: "da-DK" },
|
||||
{ name: "Dutch (Belgium)", code: "nl-BE" },
|
||||
{ name: "Dutch (Netherlands)", code: "nl-NL" },
|
||||
{ name: "English (Australia)", code: "en-AU" },
|
||||
{ name: "English (Canada)", code: "en-CA" },
|
||||
{ name: "English (Ghana)", code: "en-GH" },
|
||||
{ name: "English (India)", code: "en-IN" },
|
||||
{ name: "English (Ireland)", code: "en-IE" },
|
||||
{ name: "English (Kenya)", code: "en-KE" },
|
||||
{ name: "English (New Zealand)", code: "en-NZ" },
|
||||
{ name: "English (Nigeria)", code: "en-NG" },
|
||||
{ name: "English (Philippines)", code: "en-PH" },
|
||||
{ name: "English (Singapore)", code: "en-SG" },
|
||||
{ name: "English (South Africa)", code: "en-ZA" },
|
||||
{ name: "English (Tanzania)", code: "en-TZ" },
|
||||
{ name: "English (United Kingdom)", code: "en-GB" },
|
||||
{ name: "English (United States)", code: "en-US" },
|
||||
{ name: "Estonian (Estonia)", code: "et-EE" },
|
||||
{ name: "Filipino (Philippines)", code: "fil-PH" },
|
||||
{ name: "Finnish (Finland)", code: "fi-FI" },
|
||||
{ name: "French (Canada)", code: "fr-CA" },
|
||||
{ name: "French (France)", code: "fr-FR" },
|
||||
{ name: "Galician (Spain)", code: "gl-ES" },
|
||||
{ name: "Georgian (Georgia)", code: "ka-GE" },
|
||||
{ name: "German (Germany)", code: "de-DE" },
|
||||
{ name: "Greek (Greece)", code: "el-GR" },
|
||||
{ name: "Gujarati (India)", code: "gu-IN" },
|
||||
{ name: "Hebrew (Israel)", code: "he-IL" },
|
||||
{ name: "Hindi (India)", code: "hi-IN" },
|
||||
{ name: "Hungarian (Hungary)", code: "hu-HU" },
|
||||
{ name: "Icelandic (Iceland)", code: "is-IS" },
|
||||
{ name: "Indonesian (Indonesia)", code: "id-ID" },
|
||||
{ name: "Italian (Italy)", code: "it-IT" },
|
||||
{ name: "Japanese (Japan)", code: "ja-JP" },
|
||||
{ name: "Javanese (Indonesia)", code: "jv-ID" },
|
||||
{ name: "Kannada (India)", code: "kn-IN" },
|
||||
{ name: "Khmer (Cambodia)", code: "km-KH" },
|
||||
{ name: "Korean (South Korea)", code: "ko-KR" },
|
||||
{ name: "Lao (Laos)", code: "lo-LA" },
|
||||
{ name: "Latvian (Latvia)", code: "lv-LV" },
|
||||
{ name: "Lithuanian (Lithuania)", code: "lt-LT" },
|
||||
{ name: "Macedonian (North Macedonia)", code: "mk-MK" },
|
||||
{ name: "Malay (Malaysia)", code: "ms-MY" },
|
||||
{ name: "Malayalam (India)", code: "ml-IN" },
|
||||
{ name: "Marathi (India)", code: "mr-IN" },
|
||||
{ name: "Mongolian (Mongolia)", code: "mn-MN" },
|
||||
{ name: "Nepali (Nepal)", code: "ne-NP" },
|
||||
{ name: "Norwegian Bokmål (Norway)", code: "nb-NO" },
|
||||
{ name: "Persian (Iran)", code: "fa-IR" },
|
||||
{ name: "Polish (Poland)", code: "pl-PL" },
|
||||
{ name: "Portuguese (Brazil)", code: "pt-BR" },
|
||||
{ name: "Portuguese (Portugal)", code: "pt-PT" },
|
||||
{ name: "Punjabi (Gurmukhi, India)", code: "pa-guru-IN" },
|
||||
{ name: "Romanian (Romania)", code: "ro-RO" },
|
||||
{ name: "Russian (Russia)", code: "ru-RU" },
|
||||
{ name: "Serbian (Serbia)", code: "sr-RS" },
|
||||
{ name: "Sinhala (Sri Lanka)", code: "si-LK" },
|
||||
{ name: "Slovak (Slovakia)", code: "sk-SK" },
|
||||
{ name: "Slovenian (Slovenia)", code: "sl-SI" },
|
||||
{ name: "Spanish (Argentina)", code: "es-AR" },
|
||||
{ name: "Spanish (Bolivia)", code: "es-BO" },
|
||||
{ name: "Spanish (Chile)", code: "es-CL" },
|
||||
{ name: "Spanish (Colombia)", code: "es-CO" },
|
||||
{ name: "Spanish (Costa Rica)", code: "es-CR" },
|
||||
{ name: "Spanish (Dominican Republic)", code: "es-DO" },
|
||||
{ name: "Spanish (Ecuador)", code: "es-EC" },
|
||||
{ name: "Spanish (El Salvador)", code: "es-SV" },
|
||||
{ name: "Spanish (Guatemala)", code: "es-GT" },
|
||||
{ name: "Spanish (Honduras)", code: "es-HN" },
|
||||
{ name: "Spanish (Mexico)", code: "es-MX" },
|
||||
{ name: "Spanish (Nicaragua)", code: "es-NI" },
|
||||
{ name: "Spanish (Panama)", code: "es-PA" },
|
||||
{ name: "Spanish (Paraguay)", code: "es-PY" },
|
||||
{ name: "Spanish (Peru)", code: "es-PE" },
|
||||
{ name: "Spanish (Puerto Rico)", code: "es-PR" },
|
||||
{ name: "Spanish (Spain)", code: "es-ES" },
|
||||
{ name: "Spanish (United States)", code: "es-US" },
|
||||
{ name: "Spanish (Uruguay)", code: "es-UY" },
|
||||
{ name: "Spanish (Venezuela)", code: "es-VE" },
|
||||
{ name: "Sundanese (Indonesia)", code: "su-ID" },
|
||||
{ name: "Swahili (Kenya)", code: "sw-KE" },
|
||||
{ name: "Swahili (Tanzania)", code: "sw-TZ" },
|
||||
{ name: "Swedish (Sweden)", code: "sv-SE" },
|
||||
{ name: "Tamil (India)", code: "ta-IN" },
|
||||
{ name: "Tamil (Malaysia)", code: "ta-MY" },
|
||||
{ name: "Tamil (Singapore)", code: "ta-SG" },
|
||||
{ name: "Tamil (Sri Lanka)", code: "ta-LK" },
|
||||
{ name: "Telugu (India)", code: "te-IN" },
|
||||
{ name: "Thai (Thailand)", code: "th-TH" },
|
||||
{ name: "Turkish (Turkey)", code: "tr-TR" },
|
||||
{ name: "Ukrainian (Ukraine)", code: "uk-UA" },
|
||||
{ name: "Urdu (India)", code: "ur-IN" },
|
||||
{ name: "Urdu (Pakistan)", code: "ur-PK" },
|
||||
{ name: "Uzbek (Uzbekistan)", code: "uz-UZ" },
|
||||
{ name: "Vietnamese (Vietnam)", code: "vi-VN" },
|
||||
{ name: "Zulu (South Africa)", code: "zu-ZA" },
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,86 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "Arabic (Modern Standard)",
|
||||
code: "ar-MS_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Chinese (Mandarin)",
|
||||
code: "zh-CN_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Czech ",
|
||||
code: "cs-CZ_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Dutch (Belgian)",
|
||||
code: "nl-BE_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Dutch (Netherlands)",
|
||||
code: "nl-NL_Telephony",
|
||||
},
|
||||
{
|
||||
name: "English (all supported dialects)",
|
||||
code: "en-WW_Medical_Telephony",
|
||||
},
|
||||
{
|
||||
name: "English (Australian)",
|
||||
code: "en-AU_Telephony",
|
||||
},
|
||||
{
|
||||
name: "English (Indian)",
|
||||
code: "en-IN_Telephony",
|
||||
},
|
||||
{
|
||||
name: "English (United Kingdom)",
|
||||
code: "en-GB_Telephony",
|
||||
},
|
||||
{
|
||||
name: "English (United States)",
|
||||
code: "en-US_Telephony",
|
||||
},
|
||||
{
|
||||
name: "French (Canadian)",
|
||||
code: "fr-CA_Telephony",
|
||||
},
|
||||
{
|
||||
name: "French (France)",
|
||||
code: "fr-FR_Telephony",
|
||||
},
|
||||
{
|
||||
name: "German",
|
||||
code: "de-DE_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Hindi (Indian)",
|
||||
code: "hi-IN_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Italian",
|
||||
code: "it-IT_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Korean",
|
||||
code: "ko-KR_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Brazilian)",
|
||||
code: "pt-BR_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Mexican)",
|
||||
code: "es-LA_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Castilian)",
|
||||
code: "es-ES_Telephony",
|
||||
},
|
||||
{
|
||||
name: "Swedish ",
|
||||
code: "sv-SE_Telephony",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,494 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "Afrikaans (South Africa)",
|
||||
code: "af-ZA",
|
||||
},
|
||||
{
|
||||
name: "Amharic (Ethiopia)",
|
||||
code: "am-ET",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Algeria)",
|
||||
code: "ar-DZ",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Bahrain)",
|
||||
code: "ar-BH",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Egypt)",
|
||||
code: "ar-EG",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Iraq)",
|
||||
code: "ar-IQ",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Israel)",
|
||||
code: "ar-IL",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Jordan)",
|
||||
code: "ar-JO",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Kuwait)",
|
||||
code: "ar-KW",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Lebanon)",
|
||||
code: "ar-LB",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Libya)",
|
||||
code: "ar-LY",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Morocco)",
|
||||
code: "ar-MA",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Oman)",
|
||||
code: "ar-OM",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Qatar)",
|
||||
code: "ar-QA",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Saudi Arabia)",
|
||||
code: "ar-SA",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Palestinian Authority)",
|
||||
code: "ar-PS",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Syria)",
|
||||
code: "ar-SY",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Tunisia)",
|
||||
code: "ar-TN",
|
||||
},
|
||||
{
|
||||
name: "Arabic (United Arab Emirates)",
|
||||
code: "ar-AE",
|
||||
},
|
||||
{
|
||||
name: "Arabic (Yemen)",
|
||||
code: "ar-YE",
|
||||
},
|
||||
{
|
||||
name: "Bulgarian (Bulgaria)",
|
||||
code: "bg-BG",
|
||||
},
|
||||
{
|
||||
name: "Bengali (India)",
|
||||
code: "bn-IN",
|
||||
},
|
||||
{
|
||||
name: "Catalan (Spain)",
|
||||
code: "ca-ES",
|
||||
},
|
||||
{
|
||||
name: "Chinese (Cantonese, Traditional)",
|
||||
code: "zh-HK",
|
||||
},
|
||||
{
|
||||
name: "Chinese (Mandarin, Simplified)",
|
||||
code: "zh-CN",
|
||||
},
|
||||
{
|
||||
name: "Chinese (Taiwanese Mandarin)",
|
||||
code: "zh-TW",
|
||||
},
|
||||
{
|
||||
name: "Croatian (Croatia)",
|
||||
code: "hr-HR",
|
||||
},
|
||||
{
|
||||
name: "Czech (Czech)",
|
||||
code: "cs-CZ",
|
||||
},
|
||||
{
|
||||
name: "Danish (Denmark)",
|
||||
code: "da-DK",
|
||||
},
|
||||
{
|
||||
name: "Dutch (Netherlands)",
|
||||
code: "nl-NL",
|
||||
},
|
||||
{
|
||||
name: "Dutch (Belgium)",
|
||||
code: "nl-BE",
|
||||
},
|
||||
{
|
||||
name: "English (Australia)",
|
||||
code: "en-AU",
|
||||
},
|
||||
{
|
||||
name: "English (Canada)",
|
||||
code: "en-CA",
|
||||
},
|
||||
{
|
||||
name: "English (Ghana)",
|
||||
code: "en-GH",
|
||||
},
|
||||
{
|
||||
name: "English (Hong Kong)",
|
||||
code: "en-HK",
|
||||
},
|
||||
{
|
||||
name: "English (India)",
|
||||
code: "en-IN",
|
||||
},
|
||||
{
|
||||
name: "English (Ireland)",
|
||||
code: "en-IE",
|
||||
},
|
||||
{
|
||||
name: "English (Kenya)",
|
||||
code: "en-KE",
|
||||
},
|
||||
{
|
||||
name: "English (New Zealand)",
|
||||
code: "en-NZ",
|
||||
},
|
||||
{
|
||||
name: "English (Nigeria)",
|
||||
code: "en-NG",
|
||||
},
|
||||
{
|
||||
name: "English (Philippines)",
|
||||
code: "en-PH",
|
||||
},
|
||||
{
|
||||
name: "English (Singapore)",
|
||||
code: "en-SG",
|
||||
},
|
||||
{
|
||||
name: "English (South Africa)",
|
||||
code: "en-ZA",
|
||||
},
|
||||
{
|
||||
name: "English (Tanzania)",
|
||||
code: "en-TZ",
|
||||
},
|
||||
{
|
||||
name: "English (United Kingdom)",
|
||||
code: "en-GB",
|
||||
},
|
||||
{
|
||||
name: "English (United States)",
|
||||
code: "en-US",
|
||||
},
|
||||
{
|
||||
name: "Estonian(Estonia)",
|
||||
code: "et-EE",
|
||||
},
|
||||
{
|
||||
name: "Filipino (Philippines)",
|
||||
code: "fil-PH",
|
||||
},
|
||||
{
|
||||
name: "Finnish (Finland)",
|
||||
code: "fi-FI",
|
||||
},
|
||||
{
|
||||
name: "French (Belgium)",
|
||||
code: "fr-BE",
|
||||
},
|
||||
{
|
||||
name: "French (Canada)",
|
||||
code: "fr-CA",
|
||||
},
|
||||
{
|
||||
name: "French (France)",
|
||||
code: "fr-FR",
|
||||
},
|
||||
{
|
||||
name: "French (Switzerland)",
|
||||
code: "fr-CH",
|
||||
},
|
||||
{
|
||||
name: "German (Austria)",
|
||||
code: "de-AT",
|
||||
},
|
||||
{
|
||||
name: "German (Switzerland)",
|
||||
code: "de-CH",
|
||||
},
|
||||
{
|
||||
name: "German (Germany)",
|
||||
code: "de-DE",
|
||||
},
|
||||
{
|
||||
name: "Greek (Greece)",
|
||||
code: "el-GR",
|
||||
},
|
||||
{
|
||||
name: "Gujarati (Indian)",
|
||||
code: "gu-IN",
|
||||
},
|
||||
{
|
||||
name: "Hebrew (Israel)",
|
||||
code: "he-IL",
|
||||
},
|
||||
{
|
||||
name: "Hindi (India)",
|
||||
code: "hi-IN",
|
||||
},
|
||||
{
|
||||
name: "Hungarian (Hungary)",
|
||||
code: "hu-HU",
|
||||
},
|
||||
{
|
||||
name: "Indonesian (Indonesia)",
|
||||
code: "id-ID",
|
||||
},
|
||||
{
|
||||
name: "Icelandic (Iceland)",
|
||||
code: "is-IS",
|
||||
},
|
||||
{
|
||||
name: "Irish (Ireland)",
|
||||
code: "ga-IE",
|
||||
},
|
||||
{
|
||||
name: "Italian (Italy)",
|
||||
code: "it-IT",
|
||||
},
|
||||
{
|
||||
name: "Japanese (Japan)",
|
||||
code: "ja-JP",
|
||||
},
|
||||
{
|
||||
name: "Javanese (Indonesia)",
|
||||
code: "jv-ID",
|
||||
},
|
||||
{
|
||||
name: "Kannada (India)",
|
||||
code: "kn-IN",
|
||||
},
|
||||
{
|
||||
name: "Khmer (Cambodia)",
|
||||
code: "km-KH",
|
||||
},
|
||||
{
|
||||
name: "Korean (Korea)",
|
||||
code: "ko-KR",
|
||||
},
|
||||
{
|
||||
name: "Latvian (Latvia)",
|
||||
code: "lv-LV",
|
||||
},
|
||||
{
|
||||
name: "Lao (Laos)",
|
||||
code: "lo-LA",
|
||||
},
|
||||
{
|
||||
name: "Lithuanian (Lithuania)",
|
||||
code: "lt-LT",
|
||||
},
|
||||
{
|
||||
name: "Malay (Malaysia)",
|
||||
code: "ms-MY",
|
||||
},
|
||||
{
|
||||
name: "Macedonian (North Macedonia)",
|
||||
code: "mk-MK",
|
||||
},
|
||||
{
|
||||
name: "Maltese (Malta)",
|
||||
code: "mt-MT",
|
||||
},
|
||||
{
|
||||
name: "Marathi (India)",
|
||||
code: "mr-IN",
|
||||
},
|
||||
{
|
||||
name: "Burmese (Myanmar)",
|
||||
code: "my-MM",
|
||||
},
|
||||
{
|
||||
name: "Norwegian (Bokmål, Norway)",
|
||||
code: "nb-NO",
|
||||
},
|
||||
{
|
||||
name: "Persian (Iran)",
|
||||
code: "fa-IR",
|
||||
},
|
||||
{
|
||||
name: "Polish (Poland)",
|
||||
code: "pl-PL",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Brazil)",
|
||||
code: "pt-BR",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Portugal)",
|
||||
code: "pt-PT",
|
||||
},
|
||||
{
|
||||
name: "Romanian (Romania)",
|
||||
code: "ro-RO",
|
||||
},
|
||||
{
|
||||
name: "Russian (Russia)",
|
||||
code: "ru-RU",
|
||||
},
|
||||
{
|
||||
name: "Slovak (Slovakia)",
|
||||
code: "sk-SK",
|
||||
},
|
||||
{
|
||||
name: "Slovenian (Slovenia)",
|
||||
code: "sl-SI",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Argentina)",
|
||||
code: "es-AR",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Bolivia)",
|
||||
code: "es-BO",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Chile)",
|
||||
code: "es-CL",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Colombia)",
|
||||
code: "es-CO",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Costa Rica)",
|
||||
code: "es-CR",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Cuba)",
|
||||
code: "es-CU",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Dominican Republic)",
|
||||
code: "es-DO",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Ecuador)",
|
||||
code: "es-EC",
|
||||
},
|
||||
{
|
||||
name: "Spanish (El Salvador)",
|
||||
code: "es-SV",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Equatorial Guinea)",
|
||||
code: "es-GQ",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Guatemala)",
|
||||
code: "es-GT",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Honduras)",
|
||||
code: "es-HN",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Mexico)",
|
||||
code: "es-MX",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Nicaragua)",
|
||||
code: "es-NI",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Panama)",
|
||||
code: "es-PA",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Paraguay)",
|
||||
code: "es-PY",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Peru)",
|
||||
code: "es-PE",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Puerto Rico)",
|
||||
code: "es-PR",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Spain)",
|
||||
code: "es-ES",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Uruguay)",
|
||||
code: "es-UY",
|
||||
},
|
||||
{
|
||||
name: "Spanish (USA)",
|
||||
code: "es-US",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Venezuela)",
|
||||
code: "es-VE",
|
||||
},
|
||||
{
|
||||
name: "Swahili (Kenya)",
|
||||
code: "sw-KE",
|
||||
},
|
||||
{
|
||||
name: "Swahili (Tanzania)",
|
||||
code: "sw-TZ",
|
||||
},
|
||||
{
|
||||
name: "Sinhala (Sri Lanka)",
|
||||
code: "si-LK",
|
||||
},
|
||||
{
|
||||
name: "Swedish (Sweden)",
|
||||
code: "sv-SE",
|
||||
},
|
||||
{
|
||||
name: "Serbian (Serbia)",
|
||||
code: "sr-RS",
|
||||
},
|
||||
{
|
||||
name: "Tamil (India)",
|
||||
code: "ta-IN",
|
||||
},
|
||||
{
|
||||
name: "Telugu (India)",
|
||||
code: "te-IN",
|
||||
},
|
||||
{
|
||||
name: "Thai (Thailand)",
|
||||
code: "th-TH",
|
||||
},
|
||||
{
|
||||
name: "Turkish (Turkey)",
|
||||
code: "tr-TR",
|
||||
},
|
||||
{
|
||||
name: "Ukrainian (Ukraine)",
|
||||
code: "uk-UA",
|
||||
},
|
||||
{
|
||||
name: "Uzbek (Uzbekistan)",
|
||||
code: "uz-UZ",
|
||||
},
|
||||
{
|
||||
name: "Zulu (South Africa)",
|
||||
code: "zu-ZA",
|
||||
},
|
||||
{
|
||||
name: "Vietnamese (Vietnam)",
|
||||
code: "vi-VN",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,211 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "Arabic (Worldwide)",
|
||||
code: "ar-WW",
|
||||
codeMix: "ara-XWW",
|
||||
},
|
||||
{
|
||||
name: "Catalan (Spain)",
|
||||
code: "ca-ES",
|
||||
codeMix: "cat-ESP",
|
||||
},
|
||||
{
|
||||
name: "Croatian (Croatia)",
|
||||
code: "hr-HR",
|
||||
codeMix: "hrv-HRV",
|
||||
},
|
||||
{
|
||||
name: "Czech (Czech Republic)",
|
||||
code: "cs-CZ",
|
||||
codeMix: "ces-CZE",
|
||||
},
|
||||
{
|
||||
name: "Danish (Denmark)",
|
||||
code: "da-DK",
|
||||
codeMix: "dan-DNK",
|
||||
},
|
||||
{
|
||||
name: "Dutch (Netherlands)",
|
||||
code: "nl-NL",
|
||||
codeMix: "nld-NLD",
|
||||
},
|
||||
{
|
||||
name: "English (Australia)",
|
||||
code: "en-AU",
|
||||
codeMix: "eng-AUS",
|
||||
},
|
||||
{
|
||||
name: "English (United States)",
|
||||
code: "en-US",
|
||||
codeMix: "eng-USA",
|
||||
},
|
||||
{
|
||||
name: "English (India)",
|
||||
code: "en-IN",
|
||||
codeMix: "eng-IND",
|
||||
},
|
||||
{
|
||||
name: "English (United Kingdom)",
|
||||
code: "en-GB",
|
||||
codeMix: "eng-GBR",
|
||||
},
|
||||
{
|
||||
name: "Finnish (Finland)",
|
||||
code: "fi-FI",
|
||||
codeMix: "fin-FIN",
|
||||
},
|
||||
{
|
||||
name: "French (Canada)",
|
||||
code: "fr-CA",
|
||||
codeMix: "fra-CAN",
|
||||
},
|
||||
{
|
||||
name: "French (France)",
|
||||
code: "fr-FR",
|
||||
codeMix: "fra-FRA",
|
||||
},
|
||||
{
|
||||
name: "German (Germany)",
|
||||
code: "de-DE",
|
||||
codeMix: "deu-DEU",
|
||||
},
|
||||
{
|
||||
name: "Greek (Greece)",
|
||||
code: "el-GR",
|
||||
codeMix: "ell-GRC",
|
||||
},
|
||||
{
|
||||
name: "Hebrew (Israel)",
|
||||
code: "he-IL",
|
||||
codeMix: "heb-ISR",
|
||||
},
|
||||
{
|
||||
name: "Hindi (India)",
|
||||
code: "hi-IN",
|
||||
codeMix: "hin-IND",
|
||||
},
|
||||
{
|
||||
name: "Hungarian (Hungary)",
|
||||
code: "hu-HU",
|
||||
codeMix: "hun-HUN",
|
||||
},
|
||||
{
|
||||
name: "Indonesian (Indonesia)",
|
||||
code: "id-ID",
|
||||
codeMix: "ind-IDN",
|
||||
},
|
||||
{
|
||||
name: "Italian (Italy)",
|
||||
code: "it-IT",
|
||||
codeMix: "ita-ITA",
|
||||
},
|
||||
{
|
||||
name: "Japanese (Japan)",
|
||||
code: "ja-JP",
|
||||
codeMix: "jpn-JPN",
|
||||
},
|
||||
{
|
||||
name: "Korean (South Korea)",
|
||||
code: "ko-KR",
|
||||
codeMix: "kor-KOR",
|
||||
},
|
||||
{
|
||||
name: "Malay (Malaysia)",
|
||||
code: "ms-MY",
|
||||
codeMix: "zlm-MYS",
|
||||
},
|
||||
{
|
||||
name: "Norwegian (Norway)",
|
||||
code: "no-NO",
|
||||
codeMix: "nor-NOR",
|
||||
},
|
||||
{
|
||||
name: "Polish (Poland)",
|
||||
code: "pl-PL",
|
||||
codeMix: "pol-POL",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Brazil)",
|
||||
code: "pt-BR",
|
||||
codeMix: "por-BRA",
|
||||
},
|
||||
{
|
||||
name: "Portuguese (Portugal)",
|
||||
code: "pt-PT",
|
||||
codeMix: "por-PRT",
|
||||
},
|
||||
{
|
||||
name: "Romanian (Romania)",
|
||||
code: "ro-RO",
|
||||
codeMix: "ron-ROU",
|
||||
},
|
||||
{
|
||||
name: "Russian (Russia)",
|
||||
code: "ru-RU",
|
||||
codeMix: "rus-RUS",
|
||||
},
|
||||
{
|
||||
name: "Shanghainese (China)",
|
||||
code: "zh-WU",
|
||||
codeMix: "wuu-CHN",
|
||||
},
|
||||
{
|
||||
name: "Mandarin (China)",
|
||||
code: "zh-CN",
|
||||
codeMix: "cmn-CHN",
|
||||
},
|
||||
{
|
||||
name: "Slovak (Slovakia)",
|
||||
code: "sk-SK",
|
||||
codeMix: "slk-SVK",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Spain)",
|
||||
code: "es-ES",
|
||||
codeMix: "spa-ESP",
|
||||
},
|
||||
{
|
||||
name: "Spanish (Latin America)",
|
||||
code: "es-US",
|
||||
codeMix: "spa-XLA",
|
||||
},
|
||||
{
|
||||
name: "Swedish (Sweden)",
|
||||
code: "sv-SE",
|
||||
codeMix: "swe-SWE",
|
||||
},
|
||||
{
|
||||
name: "Thai (Thailand)",
|
||||
code: "th-TH",
|
||||
codeMix: "tha-THA",
|
||||
},
|
||||
{
|
||||
name: "Cantonese (Hong Kong)",
|
||||
code: "cn-HK",
|
||||
codeMix: "yue-CHS",
|
||||
},
|
||||
{
|
||||
name: "Mandarin (Taiwan)",
|
||||
code: "zh-TW",
|
||||
codeMix: "cmn-TWN",
|
||||
},
|
||||
{
|
||||
name: "Turkish (Turkey)",
|
||||
code: "tr-TR",
|
||||
codeMix: "tur-TUR",
|
||||
},
|
||||
{
|
||||
name: "Ukrainian (Ukraine)",
|
||||
code: "uk-UA",
|
||||
codeMix: "ukr-UKR",
|
||||
},
|
||||
{
|
||||
name: "Vietnamese (Vietnam)",
|
||||
code: "vi-VN",
|
||||
codeMix: "vie-VNM",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,62 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "Arabic",
|
||||
code: "ar-AR",
|
||||
},
|
||||
{
|
||||
name: "English",
|
||||
code: "en-US",
|
||||
},
|
||||
{
|
||||
name: "English - GB",
|
||||
code: "en-GB",
|
||||
},
|
||||
{
|
||||
name: "Spanish - US",
|
||||
code: "es-US",
|
||||
},
|
||||
{
|
||||
name: "Spanish",
|
||||
code: "es-ES",
|
||||
},
|
||||
{
|
||||
name: "German",
|
||||
code: "de-DE",
|
||||
},
|
||||
{
|
||||
name: "French",
|
||||
code: "fr-FR",
|
||||
},
|
||||
{
|
||||
name: "Hindi",
|
||||
code: "hi-IN",
|
||||
},
|
||||
{
|
||||
name: "Russian",
|
||||
code: "ru-RU",
|
||||
},
|
||||
{
|
||||
name: "Korean",
|
||||
code: "ko-KR",
|
||||
},
|
||||
{
|
||||
name: "Brazilian-Portuguese",
|
||||
code: "pt-BR",
|
||||
},
|
||||
{
|
||||
name: "Japanese",
|
||||
code: "ja-JP",
|
||||
},
|
||||
{
|
||||
name: "Italian",
|
||||
code: "it-IT",
|
||||
},
|
||||
{
|
||||
name: "Mandarin",
|
||||
code: "zh-CN",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,10 +0,0 @@
|
||||
import type { Language } from "../types";
|
||||
|
||||
export const languages: Language[] = [
|
||||
{
|
||||
name: "English (United States)",
|
||||
code: "en-US",
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,217 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "arb",
|
||||
name: "Arabic",
|
||||
voices: [{ value: "Zeina", name: "Zeina (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "cmn-CN",
|
||||
name: "Chinese, Mandarin",
|
||||
voices: [{ value: "Zhiyu", name: "Zhiyu (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "da-DK",
|
||||
name: "Danish",
|
||||
voices: [
|
||||
{ value: "Naja", name: "Naja (Female)" },
|
||||
{ value: "Mads", name: "Mads (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "nl-NL",
|
||||
name: "Dutch",
|
||||
voices: [
|
||||
{ value: "Lotte", name: "Lotte (Female)" },
|
||||
{ value: "Ruben", name: "Ruben (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-AU",
|
||||
name: "English (Australian)",
|
||||
voices: [
|
||||
{ value: "Nicole", name: "Nicole (Female)" },
|
||||
{ value: "Russell", name: "Russell (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-GB",
|
||||
name: "English (British)",
|
||||
voices: [
|
||||
{ value: "Amy", name: "Amy (Female)" },
|
||||
{ value: "Emma", name: "Emma (Female)" },
|
||||
{ value: "Brian", name: "Brian (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-IN",
|
||||
name: "English (Indian)",
|
||||
voices: [
|
||||
{ value: "Aditi", name: "Aditi (Female)" },
|
||||
{ value: "Raveena", name: "Raveena (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English (US)",
|
||||
voices: [
|
||||
{ value: "Joanna", name: "Joanna (Female)" },
|
||||
{ value: "Kendra", name: "Kendra (Female)" },
|
||||
{ value: "Kimberly", name: "Kimberly (Female)" },
|
||||
{ value: "Ivy", name: "Ivy (Female child)" },
|
||||
{ value: "Salli", name: "Salli (Female)" },
|
||||
{ value: "Joey", name: "Joey (Male)" },
|
||||
{ value: "Matthew", name: "Matthew (Male)" },
|
||||
{ value: "Justin", name: "Justin (Male child)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-GB-WLS",
|
||||
name: "English (Welsh)",
|
||||
voices: [{ value: "Geraint", name: "Geraint (Male)" }],
|
||||
},
|
||||
{
|
||||
code: "fr-FR",
|
||||
name: "French",
|
||||
voices: [
|
||||
{ value: "Celine", name: "Céline (Female)" },
|
||||
{ value: "Lea", name: "Léa (Female)" },
|
||||
{ value: "Mathieu", name: "Mathieu (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-CA",
|
||||
name: "French (Canadian)",
|
||||
voices: [{ value: "Chantal", name: "Chantal (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "de-DE",
|
||||
name: "German",
|
||||
voices: [
|
||||
{ value: "Marlene", name: "Marlene (Female)" },
|
||||
{ value: "Vicki", name: "Vicki (Female)" },
|
||||
{ value: "Hans", name: "Hans (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "hi-IN",
|
||||
name: "Hindi",
|
||||
voices: [{ value: "Aditi", name: "Aditi (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "is-IS",
|
||||
name: "Icelandic",
|
||||
voices: [
|
||||
{ value: "Dora", name: "Dóra (Female)" },
|
||||
{ value: "Karl", name: "Karl (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "it-IT",
|
||||
name: "Italian",
|
||||
voices: [
|
||||
{ value: "Carla", name: "Carla (Female)" },
|
||||
{ value: "Bianca", name: "Bianca (Female)" },
|
||||
{ value: "Giorgio", name: "Giorgio (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ja-JP",
|
||||
name: "Japanese",
|
||||
voices: [
|
||||
{ value: "Mizuki", name: "Mizuki (Female)" },
|
||||
{ value: "Takumi", name: "Takumi (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ko-KR",
|
||||
name: "Korean",
|
||||
voices: [{ value: "Seoyeon", name: "Seoyeon (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "nb-NO",
|
||||
name: "Norwegian",
|
||||
voices: [{ value: "Liv", name: "Liv (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "pl-PL",
|
||||
name: "Polish",
|
||||
voices: [
|
||||
{ value: "Ewa", name: "Ewa (Female)" },
|
||||
{ value: "Maja", name: "Maja (Female)" },
|
||||
{ value: "Jacek", name: "Jacek (Male)" },
|
||||
{ value: "Jan", name: "Jan (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "pt-BR",
|
||||
name: "Portuguese (Brazilian)",
|
||||
voices: [
|
||||
{ value: "Camila", name: "Camila (Female)" },
|
||||
{ value: "Vitoria", name: "Vitória (Female)" },
|
||||
{ value: "Ricardo", name: "Ricardo (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "pt-PT",
|
||||
name: "Portuguese (European)",
|
||||
voices: [
|
||||
{ value: "Ines", name: "Inês (Female)" },
|
||||
{ value: "Cristiano", name: "Cristiano (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ro-RO",
|
||||
name: "Romanian",
|
||||
voices: [{ value: "Carmen", name: "Carmen (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "ru-RU",
|
||||
name: "Russian",
|
||||
voices: [
|
||||
{ value: "Tatyana", name: "Tatyana (Female)" },
|
||||
{ value: "Maxim", name: "Maxim (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-ES",
|
||||
name: "Spanish (European)",
|
||||
voices: [
|
||||
{ value: "Conchita", name: "Conchita (Female)" },
|
||||
{ value: "Lucia", name: "Lucia (Female)" },
|
||||
{ value: "Enrique", name: "Enrique (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-MX",
|
||||
name: "Spanish (Mexican)",
|
||||
voices: [{ value: "Mia", name: "Mia (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "es-US",
|
||||
name: "Spanish (US)",
|
||||
voices: [
|
||||
{ value: "Lupe", name: "Lupe (Female)" },
|
||||
{ value: "Penelope", name: "Penélope (Female)" },
|
||||
{ value: "Miguel", name: "Miguel (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "sv-SE",
|
||||
name: "Swedish",
|
||||
voices: [{ value: "Astrid", name: "Astrid (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "tr-TR",
|
||||
name: "Turkish",
|
||||
voices: [{ value: "Filiz", name: "Filiz (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "cy-GB",
|
||||
name: "Welsh",
|
||||
voices: [{ value: "Gwyneth", name: "Gwyneth (Female)" }],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,196 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "ar",
|
||||
name: "Arabic",
|
||||
voices: [
|
||||
{
|
||||
value: "pNInz6obpgDQGcFmaJgB",
|
||||
name: "Adam - american, deep, middle aged, male, narration",
|
||||
},
|
||||
{
|
||||
value: "ErXwobaYiN019PkySvjV",
|
||||
name: "Antoni - american, well-rounded, young, male, narration",
|
||||
},
|
||||
{
|
||||
value: "VR6AewLTigWG4xSOukaG",
|
||||
name: "Arnold - american, crisp, middle aged, male, narration",
|
||||
},
|
||||
{
|
||||
value: "EXAVITQu4vr4xnSDxMaL",
|
||||
name: "Bella - american, soft, young, female, narration",
|
||||
},
|
||||
{
|
||||
value: "N2lVS1w4EtoT3dr4eOWO",
|
||||
name: "Callum - american, hoarse, middle aged, male, video games",
|
||||
},
|
||||
{
|
||||
value: "IKne3meq5aSn9XLyUdCD",
|
||||
name: "Charlie - australian, casual, middle aged, male, conversational",
|
||||
},
|
||||
{
|
||||
value: "XB0fDUnXU5powFXDhCwa",
|
||||
name: "Charlotte - english-swedish, seductive, middle aged, female, video games",
|
||||
},
|
||||
{
|
||||
value: "2EiwWnXFnvU5JabPnv8n",
|
||||
name: "Clyde - american, war veteran, middle aged, male, video games",
|
||||
},
|
||||
{
|
||||
value: "onwK4e9ZLuTAKqWW03F9",
|
||||
name: "Daniel - british, deep, middle aged, male, news presenter",
|
||||
},
|
||||
{
|
||||
value: "CYw3kZ02Hs0563khs1Fj",
|
||||
name: "Dave - british-essex, conversational, young, male, video games",
|
||||
},
|
||||
{
|
||||
value: "AZnzlk1XvdvUeBnXmlld",
|
||||
name: "Domi - american, strong, young, female, narration",
|
||||
},
|
||||
{
|
||||
value: "ThT5KcBeYPX3keUQqHPh",
|
||||
name: "Dorothy - british, pleasant, young, female, children's stories",
|
||||
},
|
||||
{
|
||||
value: "MF3mGyEYCl7XYWbV9V6O",
|
||||
name: "Elli - american, emotional, young, female, narration",
|
||||
},
|
||||
{
|
||||
value: "LcfcDJNUP1GQjkzn1xUU",
|
||||
name: "Emily - american, calm, young, female, meditation",
|
||||
},
|
||||
{
|
||||
value: "g5CIjZEefAph4nQFvHAz",
|
||||
name: "Ethan - american, undefined, young, male, ASMR",
|
||||
},
|
||||
{
|
||||
value: "D38z5RcWu1voky8WS1ja",
|
||||
name: "Fin - irish, sailor, old, male, video games",
|
||||
},
|
||||
{
|
||||
value: "jsCqWAovK2LkecY7zXl4",
|
||||
name: "Freya - american, undefined, young, female, undefined",
|
||||
},
|
||||
{
|
||||
value: "jBpfuIE2acCO8z3wKNLl",
|
||||
name: "Gigi - american, childlish, young, female, animation",
|
||||
},
|
||||
{
|
||||
value: "zcAOhNBS3c14rBihAFp1",
|
||||
name: "Giovanni - english-italian, foreigner, young, male, audiobook",
|
||||
},
|
||||
{
|
||||
value: "z9fAnlkpzviPz146aGWa",
|
||||
name: "Glinda - american, witch, middle aged, female, video games",
|
||||
},
|
||||
{
|
||||
value: "oWAxZDx7w5VEj9dCyTzz",
|
||||
name: "Grace - american-southern, undefined, young, female, audiobook ",
|
||||
},
|
||||
{
|
||||
value: "SOYHLrjzK2X1ezoPC6cr",
|
||||
name: "Harry - american, anxious, young, male, video games",
|
||||
},
|
||||
{
|
||||
value: "ZQe5CZNOzWyzPSCn5a3c",
|
||||
name: "James - australian, calm , old, male, news",
|
||||
},
|
||||
{
|
||||
value: "bVMeCyTHy58xNoL34h3p",
|
||||
name: "Jeremy - american-irish, excited, young, male, narration",
|
||||
},
|
||||
{
|
||||
value: "t0jbNlBVZ17f02VDIeMI",
|
||||
name: "Jessie - american, raspy , old, male, video games",
|
||||
},
|
||||
{
|
||||
value: "Zlb1dXrM653N07WRdFW3",
|
||||
name: "Joseph - british, undefined, middle aged, male, news",
|
||||
},
|
||||
{
|
||||
value: "TxGEqnHWrfWFTfGW9XjX",
|
||||
name: "Josh - american, deep, young, male, narration",
|
||||
},
|
||||
{
|
||||
value: "TX3LPaxmHKxFdv7VOQHJ",
|
||||
name: "Liam - american, undefined, young, male, narration",
|
||||
},
|
||||
{
|
||||
value: "XrExE9yKIg1WjnnlVkGX",
|
||||
name: "Matilda - american, warm, young, female, audiobook",
|
||||
},
|
||||
{
|
||||
value: "Yko7PKHZNXotIFUBG7I9",
|
||||
name: "Matthew - british, undefined, middle aged, male, audiobook",
|
||||
},
|
||||
{
|
||||
value: "flq6f7yk4E4fJM5XTYuZ",
|
||||
name: "Michael - american, undefined, old, male, audiobook",
|
||||
},
|
||||
{
|
||||
value: "zrHiDhphv9ZnVXBqCLjz",
|
||||
name: "Mimi - english-swedish, childish, young, female, animation",
|
||||
},
|
||||
{
|
||||
value: "piTKgcLEGmPE4e6mEKli",
|
||||
name: "Nicole - american, whisper, young, female, audiobook",
|
||||
},
|
||||
{
|
||||
value: "ODq5zmih8GrVes37Dizd",
|
||||
name: "Patrick - american, shouty, middle aged, male, video games",
|
||||
},
|
||||
{
|
||||
value: "21m00Tcm4TlvDq8ikWAM",
|
||||
name: "Rachel - american, calm, young, female, narration",
|
||||
},
|
||||
{
|
||||
value: "wViXBPUzp2ZZixB1xQuM",
|
||||
name: "Ryan - american, soldier, middle aged, male, audiobook",
|
||||
},
|
||||
{
|
||||
value: "yoZ06aMxZJJ28mfd3POQ",
|
||||
name: "Sam - american, raspy, young, male, narration",
|
||||
},
|
||||
{
|
||||
value: "pMsXgVXv3BLzUgSXRplE",
|
||||
name: "Serena - american, pleasant, middle aged, female, interactive",
|
||||
},
|
||||
{
|
||||
value: "GBv7mTt0atIp3Br8iCZE",
|
||||
name: "Thomas - american, calm, young, male, meditation",
|
||||
},
|
||||
],
|
||||
},
|
||||
{ code: "bg", name: "Bulgarian", voices: [] },
|
||||
{ code: "zh", name: "Chinese", voices: [] },
|
||||
{ code: "hr", name: "Croatian", voices: [] },
|
||||
{ code: "cs", name: "Czech", voices: [] },
|
||||
{ code: "da", name: "Danish", voices: [] },
|
||||
{ code: "nl", name: "Dutch", voices: [] },
|
||||
{ code: "en", name: "English", voices: [] },
|
||||
{ code: "fil", name: "Filipino", voices: [] },
|
||||
{ code: "fi", name: "Finnish", voices: [] },
|
||||
{ code: "fr", name: "French", voices: [] },
|
||||
{ code: "de", name: "German", voices: [] },
|
||||
{ code: "el", name: "Greek", voices: [] },
|
||||
{ code: "hi", name: "Hindi", voices: [] },
|
||||
{ code: "id", name: "Indonesian", voices: [] },
|
||||
{ code: "it", name: "Italian", voices: [] },
|
||||
{ code: "ja", name: "Japanese", voices: [] },
|
||||
{ code: "ko", name: "Korean", voices: [] },
|
||||
{ code: "ms", name: "Malay", voices: [] },
|
||||
{ code: "pl", name: "Polish", voices: [] },
|
||||
{ code: "pt", name: "Portuguese", voices: [] },
|
||||
{ code: "ro", name: "Romanian", voices: [] },
|
||||
{ code: "ru", name: "Russian", voices: [] },
|
||||
{ code: "sk", name: "Slovak", voices: [] },
|
||||
{ code: "es", name: "Spanish", voices: [] },
|
||||
{ code: "sv", name: "Swedish", voices: [] },
|
||||
{ code: "ta", name: "Tamil", voices: [] },
|
||||
{ code: "tr", name: "Turkish", voices: [] },
|
||||
{ code: "uk", name: "Ukrainian", voices: [] },
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,800 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "ar-XA",
|
||||
name: "Arabic",
|
||||
voices: [
|
||||
{ value: "ar-XA-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ar-XA-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "ar-XA-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "ar-XA-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "ar-XA-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ar-XA-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "ar-XA-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "ar-XA-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "af-ZA",
|
||||
name: "Afrikaans (South Africa)",
|
||||
voices: [{ value: "af-ZA-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "bn-IN",
|
||||
name: "Bengali (India)",
|
||||
voices: [
|
||||
{ value: "bn-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "bn-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "bn-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "bn-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "bg-BG",
|
||||
name: "Bulgarian (Bulgaria)",
|
||||
voices: [{ value: "bg-BG-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "ca-ES",
|
||||
name: "Catalan (Spain)",
|
||||
voices: [{ value: "ca-ES-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "cs-CZ",
|
||||
name: "Czech (Czech Republic)",
|
||||
voices: [
|
||||
{ value: "cs-CZ-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "cs-CZ-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "da-DK",
|
||||
name: "Danish (Denmark)",
|
||||
voices: [
|
||||
{ value: "da-DK-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "da-DK-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "da-DK-Neural2-D", name: "Neural2-D (Female)" },
|
||||
{ value: "da-DK-Neural2-F", name: "Neural2-F (Male)" },
|
||||
|
||||
{ value: "da-DK-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "da-DK-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "da-DK-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "da-DK-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "da-DK-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
{ value: "da-DK-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "eu-ES",
|
||||
name: "Basque (Spain)",
|
||||
voices: [{ value: "eu-ES-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "nl-NL",
|
||||
name: "Dutch (Netherlands)",
|
||||
voices: [
|
||||
{ value: "nl-NL-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "nl-NL-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "nl-NL-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "nl-NL-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "nl-NL-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "nl-NL-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "nl-NL-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "nl-NL-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "nl-NL-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
{ value: "nl-NL-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-AU",
|
||||
name: "English (Australia)",
|
||||
voices: [
|
||||
{ value: "en-AU-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "en-AU-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "en-AU-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "en-AU-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "en-AU-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "en-AU-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "en-AU-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "en-AU-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "en-AU-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "en-AU-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "en-AU-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "en-AU-Neural2-D", name: "Neural2-D (Male)" },
|
||||
{ value: "en-AU-Polyglot-1", name: "Polyglot-1 (Male)" },
|
||||
{ value: "en-AU-News-E", name: "News-E (Female)" },
|
||||
{ value: "en-AU-News-F", name: "News-F (Female)" },
|
||||
{ value: "en-AU-News-G", name: "News-G (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-IN",
|
||||
name: "English (India)",
|
||||
voices: [
|
||||
{ value: "en-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "en-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "en-IN-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "en-IN-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "en-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "en-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "en-IN-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "en-IN-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
|
||||
{ value: "en-IN-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "en-IN-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "en-IN-Neural2-C", name: "Neural2-C (Male)" },
|
||||
{ value: "en-IN-Neural2-D", name: "Neural2-D (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-GB",
|
||||
name: "English (UK)",
|
||||
voices: [
|
||||
{ value: "en-GB-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "en-GB-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "en-GB-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "en-GB-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "en-GB-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "en-GB-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "en-GB-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "en-GB-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "en-GB-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "en-GB-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "en-GB-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "en-GB-Neural2-D", name: "Neural2-D (Male)" },
|
||||
{ value: "en-GB-Neural2-F", name: "Neural2-F (Female)" },
|
||||
{ value: "en-GB-News-G", name: "News-G (Female)" },
|
||||
{ value: "en-GB-News-H", name: "News-H (Female)" },
|
||||
{ value: "en-GB-News-I", name: "News-I (Female)" },
|
||||
{ value: "en-GB-News-J", name: "News-J (Male)" },
|
||||
{ value: "en-GB-News-K", name: "News-K (Male)" },
|
||||
{ value: "en-GB-News-L", name: "News-L (Male)" },
|
||||
{ value: "en-GB-News-M", name: "News-M (Male)" },
|
||||
|
||||
{ value: "en-GB-Studio-B", name: "Studio-B (Male)" },
|
||||
{ value: "en-GB-Studio-C", name: "Studio-C (Female)" },
|
||||
{ value: "en-GB-Wavenet-F", name: "Wavenet-F (Female)" },
|
||||
{ value: "en-GB-Standard-F", name: "Standard-F (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English (US)",
|
||||
voices: [
|
||||
{ value: "en-US-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "en-US-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "en-US-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "en-US-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "en-US-Wavenet-A", name: "Wavenet-A (Male)" },
|
||||
{ value: "en-US-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "en-US-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "en-US-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "en-US-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
{ value: "en-US-Wavenet-F", name: "Wavenet-F (Female)" },
|
||||
{ value: "en-US-Neural2-A", name: "Neural2-A (Male)" },
|
||||
{ value: "en-US-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "en-US-Neural2-D", name: "Neural2-D (Male)" },
|
||||
{ value: "en-US-Neural2-E", name: "Neural2-E (Female)" },
|
||||
{ value: "en-US-Neural2-F", name: "Neural2-F (Female)" },
|
||||
{ value: "en-US-Neural2-G", name: "Neural2-G (Female)" },
|
||||
{ value: "en-US-Neural2-H", name: "Neural2-H (Female)" },
|
||||
{ value: "en-US-Neural2-I", name: "Neural2-I (Male)" },
|
||||
{ value: "en-US-Neural2-J", name: "Neural2-J (Male)" },
|
||||
{ value: "en-US-Studio-M", name: "Studio-M (Male)" },
|
||||
{ value: "en-US-Studio-O", name: "Studio-M (Female)" },
|
||||
{ value: "en-US-Polyglot-1", name: "Polyglot-1 (Male)" },
|
||||
{ value: "en-US-News-K", name: "News-K (Female)" },
|
||||
{ value: "en-US-News-L", name: "News-L (Female)" },
|
||||
{ value: "en-US-News-M", name: "News-M (Male)" },
|
||||
{ value: "en-US-News-N", name: "News-N (Male)" },
|
||||
|
||||
{ value: "en-US-Standard-A", name: "Standard-A (Male)" },
|
||||
{ value: "en-US-Standard-F", name: "Standard-F (Female)" },
|
||||
{ value: "en-US-Standard-G", name: "Standard-G (Female)" },
|
||||
{ value: "en-US-Standard-H", name: "Standard-H (Female)" },
|
||||
{ value: "en-US-Standard-I", name: "Standard-I (Male)" },
|
||||
{ value: "en-US-Standard-J", name: "Standard-J (Male)" },
|
||||
{ value: "en-US-Wavenet-G", name: "Wavenet-G (Female)" },
|
||||
{ value: "en-US-Wavenet-H", name: "Wavenet-H (Female)" },
|
||||
{ value: "en-US-Wavenet-I", name: "Wavenet-I (Male)" },
|
||||
{ value: "en-US-Wavenet-J", name: "Wavenet-J (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fil-PH",
|
||||
name: "Filipino (Philippines)",
|
||||
voices: [
|
||||
{ value: "fil-PH-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "fil-PH-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "fil-ph-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "fil-ph-Neural2-D", name: "Neural2-A (Male)" },
|
||||
|
||||
{ value: "fil-PH-Standard-B", name: "Standard-B (Female)" },
|
||||
{ value: "fil-PH-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "fil-PH-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "fil-PH-Wavenet-B", name: "Wavenet-B (Female)" },
|
||||
{ value: "fil-PH-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "fil-PH-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fi-FI",
|
||||
name: "Finnish (Finland)",
|
||||
voices: [
|
||||
{ value: "fi-FI-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "fi-FI-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-CA",
|
||||
name: "French (Canada)",
|
||||
voices: [
|
||||
{ value: "fr-CA-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "fr-CA-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "fr-CA-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "fr-CA-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "fr-CA-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "fr-CA-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "fr-CA-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "fr-CA-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "fr-CA-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "fr-CA-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "fr-CA-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "fr-CA-Neural2-D", name: "Neural2-D (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-FR",
|
||||
name: "French (France)",
|
||||
voices: [
|
||||
{ value: "fr-FR-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "fr-FR-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "fr-FR-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "fr-FR-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "fr-FR-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "fr-FR-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "fr-FR-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "fr-FR-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "fr-FR-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "fr-FR-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
{ value: "fr-FR-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "fr-FR-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "fr-FR-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "fr-FR-Neural2-D", name: "Neural2-D (Male)" },
|
||||
{ value: "fr-FR-Neural2-E", name: "Neural2-E (Female)" },
|
||||
{ value: "fr-FR-Polyglot-1", name: "Polyglot-1 (Male)" },
|
||||
|
||||
{ value: "fr-FR-Studio-A", name: "Studio-A (Female)" },
|
||||
{ value: "fr-FR-Studio-D", name: "Studio-D (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "de-DE",
|
||||
name: "German (Germany)",
|
||||
voices: [
|
||||
{ value: "de-DE-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "de-DE-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "de-DE-Standard-E", name: "Standard-E (Male)" },
|
||||
{ value: "de-DE-Standard-F", name: "Standard-F (Female)" },
|
||||
{ value: "de-DE-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "de-DE-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "de-DE-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "de-DE-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "de-DE-Wavenet-E", name: "Wavenet-E (Male)" },
|
||||
{ value: "de-DE-Wavenet-F", name: "Wavenet-F (Female)" },
|
||||
{ value: "de-DE-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "de-DE-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "de-DE-Neural2-D", name: "Neural2-D (Male)" },
|
||||
{ value: "de-DE-Neural2-F", name: "Neural2-F (Female)" },
|
||||
{ value: "de-DE-Polyglot-1", name: "Polyglot-1 (Male)" },
|
||||
|
||||
{ value: "de-DE-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "de-DE-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "de-DE-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "de-DE-Studio-B", name: "Studio-B (Male)" },
|
||||
{ value: "de-DE-Studio-C", name: "Studio-C (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "el-GR",
|
||||
name: "Greek (Greece)",
|
||||
voices: [
|
||||
{ value: "el-GR-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "el-GR-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "gl-ES",
|
||||
name: "Galician (Spain)",
|
||||
voices: [{ value: "gl-ES-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "gu-IN",
|
||||
name: "Gujarati (India)",
|
||||
voices: [
|
||||
{ value: "gu-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "gu-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "gu-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "gu-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "he-IL",
|
||||
name: "Hebrew (Israel)",
|
||||
voices: [
|
||||
{ value: "he-IL-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "he-IL-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "he-IL-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "he-IL-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "he-IL-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "he-IL-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "he-IL-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "he-IL-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "hi-IN",
|
||||
name: "Hindi (India)",
|
||||
voices: [
|
||||
{ value: "hi-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "hi-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "hi-IN-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "hi-IN-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "hi-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "hi-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "hi-IN-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "hi-IN-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
{ value: "hi-IN-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "hi-IN-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "hi-IN-Neural2-C", name: "Neural2-C (Male)" },
|
||||
{ value: "hi-IN-Neural2-D", name: "Neural2-D (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "hu-HU",
|
||||
name: "Hungarian (Hungary)",
|
||||
voices: [
|
||||
{ value: "hu-HU-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "hu-HU-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "is-IS",
|
||||
name: "Icelandic (Iceland)",
|
||||
voices: [{ value: "is-IS-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "id-ID",
|
||||
name: "Indonesian (Indonesia)",
|
||||
voices: [
|
||||
{ value: "id-ID-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "id-ID-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "id-ID-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "id-ID-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "id-ID-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "id-ID-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "id-ID-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "id-ID-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "it-IT",
|
||||
name: "Italian (Italy)",
|
||||
voices: [
|
||||
{ value: "it-IT-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "it-IT-Standard-B", name: "Standard-B (Female)" },
|
||||
{ value: "it-IT-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "it-IT-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "it-IT-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "it-IT-Wavenet-B", name: "Wavenet-B (Female)" },
|
||||
{ value: "it-IT-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "it-IT-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "it-IT-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "it-IT-Neural2-C", name: "Neural2-C (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ja-JP",
|
||||
name: "Japanese (Japan)",
|
||||
voices: [
|
||||
{ value: "ja-JP-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ja-JP-Standard-B", name: "Standard-B (Female)" },
|
||||
{ value: "ja-JP-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "ja-JP-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "ja-JP-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ja-JP-Wavenet-B", name: "Wavenet-B (Female)" },
|
||||
{ value: "ja-JP-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "ja-JP-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "ja-JP-Neural2-B", name: "Neural2-B (Female)" },
|
||||
{ value: "ja-JP-Neural2-C", name: "Neural2-C (Male)" },
|
||||
{ value: "ja-JP-Neural2-D", name: "Neural2-D (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "kn-IN",
|
||||
name: "Kannada (India)",
|
||||
voices: [
|
||||
{ value: "kn-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "kn-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "kn-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "kn-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ko-KR",
|
||||
name: "Korean (South Korea)",
|
||||
voices: [
|
||||
{ value: "ko-KR-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ko-KR-Standard-B", name: "Standard-B (Female)" },
|
||||
{ value: "ko-KR-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "ko-KR-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "ko-KR-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ko-KR-Wavenet-B", name: "Wavenet-B (Female)" },
|
||||
{ value: "ko-KR-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "ko-KR-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "ko-KR-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "ko-KR-Neural2-B", name: "Neural2-B (Female)" },
|
||||
{ value: "ko-KR-Neural2-C", name: "Neural2-C (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "lv-LV",
|
||||
name: "Latvian (Latvia)",
|
||||
voices: [{ value: "lv-LV-Standard-A", name: "Standard-A (Male)" }],
|
||||
},
|
||||
{
|
||||
code: "lt-LT",
|
||||
name: "Lithuanian (Lithuania)",
|
||||
voices: [{ value: "lt-LT-Standard-A", name: "Standard-A (Male)" }],
|
||||
},
|
||||
{
|
||||
code: "cmn-CN",
|
||||
name: "Mandarin Chinese",
|
||||
voices: [
|
||||
{ value: "cmn-CN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "cmn-CN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "cmn-CN-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "cmn-CN-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "cmn-CN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "cmn-CN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "cmn-CN-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "cmn-CN-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "cmn-TW",
|
||||
name: "Mandarin Chinese (Traditional)",
|
||||
voices: [
|
||||
{ value: "cmn-TW-Standard-A-Alpha", name: "Standard-A-Alpha (Female)" },
|
||||
{ value: "cmn-TW-Standard-B-Alpha", name: "Standard-B-Alpha (Male)" },
|
||||
{ value: "cmn-TW-Standard-C-Alpha", name: "Standard-C-Alpha (Male)" },
|
||||
{ value: "cmn-TW-Wavenet-A-Alpha", name: "Wavenet-A-Alpha (Female)" },
|
||||
{ value: "cmn-TW-Wavenet-B-Alpha", name: "Wavenet-B-Alpha (Male)" },
|
||||
{ value: "cmn-TW-Wavenet-C-Alpha", name: "Wavenet-C-Alpha (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ms-MY",
|
||||
name: "Malay (Malaysia)",
|
||||
voices: [
|
||||
{ value: "ms-MY-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ms-MY-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "ms-MY-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "ms-MY-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "ms-MY-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ms-MY-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "ms-MY-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "ms-MY-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "ml-IN",
|
||||
name: "Malayalam (India)",
|
||||
voices: [
|
||||
{ value: "ml-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ml-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "ml-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ml-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "ml-IN-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "ml-IN-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "mr-IN",
|
||||
name: "Marathi (India)",
|
||||
voices: [
|
||||
{ value: "mr-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "mr-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "mr-IN-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "mr-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "mr-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "mr-IN-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "nb-NO",
|
||||
name: "Norwegian (Norway)",
|
||||
voices: [
|
||||
{ value: "nb-NO-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "nb-NO-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "nb-NO-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "nb-NO-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "nb-no-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "nb-NO-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "nb-NO-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "nb-NO-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "nb-NO-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "nb-no-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "nl-BE",
|
||||
name: "Dutch (Belgium)",
|
||||
voices: [
|
||||
{ value: "nl-BE-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "nl-BE-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "nl-BE-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "nl-BE-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "pl-PL",
|
||||
name: "Polish (Poland)",
|
||||
voices: [
|
||||
{ value: "pl-PL-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "pl-PL-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "pl-PL-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "pl-PL-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "pl-PL-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "pl-PL-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "pl-PL-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "pl-PL-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "pl-PL-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
{ value: "pl-PL-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "pa-IN",
|
||||
name: "Punjabi (India)",
|
||||
voices: [
|
||||
{ value: "pa-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "pa-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "pa-IN-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "pa-IN-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "pa-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "pa-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "pa-IN-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "pa-IN-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "pt-BR",
|
||||
name: "Portuguese (Brazil)",
|
||||
voices: [
|
||||
{ value: "pt-BR-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "pt-BR-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "pt-BR-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "pt-BR-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "pt-BR-Neural2-C", name: "Neural2-C (Female)" },
|
||||
|
||||
{ value: "pt-BR-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "pt-BR-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "pt-BR-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "pt-BR-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "pt-PT",
|
||||
name: "Portuguese (Portugal)",
|
||||
voices: [
|
||||
{ value: "pt-PT-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "pt-PT-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "pt-PT-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "pt-PT-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "pt-PT-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "pt-PT-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "pt-PT-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "pt-PT-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "ro-RO",
|
||||
name: "Romanian (Romania)",
|
||||
voices: [
|
||||
{ value: "ro-RO-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ro-RO-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "ru-RU",
|
||||
name: "Russian (Russia)",
|
||||
voices: [
|
||||
{ value: "ru-RU-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ru-RU-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "ru-RU-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "ru-RU-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "ru-RU-Standard-E", name: "Standard-E (Female)" },
|
||||
{ value: "ru-RU-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ru-RU-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "ru-RU-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "ru-RU-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "ru-RU-Wavenet-E", name: "Wavenet-E (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "sk-SK",
|
||||
name: "Slovak (Slovakia)",
|
||||
voices: [
|
||||
{ value: "sk-SK-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "sk-SK-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "sr-RS",
|
||||
name: "Serbian (Cyrillic)",
|
||||
voices: [{ value: "sr-RS-Standard-A", name: "Standard-A (Female)" }],
|
||||
},
|
||||
|
||||
{
|
||||
code: "es-ES",
|
||||
name: "Spanish (Spain)",
|
||||
voices: [
|
||||
{ value: "es-ES-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "es-ES-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "es-ES-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "es-ES-Neural2-C", name: "Neural2-C (Female)" },
|
||||
{ value: "es-ES-Neural2-D", name: "Neural2-D (Female)" },
|
||||
{ value: "es-ES-Neural2-E", name: "Neural2-E (Female)" },
|
||||
{ value: "es-ES-Neural2-F", name: "Neural2-F (Male)" },
|
||||
{ value: "es-ES-Polyglot-1", name: "Polyglot-1 (Male)" },
|
||||
|
||||
{ value: "es-ES-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "es-ES-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "es-ES-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "es-ES-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "es-ES-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "es-ES-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-US",
|
||||
name: "Spanish (US)",
|
||||
voices: [
|
||||
{ value: "es-US-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "es-US-Neural2-B", name: "Neural2-B (Male)" },
|
||||
{ value: "es-US-Neural2-C", name: "Neural2-C (Male)" },
|
||||
{ value: "es-US-Studio-B", name: "Studio-B (Male)" },
|
||||
{ value: "es-US-Polyglot-1", name: "Polyglot-1 (Male)" },
|
||||
{ value: "es-US-News-D", name: "News-D (Male)" },
|
||||
{ value: "es-US-News-E", name: "News-E (Male)" },
|
||||
{ value: "es-US-News-F", name: "News-F (Female)" },
|
||||
{ value: "es-US-News-G", name: "News-G (Female)" },
|
||||
|
||||
{ value: "es-US-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "es-US-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "es-US-Standard-C", name: "Standard-C (Male)" },
|
||||
{ value: "es-US-Studio-B", name: "Studio-B (Male)" },
|
||||
{ value: "es-US-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "es-US-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "es-US-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "sv-SE",
|
||||
name: "Swedish (Sweden)",
|
||||
voices: [
|
||||
{ value: "sv-SE-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "sv-SE-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
|
||||
{ value: "sv-SE-Standard-B", name: "Standard-B (Female)" },
|
||||
{ value: "sv-SE-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "sv-SE-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "sv-SE-Standard-E", name: "Standard-E (Male)" },
|
||||
{ value: "sv-SE-Wavenet-B", name: "Wavenet-B (Female)" },
|
||||
{ value: "sv-SE-Wavenet-C", name: "Wavenet-C (Male)" },
|
||||
{ value: "sv-SE-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
{ value: "sv-SE-Wavenet-E", name: "Wavenet-E (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "ta-IN",
|
||||
name: "Tamil (India)",
|
||||
voices: [
|
||||
{ value: "ta-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "ta-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "ta-IN-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "ta-IN-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "ta-IN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "ta-IN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "ta-IN-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "ta-IN-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "te-IN",
|
||||
name: "Telugu (India)",
|
||||
voices: [
|
||||
{ value: "te-IN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "te-IN-Standard-B", name: "Standard-B (Male)" },
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
code: "tr-TR",
|
||||
name: "Turkish (Turkey)",
|
||||
voices: [
|
||||
{ value: "tr-TR-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "tr-TR-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "tr-TR-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "tr-TR-Standard-D", name: "Standard-D (Female)" },
|
||||
{ value: "tr-TR-Standard-E", name: "Standard-E (Male)" },
|
||||
{ value: "tr-TR-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "tr-TR-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "tr-TR-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "tr-TR-Wavenet-D", name: "Wavenet-D (Female)" },
|
||||
{ value: "tr-TR-Wavenet-E", name: "Wavenet-E (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "uk-UA",
|
||||
name: "Ukrainian (Ukraine)",
|
||||
voices: [
|
||||
{ value: "uk-UA-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "uk-UA-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "th-TH",
|
||||
name: "Thai (Thailand)",
|
||||
voices: [
|
||||
{ value: "th-TH-Neural2-C", name: "Neural2-C (Female)" },
|
||||
|
||||
{ value: "th-TH-Standard-A", name: "Standard-A (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "vi-VN",
|
||||
name: "Vietnamese (Vietnam)",
|
||||
voices: [
|
||||
{ value: "vi-VN-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "vi-VN-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "vi-VN-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "vi-VN-Standard-D", name: "Standard-D (Male)" },
|
||||
{ value: "vi-VN-Wavenet-A", name: "Wavenet-A (Female)" },
|
||||
{ value: "vi-VN-Wavenet-B", name: "Wavenet-B (Male)" },
|
||||
{ value: "vi-VN-Wavenet-C", name: "Wavenet-C (Female)" },
|
||||
{ value: "vi-VN-Wavenet-D", name: "Wavenet-D (Male)" },
|
||||
{ value: "vi-VN-Neural2-A", name: "Neural2-A (Female)" },
|
||||
{ value: "vi-VN-Neural2-D", name: "Neural2-D (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "yue-HK",
|
||||
name: "Chinese (Hong Kong)",
|
||||
voices: [
|
||||
{ value: "yue-HK-Standard-A", name: "Standard-A (Female)" },
|
||||
{ value: "yue-HK-Standard-B", name: "Standard-B (Male)" },
|
||||
{ value: "yue-HK-Standard-C", name: "Standard-C (Female)" },
|
||||
{ value: "yue-HK-Standard-D", name: "Standard-D (Male)" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,171 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "de-DE",
|
||||
name: "German (Germany)",
|
||||
voices: [
|
||||
{ value: "de-DE_DieterVoice", name: "Dieter (Male): Standard German" },
|
||||
{
|
||||
value: "de-DE_DieterV2Voice",
|
||||
name: "Dieter 2 (Male): Standard German",
|
||||
},
|
||||
{
|
||||
value: "de-DE_DieterV3Voice",
|
||||
name: "Dieter 3 (Male): Standard German",
|
||||
},
|
||||
{ value: "de-DE_ErikaV3Voice", name: "Erika (Female): Standard German" },
|
||||
{ value: "de-DE_BirgitVoice", name: "Brigit (Female): Standard German" },
|
||||
{
|
||||
value: "de-DE_BirgitV2Voice",
|
||||
name: "Brigit 2 (Female): Standard German",
|
||||
},
|
||||
{
|
||||
value: "de-DE_BirgitV3Voice",
|
||||
name: "Brigit 3 (Female): Standard German",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English (US)",
|
||||
voices: [
|
||||
{
|
||||
value: "en-US_MichaelExpressive",
|
||||
name: "Michael (Male): American English - Expressive",
|
||||
},
|
||||
{ value: "en-US_MichaelVoice", name: "Michael (Male): American English" },
|
||||
{
|
||||
value: "en-US_MichaelV2Voice",
|
||||
name: "Michael 2 (Male): American English",
|
||||
},
|
||||
{
|
||||
value: "en-US_MichaelV3Voice",
|
||||
name: "Michael 3 (Male): American English",
|
||||
},
|
||||
{ value: "en-US_HenryV3Voice", name: "Henry (Male): American English" },
|
||||
{ value: "en-US_EmilyV3Voice", name: "Emily (Female): American English" },
|
||||
{
|
||||
value: "en-US_OliviaV3Voice",
|
||||
name: "Olivia (Female): American English",
|
||||
},
|
||||
{
|
||||
value: "en-US_AllisonExpressive",
|
||||
name: "Allison (Female): American English - Expressive",
|
||||
},
|
||||
{
|
||||
value: "en-US_AllisonVoice",
|
||||
name: "Allison (Female): American English",
|
||||
},
|
||||
{
|
||||
value: "en-US_AllisonV2Voice",
|
||||
name: "Allison 2 (Female): American English",
|
||||
},
|
||||
{
|
||||
value: "en-US_AllisonV3Voice",
|
||||
name: "Allison 3 (Female): American English",
|
||||
},
|
||||
{
|
||||
value: "en-US_LisaExpressive",
|
||||
name: "Lisa (Female): American English - Expressive",
|
||||
},
|
||||
{ value: "en-US_LisaVoice", name: "Lisa (Female): American English" },
|
||||
{ value: "en-US_LisaV2Voice", name: "Lisa 2 (Female): American English" },
|
||||
{ value: "en-US_LisaV3Voice", name: "Lisa 3 (Female): American English" },
|
||||
{ value: "en-US_KevinV3Voice", name: "Kevin (Male): American English" },
|
||||
{
|
||||
value: "en-US_EmmaExpressive",
|
||||
name: "Emma (Female): American English - Expressive",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-GB",
|
||||
name: "English (GB)",
|
||||
voices: [
|
||||
{ value: "en-GB_JamesV3Voice", name: "James (Male)" },
|
||||
{ value: "en-GB_KateVoice", name: "Kate (Female)" },
|
||||
{ value: "en-GB_KateV3Voice", name: "Kate 2 (Female)" },
|
||||
{ value: "en-GB_CharlotteV3Voice", name: "Charlotte (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-US",
|
||||
name: "Spanish (North America)",
|
||||
voices: [
|
||||
{
|
||||
value: "es-US_SofiaVoice",
|
||||
name: "Sofia (Female): North American Spanish",
|
||||
},
|
||||
{
|
||||
value: "es-US_SofiaV3Voice",
|
||||
name: "Sofia 2 (Female): North American Spanish",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-LA",
|
||||
name: "Spanish (Latin America)",
|
||||
voices: [
|
||||
{
|
||||
value: "es-LA_SofiaVoice",
|
||||
name: "Sofia (Female): Latin American Spanish",
|
||||
},
|
||||
{
|
||||
value: "es-LA_SofiaV3Voice",
|
||||
name: "Sofia 2 (Female): Latin American Spanish",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-ES",
|
||||
name: "Spanish (Castilian)",
|
||||
voices: [
|
||||
{ value: "es-ES_LauraVoice", name: "Laura (Female)" },
|
||||
{ value: "es-ES_LauraV3Voice", name: "Laura 2 (Female)" },
|
||||
{ value: "es-ES_EnriqueVoice", name: "Enrique (Male)" },
|
||||
{ value: "es-ES_EnriqueV3Voice", name: "Enrique 2 (Male)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-FR",
|
||||
name: "French (FR)",
|
||||
voices: [
|
||||
{ value: "fr-FR_NicolasV3Voice", name: "Nicolas (Male)" },
|
||||
{ value: "fr-FR_ReneeVoice", name: "Renee (Female)" },
|
||||
{ value: "fr-FR_ReneeV3Voice", name: "Renee 2 (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-CA",
|
||||
name: "French (CA)",
|
||||
voices: [{ value: "fr-CA_LouiseV3Voice", name: "Louise (Female)" }],
|
||||
},
|
||||
{
|
||||
code: "it-IT",
|
||||
name: "Italian",
|
||||
voices: [
|
||||
{ value: "it-IT_FrancescaVoice", name: "Francesca (Female)" },
|
||||
{ value: "it-IT_FrancescaV2Voice", name: "Francesca 2 (Female)" },
|
||||
{ value: "it-IT_FrancescaV3Voice", name: "Francesca 3 (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "pt-BR",
|
||||
name: "Portuguese (Brazil)",
|
||||
voices: [
|
||||
{ value: "pt-BR_IsabelaVoice", name: "Isabela (Female)" },
|
||||
{ value: "pt-BR_IsabelaV3Voice", name: "Isabela 2 (Female)" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ja-JP",
|
||||
name: "Japanese",
|
||||
voices: [
|
||||
{ value: "ja-JP_EmiVoice", name: "Emi (Female)" },
|
||||
{ value: "ja-JP_EmiV3Voice", name: "Emi 2 (Female)" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,30 +0,0 @@
|
||||
import { rawData } from "./ms-speech-synthesis-raw";
|
||||
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [];
|
||||
|
||||
rawData.forEach((data) => {
|
||||
const lang = languages.find((l) => {
|
||||
return l.code === data.Locale;
|
||||
});
|
||||
|
||||
if (!lang) {
|
||||
languages.push({
|
||||
code: data.Locale,
|
||||
name: data.LocaleName,
|
||||
voices: rawData
|
||||
.filter((d) => {
|
||||
return d.Locale === data.Locale;
|
||||
})
|
||||
.map((d) => {
|
||||
return {
|
||||
value: d.ShortName,
|
||||
name: `${d.DisplayName} (${d.Gender})`,
|
||||
};
|
||||
}),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
export default languages;
|
||||
-7479
File diff suppressed because it is too large
Load Diff
@@ -1,962 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "ar-WW",
|
||||
name: "Arabic (Worldwide)",
|
||||
voices: [
|
||||
{
|
||||
value: "Laila - standard",
|
||||
name: "Laila (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Tarik - standard",
|
||||
name: "Tarik (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Miriam - standard",
|
||||
name: "Miriam (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "eu-ES",
|
||||
name: "Basque (Spain)",
|
||||
voices: [{ value: "Miren", name: "Miren (standard)", model: "standard" }],
|
||||
},
|
||||
{
|
||||
code: "bn-IN",
|
||||
name: "Bengali (India)",
|
||||
voices: [
|
||||
{ value: "Paya - standard", name: "Paya (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "bho-IN",
|
||||
name: "Bhojpuri (India)",
|
||||
voices: [
|
||||
{ value: "Jaya - standard", name: "Jaya (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "bg-BG",
|
||||
name: "Bulgarian (Bulgaria)",
|
||||
voices: [
|
||||
{
|
||||
value: "Daria - standard",
|
||||
name: "Daria (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "yue-HK",
|
||||
name: "Cantonese (Hong Kong)",
|
||||
voices: [
|
||||
{
|
||||
value: "Sinji-Ml - standard",
|
||||
name: "Sinji-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ca-ES",
|
||||
name: "Catalan (Spain)",
|
||||
voices: [
|
||||
{
|
||||
value: "Jordi - standard",
|
||||
name: "Jordi (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Montserrat - standard",
|
||||
name: "Montserrat (standard)",
|
||||
model: "enhanced",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "yue-HK",
|
||||
name: "Croatian (Croatia)",
|
||||
voices: [
|
||||
{ value: "Lana - standard", name: "Lana (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "cs-CZ",
|
||||
name: "Czech (Czech Republic)",
|
||||
voices: [
|
||||
{
|
||||
value: "Iveta - standard",
|
||||
name: "Iveta (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Zuzana - standard",
|
||||
name: "Zuzana (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Zuzana-ml - enhanced",
|
||||
name: "Zuzana (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "da-DK",
|
||||
name: "Danish (Denmark)",
|
||||
voices: [
|
||||
{
|
||||
value: "Magnus - standard",
|
||||
name: "Magnus (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Sara - standard", name: "Sara (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "nl-BE",
|
||||
name: "Dutch (Belgium)",
|
||||
voices: [
|
||||
{
|
||||
value: "Ellen - standard",
|
||||
name: "Ellen (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "nl-NL",
|
||||
name: "Dutch (Belgium)",
|
||||
voices: [
|
||||
{
|
||||
value: "Claire-Ml - standard",
|
||||
name: "Claire-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Xander - standard",
|
||||
name: "Xander (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-AU",
|
||||
name: "English (Australia)",
|
||||
voices: [
|
||||
{
|
||||
value: "Karen - standard",
|
||||
name: "Karen (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Lee - standard", name: "Lee (standard)", model: "standard" },
|
||||
{
|
||||
value: "Matilda - enhanced",
|
||||
name: "Matilda (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-IN",
|
||||
name: "English (India)",
|
||||
voices: [
|
||||
{
|
||||
value: "Isha-Ml - enhanced",
|
||||
name: "Isha-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Rishi - standard",
|
||||
name: "Rishi (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Rishi-Ml - standard",
|
||||
name: "Rishi-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Sangeeta - standard",
|
||||
name: "Sangeeta (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Veena - standard",
|
||||
name: "Veena (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-IE",
|
||||
name: "English (Ireland)",
|
||||
voices: [
|
||||
{
|
||||
value: "Moira - standard",
|
||||
name: "Moira (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-SC",
|
||||
name: "English (Scotland)",
|
||||
voices: [
|
||||
{
|
||||
value: "Fiona - standard",
|
||||
name: "Fiona (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-ZA",
|
||||
name: "English (South Africa)",
|
||||
voices: [
|
||||
{
|
||||
value: "Tessa - standard",
|
||||
name: "Tessa (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-GB",
|
||||
name: "English (United Kingdom)",
|
||||
voices: [
|
||||
{
|
||||
value: "Daniel - standard",
|
||||
name: "Daniel (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Kate - standard", name: "Kate (standard)", model: "standard" },
|
||||
{
|
||||
value: "Malcolm - standard",
|
||||
name: "Malcolm (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Oliver - standard",
|
||||
name: "Oliver (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Serena - enhanced",
|
||||
name: "Serena (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Simon - standard",
|
||||
name: "Simon (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Stephanie - standard",
|
||||
name: "Stephanie (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English (United States)",
|
||||
voices: [
|
||||
{
|
||||
value: "Allison - standard",
|
||||
name: "Allison (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Ava-Ml - enhanced",
|
||||
name: "Ava-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Chloe - standard",
|
||||
name: "Chloe (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Evan - enhanced", name: "Evan (enhanced)", model: "enhanced" },
|
||||
{
|
||||
value: "Nathan - enhanced",
|
||||
name: "Nathan (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Evelyn - standard",
|
||||
name: "Evelyn (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Nolan - standard",
|
||||
name: "Nolan (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Samantha - standard",
|
||||
name: "Samantha (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Susan - standard",
|
||||
name: "Susan (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Tom - standard", name: "Tom (standard)", model: "standard" },
|
||||
{
|
||||
value: "Zoe-Ml - enhanced",
|
||||
name: "Zoe-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fi-FI",
|
||||
name: "Finnish (Finland)",
|
||||
voices: [
|
||||
{ value: "Onni - standard", name: "Onni (standard)", model: "standard" },
|
||||
{ value: "Satu - standard", name: "Satu (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-BE",
|
||||
name: "French (Belgium)",
|
||||
voices: [
|
||||
{ value: "Aude - standard", name: "Aude (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-CA",
|
||||
name: "French (Canada)",
|
||||
voices: [
|
||||
{
|
||||
value: "Amelie-Ml - enhanced",
|
||||
name: "Amelie-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Chantal - standard",
|
||||
name: "Chantal (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Nicolas - standard",
|
||||
name: "Nicolas (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "fr-FR",
|
||||
name: "French (France)",
|
||||
voices: [
|
||||
{
|
||||
value: "Audrey-Ml - enhanced",
|
||||
name: "Audrey-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Aurelie - standard",
|
||||
name: "Aurelie (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Thomas - standard",
|
||||
name: "Thomas (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "gl-ES",
|
||||
name: "Galician (Spain)",
|
||||
voices: [
|
||||
{
|
||||
value: "Carmela - standard",
|
||||
name: "Carmela (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "de-DE",
|
||||
name: "German (Germany)",
|
||||
voices: [
|
||||
{
|
||||
value: "Anna-Ml - enhanced",
|
||||
name: "Anna-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Markus - standard",
|
||||
name: "Markus (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Petra-Ml - enhanced",
|
||||
name: "Petra-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Viktor - standard",
|
||||
name: "Viktor (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Yannick - standard",
|
||||
name: "Yannick (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "el-GR",
|
||||
name: "Greek (Greece)",
|
||||
voices: [
|
||||
{
|
||||
value: "Melina - standard",
|
||||
name: "Melina (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Nikos - standard",
|
||||
name: "Nikos (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "he-IL",
|
||||
name: "Hebrew (Israel)",
|
||||
voices: [
|
||||
{
|
||||
value: "Carmit - standard",
|
||||
name: "Carmit (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "hi-IN",
|
||||
name: "Hindi (India)",
|
||||
voices: [
|
||||
{
|
||||
value: "Kiyara-Ml - enhanced",
|
||||
name: "Kiyara-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Lekha - standard",
|
||||
name: "Lekha (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "neel - standard", name: "Neel (standard)", model: "standard" },
|
||||
{
|
||||
value: "Neel-Ml - standard",
|
||||
name: "Neel-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "hu-HU",
|
||||
name: "Hungarian (Hungary)",
|
||||
voices: [
|
||||
{
|
||||
value: "Mariska - standard",
|
||||
name: "Mariska (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "id-ID",
|
||||
name: "Indonesian (Indonesia)",
|
||||
voices: [
|
||||
{
|
||||
value: "Damayanti - standard",
|
||||
name: "Damayanti (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "it-IT",
|
||||
name: "Italian (Italy)",
|
||||
voices: [
|
||||
{ value: "Emma - enhanced", name: "Emma (enhanced)", model: "enhanced" },
|
||||
{
|
||||
value: "Federica-Ml - standard",
|
||||
name: "Federica-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Luca - standard", name: "Luca (standard)", model: "standard" },
|
||||
{
|
||||
value: "Neel-Ml - standard",
|
||||
name: "Neel-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Paola - standard",
|
||||
name: "Paola (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ja-JP",
|
||||
name: "Japanese (Japan)",
|
||||
voices: [
|
||||
{
|
||||
value: "Ayane - standard",
|
||||
name: "Ayane (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Daisuke - standard",
|
||||
name: "Daisuke (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Ichiro - standard",
|
||||
name: "Ichiro (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Koharu - standard",
|
||||
name: "Koharu (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Kyoko - standard",
|
||||
name: "Kyoko (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Mizuki - standard",
|
||||
name: "Mizuki (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Otoya - standard",
|
||||
name: "Otoya (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Sakura - standard",
|
||||
name: "Sakura (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Seiji - standard",
|
||||
name: "Seiji (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "kn-IN",
|
||||
name: "Kannada (India)",
|
||||
voices: [
|
||||
{
|
||||
value: "Alpana - standard",
|
||||
name: "Alpana (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ko-KR",
|
||||
name: "Korean (South Korea)",
|
||||
voices: [
|
||||
{ value: "Jina - enhanced", name: "Jina (enhanced)", model: "enhanced" },
|
||||
{ value: "Sora - standard", name: "Sora (standard)", model: "standard" },
|
||||
{ value: "Yuna - standard", name: "Yuna (standard)", model: "standard" },
|
||||
{
|
||||
value: "Yuna-Ml - enhanced",
|
||||
name: "Yuna-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "zlm-MY",
|
||||
name: "Malay (Malaysia)",
|
||||
voices: [
|
||||
{
|
||||
value: "Amira - standard",
|
||||
name: "Amira (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "zh-CN",
|
||||
name: "Mandarin (China)",
|
||||
voices: [
|
||||
{
|
||||
value: "Lili-Ml - enhanced",
|
||||
name: "Lili-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Binbin-Ml - standard",
|
||||
name: "Binbin-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Lilian-Ml - standard",
|
||||
name: "Lilian-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Lisheng-Ml - standard",
|
||||
name: "Lisheng-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Tiantian-Ml - standard",
|
||||
name: "Tiantian-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Tingting-Ml - standard",
|
||||
name: "Tingting-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "cmn-TW",
|
||||
name: "Mandarin (Taiwan)",
|
||||
voices: [
|
||||
{
|
||||
value: "Meijia-Ml - standard",
|
||||
name: "Meijia-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "mr-IN",
|
||||
name: "Marathi (India)",
|
||||
voices: [
|
||||
{
|
||||
value: "Ananya - standard",
|
||||
name: "Ananya (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "nb-NO",
|
||||
name: "Norwegian Bokmål (Norway)",
|
||||
voices: [
|
||||
{
|
||||
value: "Henrik - standard",
|
||||
name: "Henrik (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Nora - standard", name: "Nora (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "pl-PL",
|
||||
name: "Polish (Poland)",
|
||||
voices: [
|
||||
{ value: "Ewa - enhanced", name: "Ewa (enhanced)", model: "enhanced" },
|
||||
{
|
||||
value: "Krzysztof - standard",
|
||||
name: "Krzysztof (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Zosia - standard",
|
||||
name: "Zosia (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "pt-BR",
|
||||
name: "Portuguese (Brazil)",
|
||||
voices: [
|
||||
{
|
||||
value: "luciana - enhanced",
|
||||
name: "Luciana (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Fernanda - standard",
|
||||
name: "Fernanda (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Felipe - standard",
|
||||
name: "Felipe (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "pt-PT",
|
||||
name: "Portuguese (Portugal)",
|
||||
voices: [
|
||||
{
|
||||
value: "Catarina - standard",
|
||||
name: "Catarina (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Joana - standard",
|
||||
name: "Joana (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Joaquim - standard",
|
||||
name: "Joaquim (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ro-RO",
|
||||
name: "Romanian (Romania)",
|
||||
voices: [
|
||||
{
|
||||
value: "Ioana - standard",
|
||||
name: "Ioana (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ru-RU",
|
||||
name: "Russian (Russia)",
|
||||
voices: [
|
||||
{
|
||||
value: "Katya - standard",
|
||||
name: "Katya (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Katya-Ml - standard",
|
||||
name: "Katya-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Milena - standard",
|
||||
name: "Milena (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "yuri - standard", name: "Yuri (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "sk-SK",
|
||||
name: "Slovak (Slovakia)",
|
||||
voices: [
|
||||
{
|
||||
value: "Laura - standard",
|
||||
name: "Laura (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-AR",
|
||||
name: "Spanish (Argentina)",
|
||||
voices: [
|
||||
{
|
||||
value: "Diego - standard",
|
||||
name: "Diego (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Isabela - standard",
|
||||
name: "Isabela (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-CL",
|
||||
name: "Spanish (Chile)",
|
||||
voices: [
|
||||
{
|
||||
value: "Francisca - standard",
|
||||
name: "Francisca (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-CO",
|
||||
name: "Spanish (Colombia)",
|
||||
voices: [
|
||||
{
|
||||
value: "Carlos - standard",
|
||||
name: "Carlos (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Soledad - standard",
|
||||
name: "Soledad (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Ximena - standard",
|
||||
name: "Ximena (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-MX",
|
||||
name: "Spanish (Mexico)",
|
||||
voices: [
|
||||
{
|
||||
value: "Angelica - standard",
|
||||
name: "Angelica (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Javier - standard",
|
||||
name: "Javier (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{ value: "Juan - standard", name: "Juan (standard)", model: "standard" },
|
||||
{
|
||||
value: "Paulina-Ml - enhanced",
|
||||
name: "Paulina-Ml (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "es-ES",
|
||||
name: "Spanish (Spain)",
|
||||
voices: [
|
||||
{
|
||||
value: "Jorge - standard",
|
||||
name: "Jorge (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Marisol-Ml - standard",
|
||||
name: "Marisol-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Monica-Ml - standard",
|
||||
name: "Monica-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "sv-SE",
|
||||
name: "Swedish (Sweden)",
|
||||
voices: [
|
||||
{ value: "Alva - standard", name: "Alva (standard)", model: "standard" },
|
||||
{
|
||||
value: "Klara - standard",
|
||||
name: "Klara (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Oskar - standard",
|
||||
name: "Oskar (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "ta-IN",
|
||||
name: "Tamil (India)",
|
||||
voices: [
|
||||
{ value: "Vani - standard", name: "Vani (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "te-IN",
|
||||
name: "Telugu (India)",
|
||||
voices: [
|
||||
{
|
||||
value: "Geeta - standard",
|
||||
name: "Geeta (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "th-TH",
|
||||
name: "Thai (Thailand)",
|
||||
voices: [
|
||||
{
|
||||
value: "Kanya - enhanced",
|
||||
name: "Kanya (enhanced)",
|
||||
model: "enhanced",
|
||||
},
|
||||
{
|
||||
value: "Narisa - standard",
|
||||
name: "Narisa (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "tr-TR",
|
||||
name: "Turkish (Turkey)",
|
||||
voices: [
|
||||
{
|
||||
value: "Cem-Ml - standard",
|
||||
name: "Cem-Ml (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
{
|
||||
value: "Yelda - standard",
|
||||
name: "Yelda (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "uk-UA",
|
||||
name: "Ukrainian (Ukraine)",
|
||||
voices: [
|
||||
{
|
||||
value: "Lesya - standard",
|
||||
name: "Lesya (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "va-ES",
|
||||
name: "Valencian (Spain)",
|
||||
voices: [
|
||||
{
|
||||
value: "Empar - standard",
|
||||
name: "Empar (standard)",
|
||||
model: "standard",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
code: "vi-VN",
|
||||
name: "Vietnamese (Vietnam)",
|
||||
voices: [
|
||||
{ value: "Linh - standard", name: "Linh (standard)", model: "standard" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,20 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English",
|
||||
voices: [
|
||||
{
|
||||
value: "English-US.Female-1",
|
||||
name: "Female",
|
||||
},
|
||||
{
|
||||
value: "English-US.Male-1",
|
||||
name: "Male",
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,43 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English (US)",
|
||||
voices: [
|
||||
{ value: "3", name: "Alana B." },
|
||||
{ value: "4", name: "Ramona J." },
|
||||
{ value: "5", name: "Ramona J. (promo)" },
|
||||
{ value: "7", name: "Wade C." },
|
||||
{ value: "8", name: "Sofia H." },
|
||||
{ value: "9", name: "David D." },
|
||||
{ value: "11", name: "Isabel V." },
|
||||
{ value: "12", name: "Ava H." },
|
||||
{ value: "13", name: "Jeremy G." },
|
||||
{ value: "14", name: "Nicole L." },
|
||||
{ value: "15", name: "Paige L." },
|
||||
{ value: "16", name: "Tobin A." },
|
||||
{ value: "17", name: "Kai M." },
|
||||
{ value: "18", name: "Tristan F." },
|
||||
{ value: "19", name: "Patrick K." },
|
||||
{ value: "20", name: "Soifia H. (promo)" },
|
||||
{ value: "21", name: "Damian P. (promo)" },
|
||||
{ value: "22", name: "Jodi P. (promo)" },
|
||||
{ value: "23", name: "Lee M. (promo)" },
|
||||
{ value: "24", name: "Selene R. (promo)" },
|
||||
{ value: "26", name: "Wade C. (promo)" },
|
||||
{ value: "27", name: "Joe F." },
|
||||
{ value: "28", name: "Joe F. (promo)" },
|
||||
{ value: "29", name: "Garry J. (character)" },
|
||||
{ value: "33", name: "Jude D." },
|
||||
{ value: "34", name: "Eric S. (promo)" },
|
||||
{ value: "35", name: "Chase J." },
|
||||
{ value: "37", name: "Steve B. (promo)" },
|
||||
{ value: "38", name: "Bella B. (promo)" },
|
||||
{ value: "39", name: "Tilda C. (promo)" },
|
||||
{ value: "41", name: "Paul B. (promo)" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,18 +0,0 @@
|
||||
import type { VoiceLanguage } from "../types";
|
||||
|
||||
export const languages: VoiceLanguage[] = [
|
||||
{
|
||||
code: "en-US",
|
||||
name: "English",
|
||||
voices: [
|
||||
{ value: "alloy", name: "Alloy" },
|
||||
{ value: "echo", name: "Echo" },
|
||||
{ value: "fable", name: "Fable" },
|
||||
{ value: "onyx", name: "Onyx" },
|
||||
{ value: "nova", name: "Nova" },
|
||||
{ value: "shimmer", name: "Shimmer" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default languages;
|
||||
@@ -1,13 +0,0 @@
|
||||
import type { Model } from "../types";
|
||||
|
||||
export const models: Model[] = [
|
||||
{ name: "Aurora English (US) Female", value: "alpha-aurora-en-v2" },
|
||||
{ name: "Asteria English (US) Female", value: "alpha-asteria-en-v2" },
|
||||
{ name: "Artemis English (UK) Female", value: "alpha-artemis-en-v3" },
|
||||
{ name: "Andromeda English (US) Female", value: "alpha-andromeda-en-v3" },
|
||||
{ name: "Stella English (UK) Female", value: "alpha-stella-en-v2" },
|
||||
{ name: "Orion English (US) Male", value: "alpha-orion-en-v2" },
|
||||
{ name: "Atlas English (US) Male", value: "alpha-atlas-en-v3" },
|
||||
];
|
||||
|
||||
export default models;
|
||||
@@ -1,11 +0,0 @@
|
||||
import type { Model } from "../types";
|
||||
|
||||
export const models: Model[] = [
|
||||
{ name: "Turbo v2", value: "eleven_turbo_v2" },
|
||||
{ name: "Multilingual v2", value: "eleven_multilingual_v2" },
|
||||
{ name: "Multilingual v1", value: "eleven_multilingual_v1" },
|
||||
{ name: "English v1", value: "eleven_monolingual_v1" },
|
||||
{ name: "English v2", value: "eleven_english_sts_v2" },
|
||||
];
|
||||
|
||||
export default models;
|
||||
@@ -1,8 +0,0 @@
|
||||
import type { Model } from "../types";
|
||||
|
||||
export const models: Model[] = [
|
||||
{ name: "TTS-1", value: "tts-1" },
|
||||
{ name: "TTS-1-HD", value: "tts-1-hd" },
|
||||
];
|
||||
|
||||
export default models;
|
||||
Vendored
+1
-1
@@ -42,7 +42,7 @@ export interface Voice {
|
||||
|
||||
export interface Language {
|
||||
name: string;
|
||||
code: string;
|
||||
value: string;
|
||||
codeMix?: string;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user