use crate::synthesizer::Voice;
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub enum Language {
#[default]
AutoDetect,
AfZa,
AmEt,
ArAe,
ArBh,
ArDz,
ArEg,
ArIq,
ArJo,
ArKw,
ArLy,
ArMa,
ArQa,
ArSa,
ArSy,
ArTn,
ArYe,
BgBg,
BnBd,
BnIn,
CaEs,
CsCz,
CyGb,
DaDk,
DeAt,
DeCh,
DeDe,
ElGr,
EnAu,
EnCa,
EnGb,
EnHk,
EnIe,
EnIn,
EnKe,
EnNg,
EnNz,
EnPh,
EnSg,
EnTz,
EnUs,
EnZa,
EsAr,
EsBo,
EsCl,
EsCo,
EsCr,
EsCu,
EsDo,
EsEc,
EsEs,
EsGq,
EsGt,
EsHn,
EsMx,
EsNi,
EsPa,
EsPe,
EsPr,
EsPy,
EsSv,
EsUs,
EsUy,
EsVe,
EtEe,
FaIr,
FiFi,
FilPh,
FrBe,
FrCa,
FrCh,
FrFr,
GaIe,
GlEs,
GuIn,
HeIl,
HiIn,
HrHr,
HuHu,
IdId,
IsIs,
ItIt,
JaJp,
JvId,
KkKz,
KmKh,
KnIn,
KoKr,
LoLa,
LtLt,
LvLv,
MkMk,
MlIn,
MrIn,
MsMy,
MtMt,
MyMm,
NbNo,
NlBe,
NlNl,
PlPl,
PsAf,
PtBr,
PtPt,
RoRo,
RuRu,
SiLk,
SkSk,
SlSi,
SoSo,
SrRs,
SuId,
SvSe,
SwKe,
SwTz,
TaIn,
TaLk,
TaSg,
TeIn,
ThTh,
TrTr,
UkUa,
UrIn,
UrPk,
UzUz,
ViVn,
ZhCn,
ZhHk,
ZhTw,
ZuZa,
}
impl Language {
pub fn as_str(&self) -> &'static str {
match *self {
Language::AutoDetect => "en-US",
Language::AfZa => "af-ZA",
Language::AmEt => "am-ET",
Language::ArAe => "ar-AE",
Language::ArBh => "ar-BH",
Language::ArDz => "ar-DZ",
Language::ArEg => "ar-EG",
Language::ArIq => "ar-IQ",
Language::ArJo => "ar-JO",
Language::ArKw => "ar-KW",
Language::ArLy => "ar-LY",
Language::ArMa => "ar-MA",
Language::ArQa => "ar-QA",
Language::ArSa => "ar-SA",
Language::ArSy => "ar-SY",
Language::ArTn => "ar-TN",
Language::ArYe => "ar-YE",
Language::BgBg => "bg-BG",
Language::BnBd => "bn-BD",
Language::BnIn => "bn-IN",
Language::CaEs => "ca-ES",
Language::CsCz => "cs-CZ",
Language::CyGb => "cy-GB",
Language::DaDk => "da-DK",
Language::DeAt => "de-AT",
Language::DeCh => "de-CH",
Language::DeDe => "de-DE",
Language::ElGr => "el-GR",
Language::EnAu => "en-AU",
Language::EnCa => "en-CA",
Language::EnGb => "en-GB",
Language::EnHk => "en-HK",
Language::EnIe => "en-IE",
Language::EnIn => "en-IN",
Language::EnKe => "en-KE",
Language::EnNg => "en-NG",
Language::EnNz => "en-NZ",
Language::EnPh => "en-PH",
Language::EnSg => "en-SG",
Language::EnTz => "en-TZ",
Language::EnUs => "en-US",
Language::EnZa => "en-ZA",
Language::EsAr => "es-AR",
Language::EsBo => "es-BO",
Language::EsCl => "es-CL",
Language::EsCo => "es-CO",
Language::EsCr => "es-CR",
Language::EsCu => "es-CU",
Language::EsDo => "es-DO",
Language::EsEc => "es-EC",
Language::EsEs => "es-ES",
Language::EsGq => "es-GQ",
Language::EsGt => "es-GT",
Language::EsHn => "es-HN",
Language::EsMx => "es-MX",
Language::EsNi => "es-NI",
Language::EsPa => "es-PA",
Language::EsPe => "es-PE",
Language::EsPr => "es-PR",
Language::EsPy => "es-PY",
Language::EsSv => "es-SV",
Language::EsUs => "es-US",
Language::EsUy => "es-UY",
Language::EsVe => "es-VE",
Language::EtEe => "et-EE",
Language::FaIr => "fa-IR",
Language::FiFi => "fi-FI",
Language::FilPh => "fil-PH",
Language::FrBe => "fr-BE",
Language::FrCa => "fr-CA",
Language::FrCh => "fr-CH",
Language::FrFr => "fr-FR",
Language::GaIe => "ga-IE",
Language::GlEs => "gl-ES",
Language::GuIn => "gu-IN",
Language::HeIl => "he-IL",
Language::HiIn => "hi-IN",
Language::HrHr => "hr-HR",
Language::HuHu => "hu-HU",
Language::IdId => "id-ID",
Language::IsIs => "is-IS",
Language::ItIt => "it-IT",
Language::JaJp => "ja-JP",
Language::JvId => "jv-ID",
Language::KkKz => "kk-KZ",
Language::KmKh => "km-KH",
Language::KnIn => "kn-IN",
Language::KoKr => "ko-KR",
Language::LoLa => "lo-LA",
Language::LtLt => "lt-LT",
Language::LvLv => "lv-LV",
Language::MkMk => "mk-MK",
Language::MlIn => "ml-IN",
Language::MrIn => "mr-IN",
Language::MsMy => "ms-MY",
Language::MtMt => "mt-MT",
Language::MyMm => "my-MM",
Language::NbNo => "nb-NO",
Language::NlBe => "nl-BE",
Language::NlNl => "nl-NL",
Language::PlPl => "pl-PL",
Language::PsAf => "ps-AF",
Language::PtBr => "pt-BR",
Language::PtPt => "pt-PT",
Language::RoRo => "ro-RO",
Language::RuRu => "ru-RU",
Language::SiLk => "si-LK",
Language::SkSk => "sk-SK",
Language::SlSi => "sl-SI",
Language::SoSo => "so-SO",
Language::SrRs => "sr-RS",
Language::SuId => "su-ID",
Language::SvSe => "sv-SE",
Language::SwKe => "sw-KE",
Language::SwTz => "sw-TZ",
Language::TaIn => "ta-IN",
Language::TaLk => "ta-LK",
Language::TaSg => "ta-SG",
Language::TeIn => "te-IN",
Language::ThTh => "th-TH",
Language::TrTr => "tr-TR",
Language::UkUa => "uk-UA",
Language::UrIn => "ur-IN",
Language::UrPk => "ur-PK",
Language::UzUz => "uz-UZ",
Language::ViVn => "vi-VN",
Language::ZhCn => "zh-CN",
Language::ZhHk => "zh-HK",
Language::ZhTw => "zh-TW",
Language::ZuZa => "zu-ZA",
}
}
pub fn default_voice(&self) -> Voice {
match *self {
Language::AutoDetect => Voice::EnUsJennyNeural,
Language::AfZa => Voice::AfZaAdriNeural,
Language::AmEt => Voice::AmEtAmehaNeural,
Language::ArAe => Voice::ArAeFatimaNeural,
Language::ArBh => Voice::ArBhAliNeural,
Language::ArDz => Voice::ArDzAminaNeural,
Language::ArEg => Voice::ArEgSalmaNeural,
Language::ArIq => Voice::ArIqBasselNeural,
Language::ArJo => Voice::ArJoSanaNeural,
Language::ArKw => Voice::ArKwFahedNeural,
Language::ArLy => Voice::ArLyImanNeural,
Language::ArMa => Voice::ArMaJamalNeural,
Language::ArQa => Voice::ArQaAmalNeural,
Language::ArSa => Voice::ArSaHamedNeural,
Language::ArSy => Voice::ArSyAmanyNeural,
Language::ArTn => Voice::ArTnHediNeural,
Language::ArYe => Voice::ArYeMaryamNeural,
Language::BgBg => Voice::BgBgBorislavNeural,
Language::BnBd => Voice::BnBdNabanitaNeural,
Language::BnIn => Voice::BnInBashkarNeural,
Language::CaEs => Voice::CaEsJoanaNeural,
Language::CsCz => Voice::CsCzAntoninNeural,
Language::CyGb => Voice::CyGbAledNeural,
Language::DaDk => Voice::DaDkChristelNeural,
Language::DeAt => Voice::DeAtIngridNeural,
Language::DeCh => Voice::DeChJanNeural,
Language::DeDe => Voice::DeDeKatjaNeural,
Language::ElGr => Voice::ElGrAthinaNeural,
Language::EnAu => Voice::EnAuNatashaNeural,
Language::EnCa => Voice::EnCaClaraNeural,
Language::EnGb => Voice::EnGbLibbyNeural,
Language::EnHk => Voice::EnHkSamNeural,
Language::EnIe => Voice::EnIeConnorNeural,
Language::EnIn => Voice::EnInNeerjaNeural,
Language::EnKe => Voice::EnKeAsiliaNeural,
Language::EnNg => Voice::EnNgAbeoNeural,
Language::EnNz => Voice::EnNzMitchellNeural,
Language::EnPh => Voice::EnPhJamesNeural,
Language::EnSg => Voice::EnSgLunaNeural,
Language::EnTz => Voice::EnTzElimuNeural,
Language::EnUs => Voice::EnUsJennyNeural,
Language::EnZa => Voice::EnZaLeahNeural,
Language::EsAr => Voice::EsArElenaNeural,
Language::EsBo => Voice::EsBoMarceloNeural,
Language::EsCl => Voice::EsClCatalinaNeural,
Language::EsCo => Voice::EsCoGonzaloNeural,
Language::EsCr => Voice::EsCrJuanNeural,
Language::EsCu => Voice::EsCuBelkysNeural,
Language::EsDo => Voice::EsDoEmilioNeural,
Language::EsEc => Voice::EsEcAndreaNeural,
Language::EsEs => Voice::EsEsAlvaroNeural,
Language::EsGq => Voice::EsGqJavierNeural,
Language::EsGt => Voice::EsGtAndresNeural,
Language::EsHn => Voice::EsHnCarlosNeural,
Language::EsMx => Voice::EsMxDaliaNeural,
Language::EsNi => Voice::EsNiFedericoNeural,
Language::EsPa => Voice::EsPaMargaritaNeural,
Language::EsPe => Voice::EsPeAlexNeural,
Language::EsPr => Voice::EsPrKarinaNeural,
Language::EsPy => Voice::EsPyMarioNeural,
Language::EsSv => Voice::EsSvLorenaNeural,
Language::EsUs => Voice::EsUsAlonsoNeural,
Language::EsUy => Voice::EsUyMateoNeural,
Language::EsVe => Voice::EsVePaolaNeural,
Language::EtEe => Voice::EtEeAnuNeural,
Language::FaIr => Voice::FaIrDilaraNeural,
Language::FiFi => Voice::FiFiSelmaNeural,
Language::FilPh => Voice::FilPhAngeloNeural,
Language::FrBe => Voice::FrBeCharlineNeural,
Language::FrCa => Voice::FrCaSylvieNeural,
Language::FrCh => Voice::FrChArianeNeural,
Language::FrFr => Voice::FrFrDeniseNeural,
Language::GaIe => Voice::GaIeColmNeural,
Language::GlEs => Voice::GlEsRoiNeural,
Language::GuIn => Voice::GuInDhwaniNeural,
Language::HeIl => Voice::HeIlAvriNeural,
Language::HiIn => Voice::HiInMadhurNeural,
Language::HrHr => Voice::HrHrGabrijelaNeural,
Language::HuHu => Voice::HuHuNoemiNeural,
Language::IdId => Voice::IdIdArdiNeural,
Language::IsIs => Voice::IsIsGudrunNeural,
Language::ItIt => Voice::ItItIsabellaNeural,
Language::JaJp => Voice::JaJpNanamiNeural,
Language::JvId => Voice::JvIdDimasNeural,
Language::KkKz => Voice::KkKzAigulNeural,
Language::KmKh => Voice::KmKhPisethNeural,
Language::KnIn => Voice::KnInGaganNeural,
Language::KoKr => Voice::KoKrSunHiNeural,
Language::LoLa => Voice::LoLaChanthavongNeural,
Language::LtLt => Voice::LtLtLeonasNeural,
Language::LvLv => Voice::LvLvEveritaNeural,
Language::MkMk => Voice::MkMkAleksandarNeural,
Language::MlIn => Voice::MlInMidhunNeural,
Language::MrIn => Voice::MrInAarohiNeural,
Language::MsMy => Voice::MsMyOsmanNeural,
Language::MtMt => Voice::MtMtGraceNeural,
Language::MyMm => Voice::MyMmNilarNeural,
Language::NbNo => Voice::NbNoPernilleNeural,
Language::NlBe => Voice::NlBeArnaudNeural,
Language::NlNl => Voice::NlNlColetteNeural,
Language::PlPl => Voice::PlPlAgnieszkaNeural,
Language::PsAf => Voice::PsAfGulNawazNeural,
Language::PtBr => Voice::PtBrFranciscaNeural,
Language::PtPt => Voice::PtPtDuarteNeural,
Language::RoRo => Voice::RoRoAlinaNeural,
Language::RuRu => Voice::RuRuSvetlanaNeural,
Language::SiLk => Voice::SiLkSameeraNeural,
Language::SkSk => Voice::SkSkLukasNeural,
Language::SlSi => Voice::SlSiPetraNeural,
Language::SoSo => Voice::SoSoMuuseNeural,
Language::SrRs => Voice::SrRsNicholasNeural,
Language::SuId => Voice::SuIdJajangNeural,
Language::SvSe => Voice::SvSeSofieNeural,
Language::SwKe => Voice::SwKeRafikiNeural,
Language::SwTz => Voice::SwTzDaudiNeural,
Language::TaIn => Voice::TaInPallaviNeural,
Language::TaLk => Voice::TaLkKumarNeural,
Language::TaSg => Voice::TaSgAnbuNeural,
Language::TeIn => Voice::TeInMohanNeural,
Language::ThTh => Voice::ThThPremwadeeNeural,
Language::TrTr => Voice::TrTrAhmetNeural,
Language::UkUa => Voice::UkUaOstapNeural,
Language::UrIn => Voice::UrInGulNeural,
Language::UrPk => Voice::UrPkAsadNeural,
Language::UzUz => Voice::UzUzMadinaNeural,
Language::ViVn => Voice::ViVnHoaiMyNeural,
Language::ZhCn => Voice::ZhCnXiaoxiaoNeural,
Language::ZhHk => Voice::ZhHkHiuMaanNeural,
Language::ZhTw => Voice::ZhTwHsiaoChenNeural,
Language::ZuZa => Voice::ZuZaThandoNeural,
}
}
}