{"version":3,"sources":["src/sdk/VoiceInfo.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD;;;GAGG;AACH,oBAAY,oBAAoB;IAE5B,qBAAqB;IACrB,OAAO,IAAA;IAEP,mBAAmB;IACnB,MAAM,IAAA;IAEN,iBAAiB;IACjB,IAAI,IAAA;IAEJ,oBAAoB;IACpB,OAAO,IAAA;CACV;AAED,oBAAY,kBAAkB;IAC1B;;OAEG;IACH,OAAO,IAAI;IAEX;;OAEG;IACH,YAAY,IAAI;IAEhB;;OAEG;IACH,cAAc,IAAI;IAElB;;OAEG;IACH,aAAa,IAAI;IAEjB;;OAEG;IACH,eAAe,IAAI;IAEnB;;OAEG;IACH,cAAc,IAAI;CACrB;AAaD;;;;GAIG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,uBAAuB,CAAoC;IACnE,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,uBAAuB,CAAoC;IACnE,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,YAAY,CAAY;gBAEb,IAAI,EAAE,UAAU;IAyCnC,IAAW,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAEpC;IAED,IAAW,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAExC;IAED,IAAW,SAAS,IAAI,UAAU,CAAC,WAAW,CAAC,CAE9C;IAED,IAAW,WAAW,IAAI,UAAU,CAAC,aAAa,CAAC,CAElD;IAED,IAAW,SAAS,IAAI,UAAU,CAAC,WAAW,CAAC,CAE9C;IAED,IAAW,UAAU,IAAI,UAAU,CAAC,YAAY,CAAC,CAEhD;IAED,IAAW,MAAM,IAAI,oBAAoB,CAExC;IAED,IAAW,SAAS,IAAI,kBAAkB,CAEzC;IAED,IAAW,SAAS,IAAI,UAAU,CAAC,WAAW,CAAC,CAE9C;IAED,IAAW,eAAe,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAE1D;IAED,IAAW,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAExC;IAED,IAAW,mBAAmB,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAGlE;IAED,IAAW,cAAc,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAExD;IAED,IAAW,mBAAmB,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAElE;IAED,IAAW,YAAY,IAAI,UAAU,CAAC,cAAc,CAAC,CAEpD;IAED,IAAW,QAAQ,IAAI,SAAS,CAE/B;CACJ","file":"VoiceInfo.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { IVoiceJson, IVoiceTag } from \"./IVoiceJson\";\r\n\r\n/**\r\n * Defines the gender of synthesis voices.\r\n * Added in version 1.20.0.\r\n */\r\nexport enum SynthesisVoiceGender {\r\n\r\n    /** Gender unknown */\r\n    Unknown,\r\n\r\n    /** Female voice */\r\n    Female,\r\n\r\n    /** Male voice */\r\n    Male,\r\n\r\n    /** Neutral voice */\r\n    Neutral\r\n}\r\n\r\nexport enum SynthesisVoiceType {\r\n    /**\r\n     * Voice type is not known.\r\n     */\r\n    Unknown = 0,\r\n\r\n    /**\r\n     * Online neural voices.\r\n     */\r\n    OnlineNeural = 1,\r\n\r\n    /**\r\n     * Online standard voices. These voices are deprecated.\r\n     */\r\n    OnlineStandard = 2,\r\n\r\n    /**\r\n     * Offline neural voices.\r\n     */\r\n    OfflineNeural = 3,\r\n\r\n    /**\r\n     * Offline standard voices.\r\n     */\r\n    OfflineStandard = 4,\r\n\r\n    /**\r\n     * High definition (HD) voices. Refer to https://learn.microsoft.com/azure/ai-services/speech-service/high-definition-voices\r\n     */\r\n    OnlineNeuralHD = 5,\r\n}\r\n\r\nconst GENDER_LOOKUP: Record<string, SynthesisVoiceGender> = {\r\n    [SynthesisVoiceGender[SynthesisVoiceGender.Neutral]]: SynthesisVoiceGender.Neutral,\r\n    [SynthesisVoiceGender[SynthesisVoiceGender.Male]]: SynthesisVoiceGender.Male,\r\n    [SynthesisVoiceGender[SynthesisVoiceGender.Female]]: SynthesisVoiceGender.Female,\r\n};\r\n\r\nconst VOICE_TYPE_LOOKUP: Record<string, SynthesisVoiceType> = {\r\n    Neural: SynthesisVoiceType.OnlineNeural,\r\n    NeuralHD: SynthesisVoiceType.OnlineNeuralHD,\r\n};\r\n\r\n/**\r\n * Information about Speech Synthesis voice\r\n * Added in version 1.20.0.\r\n * @class VoiceInfo\r\n */\r\nexport class VoiceInfo {\r\n    private privName: IVoiceJson[\"Name\"];\r\n    private privLocale: IVoiceJson[\"Locale\"];\r\n    private privShortName: IVoiceJson[\"ShortName\"];\r\n    private privDisplayName: IVoiceJson[\"DisplayName\"];\r\n    private privLocalName: IVoiceJson[\"LocalName\"];\r\n    private privLocaleName: IVoiceJson[\"LocaleName\"];\r\n    private privGender: SynthesisVoiceGender;\r\n    private privVoiceType: SynthesisVoiceType;\r\n    private privStyleList: IVoiceJson[\"StyleList\"] = [];\r\n    private privSampleRateHertz: IVoiceJson[\"SampleRateHertz\"];\r\n    private privStatus: IVoiceJson[\"Status\"];\r\n    private privExtendedPropertyMap: IVoiceJson[\"ExtendedPropertyMap\"];\r\n    private privWordsPerMinute: IVoiceJson[\"WordsPerMinute\"];\r\n    private privSecondaryLocaleList: IVoiceJson[\"SecondaryLocaleList\"];\r\n    private privRolePlayList: IVoiceJson[\"RolePlayList\"];\r\n    private privVoiceTag: IVoiceTag;\r\n\r\n    public constructor(json: IVoiceJson) {\r\n        if (!!json) {\r\n            this.privName = json.Name;\r\n            this.privLocale = json.Locale;\r\n            this.privShortName = json.ShortName;\r\n            this.privLocaleName = json.LocaleName;\r\n            this.privDisplayName = json.DisplayName;\r\n            this.privLocalName = json.LocalName;\r\n            this.privVoiceType = VOICE_TYPE_LOOKUP[json.VoiceType] || SynthesisVoiceType.Unknown;\r\n            this.privGender = GENDER_LOOKUP[json.Gender] || SynthesisVoiceGender.Unknown;\r\n\r\n            if (!!json.StyleList && Array.isArray(json.StyleList)) {\r\n                for (const style of json.StyleList) {\r\n                    this.privStyleList.push(style);\r\n                }\r\n            }\r\n\r\n            this.privSampleRateHertz = json.SampleRateHertz;\r\n            this.privStatus = json.Status;\r\n\r\n            if (json.ExtendedPropertyMap) {\r\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n                this.privExtendedPropertyMap = json.ExtendedPropertyMap;\r\n            }\r\n\r\n            this.privWordsPerMinute = json.WordsPerMinute;\r\n\r\n            if (Array.isArray(json.SecondaryLocaleList)) {\r\n                this.privSecondaryLocaleList = [...json.SecondaryLocaleList];\r\n            }\r\n\r\n            if (Array.isArray(json.RolePlayList)) {\r\n                this.privRolePlayList = [...json.RolePlayList];\r\n            }\r\n\r\n            if (json.VoiceTag) {\r\n                this.privVoiceTag = json.VoiceTag;\r\n            }\r\n        }\r\n    }\r\n\r\n    public get name(): IVoiceJson[\"Name\"] {\r\n        return this.privName;\r\n    }\r\n\r\n    public get locale(): IVoiceJson[\"Locale\"] {\r\n        return this.privLocale;\r\n    }\r\n\r\n    public get shortName(): IVoiceJson[\"ShortName\"] {\r\n        return this.privShortName;\r\n    }\r\n\r\n    public get displayName(): IVoiceJson[\"DisplayName\"] {\r\n        return this.privDisplayName;\r\n    }\r\n\r\n    public get localName(): IVoiceJson[\"LocalName\"] {\r\n        return this.privLocalName;\r\n    }\r\n\r\n    public get localeName(): IVoiceJson[\"LocaleName\"] {\r\n        return this.privLocaleName;\r\n    }\r\n\r\n    public get gender(): SynthesisVoiceGender {\r\n        return this.privGender;\r\n    }\r\n\r\n    public get voiceType(): SynthesisVoiceType {\r\n        return this.privVoiceType;\r\n    }\r\n\r\n    public get styleList(): IVoiceJson[\"StyleList\"] {\r\n        return this.privStyleList;\r\n    }\r\n\r\n    public get sampleRateHertz(): IVoiceJson[\"SampleRateHertz\"] {\r\n        return this.privSampleRateHertz;\r\n    }\r\n\r\n    public get status(): IVoiceJson[\"Status\"] {\r\n        return this.privStatus;\r\n    }\r\n\r\n    public get extendedPropertyMap(): IVoiceJson[\"ExtendedPropertyMap\"] {\r\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-return\r\n        return this.privExtendedPropertyMap;\r\n    }\r\n\r\n    public get wordsPerMinute(): IVoiceJson[\"WordsPerMinute\"] {\r\n        return this.privWordsPerMinute;\r\n    }\r\n\r\n    public get secondaryLocaleList(): IVoiceJson[\"SecondaryLocaleList\"] {\r\n        return this.privSecondaryLocaleList;\r\n    }\r\n\r\n    public get rolePlayList(): IVoiceJson[\"RolePlayList\"] {\r\n        return this.privRolePlayList;\r\n    }\r\n\r\n    public get voiceTag(): IVoiceTag {\r\n        return this.privVoiceTag;\r\n    }\r\n}\r\n"]}