in src/sdk/SpeechSynthesizer.ts [212:348]
public buildSsml(text: string): string {
const languageToDefaultVoice: IStringDictionary<string> = {
["af-ZA"]: "af-ZA-AdriNeural",
["am-ET"]: "am-ET-AmehaNeural",
["ar-AE"]: "ar-AE-FatimaNeural",
["ar-BH"]: "ar-BH-AliNeural",
["ar-DZ"]: "ar-DZ-AminaNeural",
["ar-EG"]: "ar-EG-SalmaNeural",
["ar-IQ"]: "ar-IQ-BasselNeural",
["ar-JO"]: "ar-JO-SanaNeural",
["ar-KW"]: "ar-KW-FahedNeural",
["ar-LY"]: "ar-LY-ImanNeural",
["ar-MA"]: "ar-MA-JamalNeural",
["ar-QA"]: "ar-QA-AmalNeural",
["ar-SA"]: "ar-SA-HamedNeural",
["ar-SY"]: "ar-SY-AmanyNeural",
["ar-TN"]: "ar-TN-HediNeural",
["ar-YE"]: "ar-YE-MaryamNeural",
["bg-BG"]: "bg-BG-BorislavNeural",
["bn-BD"]: "bn-BD-NabanitaNeural",
["ca-ES"]: "ca-ES-JoanaNeural",
["cs-CZ"]: "cs-CZ-AntoninNeural",
["cy-GB"]: "cy-GB-AledNeural",
["da-DK"]: "da-DK-ChristelNeural",
["de-AT"]: "de-AT-IngridNeural",
["de-CH"]: "de-CH-JanNeural",
["de-DE"]: "de-DE-KatjaNeural",
["el-GR"]: "el-GR-AthinaNeural",
["en-AU"]: "en-AU-NatashaNeural",
["en-CA"]: "en-CA-ClaraNeural",
["en-GB"]: "en-GB-LibbyNeural",
["en-HK"]: "en-HK-SamNeural",
["en-IE"]: "en-IE-ConnorNeural",
["en-IN"]: "en-IN-NeerjaNeural",
["en-KE"]: "en-KE-AsiliaNeural",
["en-NG"]: "en-NG-AbeoNeural",
["en-NZ"]: "en-NZ-MitchellNeural",
["en-PH"]: "en-PH-JamesNeural",
["en-SG"]: "en-SG-LunaNeural",
["en-TZ"]: "en-TZ-ElimuNeural",
["en-US"]: "en-US-JennyNeural",
["en-ZA"]: "en-ZA-LeahNeural",
["es-AR"]: "es-AR-ElenaNeural",
["es-BO"]: "es-BO-MarceloNeural",
["es-CL"]: "es-CL-CatalinaNeural",
["es-CO"]: "es-CO-GonzaloNeural",
["es-CR"]: "es-CR-JuanNeural",
["es-CU"]: "es-CU-BelkysNeural",
["es-DO"]: "es-DO-EmilioNeural",
["es-EC"]: "es-EC-AndreaNeural",
["es-ES"]: "es-ES-AlvaroNeural",
["es-GQ"]: "es-GQ-JavierNeural",
["es-GT"]: "es-GT-AndresNeural",
["es-HN"]: "es-HN-CarlosNeural",
["es-MX"]: "es-MX-DaliaNeural",
["es-NI"]: "es-NI-FedericoNeural",
["es-PA"]: "es-PA-MargaritaNeural",
["es-PE"]: "es-PE-AlexNeural",
["es-PR"]: "es-PR-KarinaNeural",
["es-PY"]: "es-PY-MarioNeural",
["es-SV"]: "es-SV-LorenaNeural",
["es-US"]: "es-US-AlonsoNeural",
["es-UY"]: "es-UY-MateoNeural",
["es-VE"]: "es-VE-PaolaNeural",
["et-EE"]: "et-EE-AnuNeural",
["fa-IR"]: "fa-IR-DilaraNeural",
["fi-FI"]: "fi-FI-SelmaNeural",
["fil-PH"]: "fil-PH-AngeloNeural",
["fr-BE"]: "fr-BE-CharlineNeural",
["fr-CA"]: "fr-CA-SylvieNeural",
["fr-CH"]: "fr-CH-ArianeNeural",
["fr-FR"]: "fr-FR-DeniseNeural",
["ga-IE"]: "ga-IE-ColmNeural",
["gl-ES"]: "gl-ES-RoiNeural",
["gu-IN"]: "gu-IN-DhwaniNeural",
["he-IL"]: "he-IL-AvriNeural",
["hi-IN"]: "hi-IN-MadhurNeural",
["hr-HR"]: "hr-HR-GabrijelaNeural",
["hu-HU"]: "hu-HU-NoemiNeural",
["id-ID"]: "id-ID-ArdiNeural",
["it-IT"]: "it-IT-IsabellaNeural",
["ja-JP"]: "ja-JP-NanamiNeural",
["jv-ID"]: "jv-ID-DimasNeural",
["km-KH"]: "km-KH-PisethNeural",
["ko-KR"]: "ko-KR-SunHiNeural",
["lt-LT"]: "lt-LT-LeonasNeural",
["lv-LV"]: "lv-LV-EveritaNeural",
["mr-IN"]: "mr-IN-AarohiNeural",
["ms-MY"]: "ms-MY-OsmanNeural",
["mt-MT"]: "mt-MT-GraceNeural",
["my-MM"]: "my-MM-NilarNeural",
["nb-NO"]: "nb-NO-PernilleNeural",
["nl-BE"]: "nl-BE-ArnaudNeural",
["nl-NL"]: "nl-NL-ColetteNeural",
["pl-PL"]: "pl-PL-AgnieszkaNeural",
["pt-BR"]: "pt-BR-FranciscaNeural",
["pt-PT"]: "pt-PT-DuarteNeural",
["ro-RO"]: "ro-RO-AlinaNeural",
["ru-RU"]: "ru-RU-SvetlanaNeural",
["sk-SK"]: "sk-SK-LukasNeural",
["sl-SI"]: "sl-SI-PetraNeural",
["so-SO"]: "so-SO-MuuseNeural",
["su-ID"]: "su-ID-JajangNeural",
["sv-SE"]: "sv-SE-SofieNeural",
["sw-KE"]: "sw-KE-RafikiNeural",
["sw-TZ"]: "sw-TZ-DaudiNeural",
["ta-IN"]: "ta-IN-PallaviNeural",
["ta-LK"]: "ta-LK-KumarNeural",
["ta-SG"]: "ta-SG-AnbuNeural",
["te-IN"]: "te-IN-MohanNeural",
["th-TH"]: "th-TH-PremwadeeNeural",
["tr-TR"]: "tr-TR-AhmetNeural",
["uk-UA"]: "uk-UA-OstapNeural",
["ur-IN"]: "ur-IN-GulNeural",
["ur-PK"]: "ur-PK-AsadNeural",
["uz-UZ"]: "uz-UZ-MadinaNeural",
["vi-VN"]: "vi-VN-HoaiMyNeural",
["zh-CN"]: "zh-CN-XiaoxiaoNeural",
["zh-HK"]: "zh-HK-HiuMaanNeural",
["zh-TW"]: "zh-TW-HsiaoChenNeural",
["zu-ZA"]: "zu-ZA-ThandoNeural",
};
let language = this.properties.getProperty(PropertyId.SpeechServiceConnection_SynthLanguage, "en-US");
let voice = this.properties.getProperty(PropertyId.SpeechServiceConnection_SynthVoice, "");
let ssml: string = SpeechSynthesizer.XMLEncode(text);
if (this.autoDetectSourceLanguage) {
language = "en-US";
} else {
voice = voice || languageToDefaultVoice[language];
}
if (voice) {
ssml = `<voice name='${voice}'>${ssml}</voice>`;
}
ssml = `<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xmlns:emo='http://www.w3.org/2009/10/emotionml' xml:lang='${language}'>${ssml}</speak>`;
return ssml;
}