From fb9f1f5a53260329a3fe826d52bade206827be64 Mon Sep 17 00:00:00 2001 From: Zhongdong Yang Date: Fri, 16 Jun 2023 21:31:16 +0800 Subject: [PATCH] Add: new snapshots of GPT-4/GPT-3 models and GPT-3.4-Turbo-16K --- Cargo.lock | 2 +- examples/azure/Cargo.toml | 4 +- rust-ai-generator/Cargo.toml | 12 +- rust-ai/Cargo.toml | 4 +- rust-ai/README.md | 25 +- rust-ai/src/azure/types/locale.rs | 2 +- rust-ai/src/azure/types/ssml/voice_name.rs | 716 +++++++++++---------- rust-ai/src/openai/endpoint.rs | 5 + rust-ai/src/openai/mod.rs | 8 +- rust-ai/src/openai/types/model.rs | 75 ++- rust-ai/src/xfyun/apis/asr.rs | 4 +- 11 files changed, 482 insertions(+), 375 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7b973bb..370317c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -961,7 +961,7 @@ dependencies = [ [[package]] name = "rust-ai" -version = "0.1.18" +version = "0.1.19" dependencies = [ "isolang", "lazy_static", diff --git a/examples/azure/Cargo.toml b/examples/azure/Cargo.toml index dcc95b5..f555521 100644 --- a/examples/azure/Cargo.toml +++ b/examples/azure/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "rust-ai-azure-examples" edition = "2021" -version = "0.1.1" +version = "0.1.2" [dependencies] rust-ai = { path = "../../rust-ai" } -tokio = { version = "1.26.0", features = ["full"] } +tokio = { version = "1.28.1", features = ["full"] } log = "0.4.17" log4rs = "1.2.0" diff --git a/rust-ai-generator/Cargo.toml b/rust-ai-generator/Cargo.toml index ca81bdf..a3956b5 100644 --- a/rust-ai-generator/Cargo.toml +++ b/rust-ai-generator/Cargo.toml @@ -2,7 +2,7 @@ name = "rust-ai-generator" authors = ["Zhongdong Yang"] description = "A tool to generate types for `rust-ai`" -version = "0.1.9" +version = "0.1.10" edition = "2021" license = "Apache-2.0" repository = "https://github.com/dongsxyz/rust-ai/" @@ -14,11 +14,11 @@ readme = "README.md" [dependencies] chrono = "0.4.24" -reqwest = { version = "0.11.15", features = ["json", "multipart"] } -serde = { version = "1.0.158", features = ["derive"] } -serde_json = "1.0.94" -serde_yaml = "0.9.19" -tokio = { version = "1.26.0", features = ["full"] } +reqwest = { version = "0.11.17", features = ["json", "multipart"] } +serde = { version = "1.0.162", features = ["derive"] } +serde_json = "1.0.96" +serde_yaml = "0.9.21" +tokio = { version = "1.28.1", features = ["full"] } [[bin]] name = "rsai-generator" diff --git a/rust-ai/Cargo.toml b/rust-ai/Cargo.toml index 535648e..82a56cb 100644 --- a/rust-ai/Cargo.toml +++ b/rust-ai/Cargo.toml @@ -2,7 +2,7 @@ name = "rust-ai" authors = ["Zhongdong Yang"] description = "A collection of 3rd-party AI APIs for Rust" -version = "0.1.18" +version = "0.1.19" edition = "2021" license = "Apache-2.0" repository = "https://github.com/dongsxyz/rust-ai/" @@ -31,7 +31,7 @@ reqwest = { version = "0.11.17", default-features = false, features = [ serde = { version = "1.0.162", features = ["derive"] } serde_json = "1.0.96" serde_yaml = "0.9.21" -tokio = { version = "1.28.0", features = ["full"] } +tokio = { version = "1.28.1", features = ["full"] } log = "0.4.17" log4rs = "1.2.0" serde_with = "3.0.0" diff --git a/rust-ai/README.md b/rust-ai/README.md index 1715999..c124e53 100644 --- a/rust-ai/README.md +++ b/rust-ai/README.md @@ -10,8 +10,8 @@ Provide a collection of third-party APIs that give public access to AI capabilit | Category | Variant | Tested Models | Stream | | :--------------- | :------------- | :----------------------- | :----: | -| Chat completions | - | `gpt-4`, `gpt-4-0314`, `gpt-3.5-turbo`, `gpt-3.5-turbo-0301`, `text-davinci-003`, `text-davinci-002`, `code-davinci-002`[^note_3] | yes | -| Completions | - | `gpt-3.5-turbo`, `gpt-3.5-turbo-0301`, `text-davinci-003` | yes | +| Chat completions | - | `gpt-4`, `gpt-4-0314`, `gpt-4-0613`, `gpt-3.5-turbo`, `gpt-3.5-turbo-16k`, `gpt-3.5-turbo-16k-0613`, `gpt-3.5-turbo-0613`, `gpt-3.5-turbo-0301`, `text-davinci-003`, `text-davinci-002`, `code-davinci-002`[^note_3] | yes |ext-davinci-002`, `code-davinci-002` | yes | +| Completions | - | `gpt-3.5-turbo`, `gpt-3.5-turbo-16k`, `gpt-3.5-turbo-16k-0613`, `gpt-3.5-turbo-0613`, `gpt-3.5-turbo-0301`, `text-davinci-003` | yes | | yes | | Edits | - | `text-davinci-edit-001`, `code-davinci-edit-001` | - | | Images | Generations | `dall-e`[^note_1] | - | | Images | Edits | `dall-e`[^note_1] | - | @@ -21,10 +21,9 @@ Provide a collection of third-party APIs that give public access to AI capabilit | Audios | Translation | `whisper-1` | - | | Moderation | - | `text-moderation-latest`[^note_2], `text-moderation-stable` | - | -Note: -- Updated on May 6th, 2023 +Note: +- Updated on June 16th, 2023. - OpenAI's Fine Tunes endpoints are currently not supported. -- All Codex models are now deprecated by OpenAI. ### Azure @@ -52,10 +51,18 @@ azure: If you prefer to load configuration from environment variables, set the contents to `RUST_AI_CONFIG` like example `chat-completion-streamed` does. -[^note_1]: `dall-e` is an hypothetical name of the unknown model. Currently, OpenAI doesn't support manually specify model for image related tasks. So DALL·E models are not valid variants of `Model` enum. +[^note_1]: `dall-e` is an hypothetical name of the unknown model. +Currently, OpenAI doesn't support manually specify model for image related +tasks. So DALL·E models are not valid variants of `Model` enum. -[^note_2]: OpenAI's responses for moderation indicate usage of `text-moderation-004` model (March 23rd, 2023). But developers cannot use its API endpoints to specify variants other than `text-moderation-latest` and `text-moderation-stable`. +[^note_2]: OpenAI's responses for moderation indicate usage of +`text-moderation-004` model (March 23rd, 2023). But developers cannot use +its API endpoints to specify variants other than `text-moderation-latest` +and `text-moderation-stable`. -[^note_3]: GPT-4/GPT-4-0314 tested, GPT-4-32K/GPT-4-32K-0314 not tested because developer currently only has access to 8K token ones (May 6th, 2023). +[^note_3]: GPT-4/GPT-4-0314/GPT-4-0613 tested, GPT-4-32K/GPT-4-32K-0314 not tested +because developer currently only has access to 8K token ones (May 6th, +2023). -[^note_4]: You may notice the actual model behind Embedding API to be `text-embedding-ada-002-v2` (March 23rd, 2023). \ No newline at end of file +[^note_4]: You may notice the actual model behind Embedding API to be +`text-embedding-ada-002-v2` (March 23rd, 2023). \ No newline at end of file diff --git a/rust-ai/src/azure/types/locale.rs b/rust-ai/src/azure/types/locale.rs index d7d553d..dea256d 100644 --- a/rust-ai/src/azure/types/locale.rs +++ b/rust-ai/src/azure/types/locale.rs @@ -3,7 +3,7 @@ //! //! Locale names fetched from Microsoft Cognitive Services API. //! -//! Updated on 2023-04-20. +//! Updated on 2023-06-16. //////////////////////////////////////////////////////////////////////////////// diff --git a/rust-ai/src/azure/types/ssml/voice_name.rs b/rust-ai/src/azure/types/ssml/voice_name.rs index 5f10e46..ad026bf 100644 --- a/rust-ai/src/azure/types/ssml/voice_name.rs +++ b/rust-ai/src/azure/types/ssml/voice_name.rs @@ -3,7 +3,7 @@ //! //! Voice names fetched from Microsoft Cognitive Services API. //! -//! Updated on 2023-04-20. +//! Updated on 2023-06-16. //////////////////////////////////////////////////////////////////////////////// @@ -18,24 +18,24 @@ pub enum VoiceName { /// Voice name variant for `af-ZA-WillemNeural` af_ZA_WillemNeural, - /// Voice name variant for `am-ET-AmehaNeural` - am_ET_AmehaNeural, - /// Voice name variant for `am-ET-MekdesNeural` am_ET_MekdesNeural, + /// Voice name variant for `am-ET-AmehaNeural` + am_ET_AmehaNeural, + /// Voice name variant for `ar-AE-FatimaNeural` ar_AE_FatimaNeural, /// Voice name variant for `ar-AE-HamdanNeural` ar_AE_HamdanNeural, - /// Voice name variant for `ar-BH-AliNeural` - ar_BH_AliNeural, - /// Voice name variant for `ar-BH-LailaNeural` ar_BH_LailaNeural, + /// Voice name variant for `ar-BH-AliNeural` + ar_BH_AliNeural, + /// Voice name variant for `ar-DZ-AminaNeural` ar_DZ_AminaNeural, @@ -48,24 +48,24 @@ pub enum VoiceName { /// Voice name variant for `ar-EG-ShakirNeural` ar_EG_ShakirNeural, - /// Voice name variant for `ar-IQ-BasselNeural` - ar_IQ_BasselNeural, - /// Voice name variant for `ar-IQ-RanaNeural` ar_IQ_RanaNeural, + /// Voice name variant for `ar-IQ-BasselNeural` + ar_IQ_BasselNeural, + /// Voice name variant for `ar-JO-SanaNeural` ar_JO_SanaNeural, /// Voice name variant for `ar-JO-TaimNeural` ar_JO_TaimNeural, - /// Voice name variant for `ar-KW-FahedNeural` - ar_KW_FahedNeural, - /// Voice name variant for `ar-KW-NouraNeural` ar_KW_NouraNeural, + /// Voice name variant for `ar-KW-FahedNeural` + ar_KW_FahedNeural, + /// Voice name variant for `ar-LB-LaylaNeural` ar_LB_LaylaNeural, @@ -78,99 +78,99 @@ pub enum VoiceName { /// Voice name variant for `ar-LY-OmarNeural` ar_LY_OmarNeural, - /// Voice name variant for `ar-MA-JamalNeural` - ar_MA_JamalNeural, - /// Voice name variant for `ar-MA-MounaNeural` ar_MA_MounaNeural, - /// Voice name variant for `ar-OM-AbdullahNeural` - ar_OM_AbdullahNeural, + /// Voice name variant for `ar-MA-JamalNeural` + ar_MA_JamalNeural, /// Voice name variant for `ar-OM-AyshaNeural` ar_OM_AyshaNeural, + /// Voice name variant for `ar-OM-AbdullahNeural` + ar_OM_AbdullahNeural, + /// Voice name variant for `ar-QA-AmalNeural` ar_QA_AmalNeural, /// Voice name variant for `ar-QA-MoazNeural` ar_QA_MoazNeural, - /// Voice name variant for `ar-SA-HamedNeural` - ar_SA_HamedNeural, - /// Voice name variant for `ar-SA-ZariyahNeural` ar_SA_ZariyahNeural, + /// Voice name variant for `ar-SA-HamedNeural` + ar_SA_HamedNeural, + /// Voice name variant for `ar-SY-AmanyNeural` ar_SY_AmanyNeural, /// Voice name variant for `ar-SY-LaithNeural` ar_SY_LaithNeural, - /// Voice name variant for `ar-TN-HediNeural` - ar_TN_HediNeural, - /// Voice name variant for `ar-TN-ReemNeural` ar_TN_ReemNeural, + /// Voice name variant for `ar-TN-HediNeural` + ar_TN_HediNeural, + /// Voice name variant for `ar-YE-MaryamNeural` ar_YE_MaryamNeural, /// Voice name variant for `ar-YE-SalehNeural` ar_YE_SalehNeural, - /// Voice name variant for `az-AZ-BabekNeural` - az_AZ_BabekNeural, - /// Voice name variant for `az-AZ-BanuNeural` az_AZ_BanuNeural, - /// Voice name variant for `bg-BG-BorislavNeural` - bg_BG_BorislavNeural, + /// Voice name variant for `az-AZ-BabekNeural` + az_AZ_BabekNeural, /// Voice name variant for `bg-BG-KalinaNeural` bg_BG_KalinaNeural, + /// Voice name variant for `bg-BG-BorislavNeural` + bg_BG_BorislavNeural, + /// Voice name variant for `bn-BD-NabanitaNeural` bn_BD_NabanitaNeural, /// Voice name variant for `bn-BD-PradeepNeural` bn_BD_PradeepNeural, - /// Voice name variant for `bn-IN-BashkarNeural` - bn_IN_BashkarNeural, - /// Voice name variant for `bn-IN-TanishaaNeural` bn_IN_TanishaaNeural, - /// Voice name variant for `bs-BA-GoranNeural` - bs_BA_GoranNeural, + /// Voice name variant for `bn-IN-BashkarNeural` + bn_IN_BashkarNeural, /// Voice name variant for `bs-BA-VesnaNeural` bs_BA_VesnaNeural, + /// Voice name variant for `bs-BA-GoranNeural` + bs_BA_GoranNeural, + /// Voice name variant for `ca-ES-JoanaNeural` ca_ES_JoanaNeural, - /// Voice name variant for `ca-ES-AlbaNeural` - ca_ES_AlbaNeural, - /// Voice name variant for `ca-ES-EnricNeural` ca_ES_EnricNeural, - /// Voice name variant for `cs-CZ-AntoninNeural` - cs_CZ_AntoninNeural, + /// Voice name variant for `ca-ES-AlbaNeural` + ca_ES_AlbaNeural, /// Voice name variant for `cs-CZ-VlastaNeural` cs_CZ_VlastaNeural, - /// Voice name variant for `cy-GB-AledNeural` - cy_GB_AledNeural, + /// Voice name variant for `cs-CZ-AntoninNeural` + cs_CZ_AntoninNeural, /// Voice name variant for `cy-GB-NiaNeural` cy_GB_NiaNeural, + /// Voice name variant for `cy-GB-AledNeural` + cy_GB_AledNeural, + /// Voice name variant for `da-DK-ChristelNeural` da_DK_ChristelNeural, @@ -183,15 +183,18 @@ pub enum VoiceName { /// Voice name variant for `de-AT-JonasNeural` de_AT_JonasNeural, - /// Voice name variant for `de-CH-JanNeural` - de_CH_JanNeural, - /// Voice name variant for `de-CH-LeniNeural` de_CH_LeniNeural, + /// Voice name variant for `de-CH-JanNeural` + de_CH_JanNeural, + /// Voice name variant for `de-DE-KatjaNeural` de_DE_KatjaNeural, + /// Voice name variant for `de-DE-ConradNeural` + de_DE_ConradNeural, + /// Voice name variant for `de-DE-AmalaNeural` de_DE_AmalaNeural, @@ -201,9 +204,6 @@ pub enum VoiceName { /// Voice name variant for `de-DE-ChristophNeural` de_DE_ChristophNeural, - /// Voice name variant for `de-DE-ConradNeural` - de_DE_ConradNeural, - /// Voice name variant for `de-DE-ElkeNeural` de_DE_ElkeNeural, @@ -240,6 +240,12 @@ pub enum VoiceName { /// Voice name variant for `el-GR-NestorasNeural` el_GR_NestorasNeural, + /// Voice name variant for `en-AU-NatashaNeural` + en_AU_NatashaNeural, + + /// Voice name variant for `en-AU-WilliamNeural` + en_AU_WilliamNeural, + /// Voice name variant for `en-AU-AnnetteNeural` en_AU_AnnetteNeural, @@ -267,9 +273,6 @@ pub enum VoiceName { /// Voice name variant for `en-AU-KimNeural` en_AU_KimNeural, - /// Voice name variant for `en-AU-NatashaNeural` - en_AU_NatashaNeural, - /// Voice name variant for `en-AU-NeilNeural` en_AU_NeilNeural, @@ -279,15 +282,18 @@ pub enum VoiceName { /// Voice name variant for `en-AU-TinaNeural` en_AU_TinaNeural, - /// Voice name variant for `en-AU-WilliamNeural` - en_AU_WilliamNeural, - /// Voice name variant for `en-CA-ClaraNeural` en_CA_ClaraNeural, /// Voice name variant for `en-CA-LiamNeural` en_CA_LiamNeural, + /// Voice name variant for `en-GB-SoniaNeural` + en_GB_SoniaNeural, + + /// Voice name variant for `en-GB-RyanNeural` + en_GB_RyanNeural, + /// Voice name variant for `en-GB-LibbyNeural` en_GB_LibbyNeural, @@ -321,30 +327,24 @@ pub enum VoiceName { /// Voice name variant for `en-GB-OliviaNeural` en_GB_OliviaNeural, - /// Voice name variant for `en-GB-RyanNeural` - en_GB_RyanNeural, - - /// Voice name variant for `en-GB-SoniaNeural` - en_GB_SoniaNeural, - /// Voice name variant for `en-GB-ThomasNeural` en_GB_ThomasNeural, /// Voice name variant for `en-GB-MiaNeural` en_GB_MiaNeural, - /// Voice name variant for `en-HK-SamNeural` - en_HK_SamNeural, - /// Voice name variant for `en-HK-YanNeural` en_HK_YanNeural, - /// Voice name variant for `en-IE-ConnorNeural` - en_IE_ConnorNeural, + /// Voice name variant for `en-HK-SamNeural` + en_HK_SamNeural, /// Voice name variant for `en-IE-EmilyNeural` en_IE_EmilyNeural, + /// Voice name variant for `en-IE-ConnorNeural` + en_IE_ConnorNeural, + /// Voice name variant for `en-IN-NeerjaNeural` en_IN_NeerjaNeural, @@ -357,36 +357,36 @@ pub enum VoiceName { /// Voice name variant for `en-KE-ChilembaNeural` en_KE_ChilembaNeural, - /// Voice name variant for `en-NG-AbeoNeural` - en_NG_AbeoNeural, - /// Voice name variant for `en-NG-EzinneNeural` en_NG_EzinneNeural, - /// Voice name variant for `en-NZ-MitchellNeural` - en_NZ_MitchellNeural, + /// Voice name variant for `en-NG-AbeoNeural` + en_NG_AbeoNeural, /// Voice name variant for `en-NZ-MollyNeural` en_NZ_MollyNeural, - /// Voice name variant for `en-PH-JamesNeural` - en_PH_JamesNeural, + /// Voice name variant for `en-NZ-MitchellNeural` + en_NZ_MitchellNeural, /// Voice name variant for `en-PH-RosaNeural` en_PH_RosaNeural, + /// Voice name variant for `en-PH-JamesNeural` + en_PH_JamesNeural, + /// Voice name variant for `en-SG-LunaNeural` en_SG_LunaNeural, /// Voice name variant for `en-SG-WayneNeural` en_SG_WayneNeural, - /// Voice name variant for `en-TZ-ElimuNeural` - en_TZ_ElimuNeural, - /// Voice name variant for `en-TZ-ImaniNeural` en_TZ_ImaniNeural, + /// Voice name variant for `en-TZ-ElimuNeural` + en_TZ_ElimuNeural, + /// Voice name variant for `en-US-JennyNeural` en_US_JennyNeural, @@ -396,15 +396,18 @@ pub enum VoiceName { /// Voice name variant for `en-US-GuyNeural` en_US_GuyNeural, + /// Voice name variant for `en-US-AriaNeural` + en_US_AriaNeural, + + /// Voice name variant for `en-US-DavisNeural` + en_US_DavisNeural, + /// Voice name variant for `en-US-AmberNeural` en_US_AmberNeural, /// Voice name variant for `en-US-AnaNeural` en_US_AnaNeural, - /// Voice name variant for `en-US-AriaNeural` - en_US_AriaNeural, - /// Voice name variant for `en-US-AshleyNeural` en_US_AshleyNeural, @@ -417,9 +420,6 @@ pub enum VoiceName { /// Voice name variant for `en-US-CoraNeural` en_US_CoraNeural, - /// Voice name variant for `en-US-DavisNeural` - en_US_DavisNeural, - /// Voice name variant for `en-US-ElizabethNeural` en_US_ElizabethNeural, @@ -456,8 +456,11 @@ pub enum VoiceName { /// Voice name variant for `en-US-TonyNeural` en_US_TonyNeural, - /// Voice name variant for `en-US-JennyEmotionNeural` - en_US_JennyEmotionNeural, + /// Voice name variant for `en-US-AIGenerate1Neural` + en_US_AIGenerate1Neural, + + /// Voice name variant for `en-US-AIGenerate2Neural` + en_US_AIGenerate2Neural, /// Voice name variant for `en-ZA-LeahNeural` en_ZA_LeahNeural, @@ -471,54 +474,57 @@ pub enum VoiceName { /// Voice name variant for `es-AR-TomasNeural` es_AR_TomasNeural, - /// Voice name variant for `es-BO-MarceloNeural` - es_BO_MarceloNeural, - /// Voice name variant for `es-BO-SofiaNeural` es_BO_SofiaNeural, + /// Voice name variant for `es-BO-MarceloNeural` + es_BO_MarceloNeural, + /// Voice name variant for `es-CL-CatalinaNeural` es_CL_CatalinaNeural, /// Voice name variant for `es-CL-LorenzoNeural` es_CL_LorenzoNeural, - /// Voice name variant for `es-CO-GonzaloNeural` - es_CO_GonzaloNeural, - /// Voice name variant for `es-CO-SalomeNeural` es_CO_SalomeNeural, - /// Voice name variant for `es-CR-JuanNeural` - es_CR_JuanNeural, + /// Voice name variant for `es-CO-GonzaloNeural` + es_CO_GonzaloNeural, /// Voice name variant for `es-CR-MariaNeural` es_CR_MariaNeural, + /// Voice name variant for `es-CR-JuanNeural` + es_CR_JuanNeural, + /// Voice name variant for `es-CU-BelkysNeural` es_CU_BelkysNeural, /// Voice name variant for `es-CU-ManuelNeural` es_CU_ManuelNeural, - /// Voice name variant for `es-DO-EmilioNeural` - es_DO_EmilioNeural, - /// Voice name variant for `es-DO-RamonaNeural` es_DO_RamonaNeural, + /// Voice name variant for `es-DO-EmilioNeural` + es_DO_EmilioNeural, + /// Voice name variant for `es-EC-AndreaNeural` es_EC_AndreaNeural, /// Voice name variant for `es-EC-LuisNeural` es_EC_LuisNeural, - /// Voice name variant for `es-ES-AbrilNeural` - es_ES_AbrilNeural, + /// Voice name variant for `es-ES-ElviraNeural` + es_ES_ElviraNeural, /// Voice name variant for `es-ES-AlvaroNeural` es_ES_AlvaroNeural, + /// Voice name variant for `es-ES-AbrilNeural` + es_ES_AbrilNeural, + /// Voice name variant for `es-ES-ArnauNeural` es_ES_ArnauNeural, @@ -528,9 +534,6 @@ pub enum VoiceName { /// Voice name variant for `es-ES-EliasNeural` es_ES_EliasNeural, - /// Voice name variant for `es-ES-ElviraNeural` - es_ES_ElviraNeural, - /// Voice name variant for `es-ES-EstrellaNeural` es_ES_EstrellaNeural, @@ -558,23 +561,29 @@ pub enum VoiceName { /// Voice name variant for `es-ES-VeraNeural` es_ES_VeraNeural, + /// Voice name variant for `es-GQ-TeresaNeural` + es_GQ_TeresaNeural, + /// Voice name variant for `es-GQ-JavierNeural` es_GQ_JavierNeural, - /// Voice name variant for `es-GQ-TeresaNeural` - es_GQ_TeresaNeural, + /// Voice name variant for `es-GT-MartaNeural` + es_GT_MartaNeural, /// Voice name variant for `es-GT-AndresNeural` es_GT_AndresNeural, - /// Voice name variant for `es-GT-MartaNeural` - es_GT_MartaNeural, + /// Voice name variant for `es-HN-KarlaNeural` + es_HN_KarlaNeural, /// Voice name variant for `es-HN-CarlosNeural` es_HN_CarlosNeural, - /// Voice name variant for `es-HN-KarlaNeural` - es_HN_KarlaNeural, + /// Voice name variant for `es-MX-DaliaNeural` + es_MX_DaliaNeural, + + /// Voice name variant for `es-MX-JorgeNeural` + es_MX_JorgeNeural, /// Voice name variant for `es-MX-BeatrizNeural` es_MX_BeatrizNeural, @@ -588,15 +597,9 @@ pub enum VoiceName { /// Voice name variant for `es-MX-CecilioNeural` es_MX_CecilioNeural, - /// Voice name variant for `es-MX-DaliaNeural` - es_MX_DaliaNeural, - /// Voice name variant for `es-MX-GerardoNeural` es_MX_GerardoNeural, - /// Voice name variant for `es-MX-JorgeNeural` - es_MX_JorgeNeural, - /// Voice name variant for `es-MX-LarissaNeural` es_MX_LarissaNeural, @@ -621,54 +624,54 @@ pub enum VoiceName { /// Voice name variant for `es-MX-YagoNeural` es_MX_YagoNeural, - /// Voice name variant for `es-NI-FedericoNeural` - es_NI_FedericoNeural, - /// Voice name variant for `es-NI-YolandaNeural` es_NI_YolandaNeural, + /// Voice name variant for `es-NI-FedericoNeural` + es_NI_FedericoNeural, + /// Voice name variant for `es-PA-MargaritaNeural` es_PA_MargaritaNeural, /// Voice name variant for `es-PA-RobertoNeural` es_PA_RobertoNeural, - /// Voice name variant for `es-PE-AlexNeural` - es_PE_AlexNeural, - /// Voice name variant for `es-PE-CamilaNeural` es_PE_CamilaNeural, + /// Voice name variant for `es-PE-AlexNeural` + es_PE_AlexNeural, + /// Voice name variant for `es-PR-KarinaNeural` es_PR_KarinaNeural, /// Voice name variant for `es-PR-VictorNeural` es_PR_VictorNeural, - /// Voice name variant for `es-PY-MarioNeural` - es_PY_MarioNeural, - /// Voice name variant for `es-PY-TaniaNeural` es_PY_TaniaNeural, + /// Voice name variant for `es-PY-MarioNeural` + es_PY_MarioNeural, + /// Voice name variant for `es-SV-LorenaNeural` es_SV_LorenaNeural, /// Voice name variant for `es-SV-RodrigoNeural` es_SV_RodrigoNeural, - /// Voice name variant for `es-US-AlonsoNeural` - es_US_AlonsoNeural, - /// Voice name variant for `es-US-PalomaNeural` es_US_PalomaNeural, - /// Voice name variant for `es-UY-MateoNeural` - es_UY_MateoNeural, + /// Voice name variant for `es-US-AlonsoNeural` + es_US_AlonsoNeural, /// Voice name variant for `es-UY-ValentinaNeural` es_UY_ValentinaNeural, + /// Voice name variant for `es-UY-MateoNeural` + es_UY_MateoNeural, + /// Voice name variant for `es-VE-PaolaNeural` es_VE_PaolaNeural, @@ -702,12 +705,12 @@ pub enum VoiceName { /// Voice name variant for `fi-FI-NooraNeural` fi_FI_NooraNeural, - /// Voice name variant for `fil-PH-AngeloNeural` - fil_PH_AngeloNeural, - /// Voice name variant for `fil-PH-BlessicaNeural` fil_PH_BlessicaNeural, + /// Voice name variant for `fil-PH-AngeloNeural` + fil_PH_AngeloNeural, + /// Voice name variant for `fr-BE-CharlineNeural` fr_BE_CharlineNeural, @@ -717,19 +720,25 @@ pub enum VoiceName { /// Voice name variant for `fr-CA-SylvieNeural` fr_CA_SylvieNeural, - /// Voice name variant for `fr-CA-AntoineNeural` - fr_CA_AntoineNeural, - /// Voice name variant for `fr-CA-JeanNeural` fr_CA_JeanNeural, + /// Voice name variant for `fr-CA-AntoineNeural` + fr_CA_AntoineNeural, + /// Voice name variant for `fr-CH-ArianeNeural` fr_CH_ArianeNeural, /// Voice name variant for `fr-CH-FabriceNeural` fr_CH_FabriceNeural, - /// Voice name variant for `fr-FR-AlainNeural` + /// Voice name variant for `fr-FR-DeniseNeural` + fr_FR_DeniseNeural, + + /// Voice name variant for `fr-FR-HenriNeural` + fr_FR_HenriNeural, + + /// Voice name variant for `fr-FR-AlainNeural` fr_FR_AlainNeural, /// Voice name variant for `fr-FR-BrigitteNeural` @@ -744,15 +753,9 @@ pub enum VoiceName { /// Voice name variant for `fr-FR-CoralieNeural` fr_FR_CoralieNeural, - /// Voice name variant for `fr-FR-DeniseNeural` - fr_FR_DeniseNeural, - /// Voice name variant for `fr-FR-EloiseNeural` fr_FR_EloiseNeural, - /// Voice name variant for `fr-FR-HenriNeural` - fr_FR_HenriNeural, - /// Voice name variant for `fr-FR-JacquelineNeural` fr_FR_JacquelineNeural, @@ -771,36 +774,36 @@ pub enum VoiceName { /// Voice name variant for `fr-FR-YvetteNeural` fr_FR_YvetteNeural, - /// Voice name variant for `ga-IE-ColmNeural` - ga_IE_ColmNeural, - /// Voice name variant for `ga-IE-OrlaNeural` ga_IE_OrlaNeural, - /// Voice name variant for `gl-ES-RoiNeural` - gl_ES_RoiNeural, + /// Voice name variant for `ga-IE-ColmNeural` + ga_IE_ColmNeural, /// Voice name variant for `gl-ES-SabelaNeural` gl_ES_SabelaNeural, + /// Voice name variant for `gl-ES-RoiNeural` + gl_ES_RoiNeural, + /// Voice name variant for `gu-IN-DhwaniNeural` gu_IN_DhwaniNeural, /// Voice name variant for `gu-IN-NiranjanNeural` gu_IN_NiranjanNeural, - /// Voice name variant for `he-IL-AvriNeural` - he_IL_AvriNeural, - /// Voice name variant for `he-IL-HilaNeural` he_IL_HilaNeural, - /// Voice name variant for `hi-IN-MadhurNeural` - hi_IN_MadhurNeural, + /// Voice name variant for `he-IL-AvriNeural` + he_IL_AvriNeural, /// Voice name variant for `hi-IN-SwaraNeural` hi_IN_SwaraNeural, + /// Voice name variant for `hi-IN-MadhurNeural` + hi_IN_MadhurNeural, + /// Voice name variant for `hr-HR-GabrijelaNeural` hr_HR_GabrijelaNeural, @@ -819,21 +822,27 @@ pub enum VoiceName { /// Voice name variant for `hy-AM-HaykNeural` hy_AM_HaykNeural, - /// Voice name variant for `id-ID-ArdiNeural` - id_ID_ArdiNeural, - /// Voice name variant for `id-ID-GadisNeural` id_ID_GadisNeural, + /// Voice name variant for `id-ID-ArdiNeural` + id_ID_ArdiNeural, + /// Voice name variant for `is-IS-GudrunNeural` is_IS_GudrunNeural, /// Voice name variant for `is-IS-GunnarNeural` is_IS_GunnarNeural, + /// Voice name variant for `it-IT-ElsaNeural` + it_IT_ElsaNeural, + /// Voice name variant for `it-IT-IsabellaNeural` it_IT_IsabellaNeural, + /// Voice name variant for `it-IT-DiegoNeural` + it_IT_DiegoNeural, + /// Voice name variant for `it-IT-BenignoNeural` it_IT_BenignoNeural, @@ -843,12 +852,6 @@ pub enum VoiceName { /// Voice name variant for `it-IT-CataldoNeural` it_IT_CataldoNeural, - /// Voice name variant for `it-IT-DiegoNeural` - it_IT_DiegoNeural, - - /// Voice name variant for `it-IT-ElsaNeural` - it_IT_ElsaNeural, - /// Voice name variant for `it-IT-FabiolaNeural` it_IT_FabiolaNeural, @@ -879,15 +882,15 @@ pub enum VoiceName { /// Voice name variant for `ja-JP-NanamiNeural` ja_JP_NanamiNeural, + /// Voice name variant for `ja-JP-KeitaNeural` + ja_JP_KeitaNeural, + /// Voice name variant for `ja-JP-AoiNeural` ja_JP_AoiNeural, /// Voice name variant for `ja-JP-DaichiNeural` ja_JP_DaichiNeural, - /// Voice name variant for `ja-JP-KeitaNeural` - ja_JP_KeitaNeural, - /// Voice name variant for `ja-JP-MayuNeural` ja_JP_MayuNeural, @@ -897,12 +900,12 @@ pub enum VoiceName { /// Voice name variant for `ja-JP-ShioriNeural` ja_JP_ShioriNeural, - /// Voice name variant for `jv-ID-DimasNeural` - jv_ID_DimasNeural, - /// Voice name variant for `jv-ID-SitiNeural` jv_ID_SitiNeural, + /// Voice name variant for `jv-ID-DimasNeural` + jv_ID_DimasNeural, + /// Voice name variant for `ka-GE-EkaNeural` ka_GE_EkaNeural, @@ -915,72 +918,90 @@ pub enum VoiceName { /// Voice name variant for `kk-KZ-DauletNeural` kk_KZ_DauletNeural, - /// Voice name variant for `km-KH-PisethNeural` - km_KH_PisethNeural, - /// Voice name variant for `km-KH-SreymomNeural` km_KH_SreymomNeural, - /// Voice name variant for `kn-IN-GaganNeural` - kn_IN_GaganNeural, + /// Voice name variant for `km-KH-PisethNeural` + km_KH_PisethNeural, /// Voice name variant for `kn-IN-SapnaNeural` kn_IN_SapnaNeural, + /// Voice name variant for `kn-IN-GaganNeural` + kn_IN_GaganNeural, + /// Voice name variant for `ko-KR-SunHiNeural` ko_KR_SunHiNeural, /// Voice name variant for `ko-KR-InJoonNeural` ko_KR_InJoonNeural, - /// Voice name variant for `lo-LA-ChanthavongNeural` - lo_LA_ChanthavongNeural, + /// Voice name variant for `ko-KR-BongJinNeural` + ko_KR_BongJinNeural, + + /// Voice name variant for `ko-KR-GookMinNeural` + ko_KR_GookMinNeural, + + /// Voice name variant for `ko-KR-JiMinNeural` + ko_KR_JiMinNeural, + + /// Voice name variant for `ko-KR-SeoHyeonNeural` + ko_KR_SeoHyeonNeural, + + /// Voice name variant for `ko-KR-SoonBokNeural` + ko_KR_SoonBokNeural, + + /// Voice name variant for `ko-KR-YuJinNeural` + ko_KR_YuJinNeural, /// Voice name variant for `lo-LA-KeomanyNeural` lo_LA_KeomanyNeural, - /// Voice name variant for `lt-LT-LeonasNeural` - lt_LT_LeonasNeural, + /// Voice name variant for `lo-LA-ChanthavongNeural` + lo_LA_ChanthavongNeural, /// Voice name variant for `lt-LT-OnaNeural` lt_LT_OnaNeural, + /// Voice name variant for `lt-LT-LeonasNeural` + lt_LT_LeonasNeural, + /// Voice name variant for `lv-LV-EveritaNeural` lv_LV_EveritaNeural, /// Voice name variant for `lv-LV-NilsNeural` lv_LV_NilsNeural, - /// Voice name variant for `mk-MK-AleksandarNeural` - mk_MK_AleksandarNeural, - /// Voice name variant for `mk-MK-MarijaNeural` mk_MK_MarijaNeural, - /// Voice name variant for `ml-IN-MidhunNeural` - ml_IN_MidhunNeural, + /// Voice name variant for `mk-MK-AleksandarNeural` + mk_MK_AleksandarNeural, /// Voice name variant for `ml-IN-SobhanaNeural` ml_IN_SobhanaNeural, - /// Voice name variant for `mn-MN-BataaNeural` - mn_MN_BataaNeural, + /// Voice name variant for `ml-IN-MidhunNeural` + ml_IN_MidhunNeural, /// Voice name variant for `mn-MN-YesuiNeural` mn_MN_YesuiNeural, + /// Voice name variant for `mn-MN-BataaNeural` + mn_MN_BataaNeural, + /// Voice name variant for `mr-IN-AarohiNeural` mr_IN_AarohiNeural, /// Voice name variant for `mr-IN-ManoharNeural` mr_IN_ManoharNeural, - /// Voice name variant for `ms-MY-OsmanNeural` - ms_MY_OsmanNeural, - /// Voice name variant for `ms-MY-YasminNeural` ms_MY_YasminNeural, + /// Voice name variant for `ms-MY-OsmanNeural` + ms_MY_OsmanNeural, + /// Voice name variant for `mt-MT-GraceNeural` mt_MT_GraceNeural, @@ -1008,14 +1029,11 @@ pub enum VoiceName { /// Voice name variant for `ne-NP-SagarNeural` ne_NP_SagarNeural, - /// Voice name variant for `nl-BE-ArnaudNeural` - nl_BE_ArnaudNeural, - /// Voice name variant for `nl-BE-DenaNeural` nl_BE_DenaNeural, - /// Voice name variant for `nl-NL-ColetteNeural` - nl_NL_ColetteNeural, + /// Voice name variant for `nl-BE-ArnaudNeural` + nl_BE_ArnaudNeural, /// Voice name variant for `nl-NL-FennaNeural` nl_NL_FennaNeural, @@ -1023,6 +1041,9 @@ pub enum VoiceName { /// Voice name variant for `nl-NL-MaartenNeural` nl_NL_MaartenNeural, + /// Voice name variant for `nl-NL-ColetteNeural` + nl_NL_ColetteNeural, + /// Voice name variant for `pl-PL-AgnieszkaNeural` pl_PL_AgnieszkaNeural, @@ -1032,15 +1053,18 @@ pub enum VoiceName { /// Voice name variant for `pl-PL-ZofiaNeural` pl_PL_ZofiaNeural, - /// Voice name variant for `ps-AF-GulNawazNeural` - ps_AF_GulNawazNeural, - /// Voice name variant for `ps-AF-LatifaNeural` ps_AF_LatifaNeural, + /// Voice name variant for `ps-AF-GulNawazNeural` + ps_AF_GulNawazNeural, + /// Voice name variant for `pt-BR-FranciscaNeural` pt_BR_FranciscaNeural, + /// Voice name variant for `pt-BR-AntonioNeural` + pt_BR_AntonioNeural, + /// Voice name variant for `pt-BR-BrendaNeural` pt_BR_BrendaNeural, @@ -1080,8 +1104,8 @@ pub enum VoiceName { /// Voice name variant for `pt-BR-YaraNeural` pt_BR_YaraNeural, - /// Voice name variant for `pt-BR-AntonioNeural` - pt_BR_AntonioNeural, + /// Voice name variant for `pt-PT-RaquelNeural` + pt_PT_RaquelNeural, /// Voice name variant for `pt-PT-DuarteNeural` pt_PT_DuarteNeural, @@ -1089,9 +1113,6 @@ pub enum VoiceName { /// Voice name variant for `pt-PT-FernandaNeural` pt_PT_FernandaNeural, - /// Voice name variant for `pt-PT-RaquelNeural` - pt_PT_RaquelNeural, - /// Voice name variant for `ro-RO-AlinaNeural` ro_RO_AlinaNeural, @@ -1101,138 +1122,138 @@ pub enum VoiceName { /// Voice name variant for `ru-RU-SvetlanaNeural` ru_RU_SvetlanaNeural, - /// Voice name variant for `ru-RU-DariyaNeural` - ru_RU_DariyaNeural, - /// Voice name variant for `ru-RU-DmitryNeural` ru_RU_DmitryNeural, - /// Voice name variant for `si-LK-SameeraNeural` - si_LK_SameeraNeural, + /// Voice name variant for `ru-RU-DariyaNeural` + ru_RU_DariyaNeural, /// Voice name variant for `si-LK-ThiliniNeural` si_LK_ThiliniNeural, - /// Voice name variant for `sk-SK-LukasNeural` - sk_SK_LukasNeural, + /// Voice name variant for `si-LK-SameeraNeural` + si_LK_SameeraNeural, /// Voice name variant for `sk-SK-ViktoriaNeural` sk_SK_ViktoriaNeural, + /// Voice name variant for `sk-SK-LukasNeural` + sk_SK_LukasNeural, + /// Voice name variant for `sl-SI-PetraNeural` sl_SI_PetraNeural, /// Voice name variant for `sl-SI-RokNeural` sl_SI_RokNeural, - /// Voice name variant for `so-SO-MuuseNeural` - so_SO_MuuseNeural, - /// Voice name variant for `so-SO-UbaxNeural` so_SO_UbaxNeural, + /// Voice name variant for `so-SO-MuuseNeural` + so_SO_MuuseNeural, + /// Voice name variant for `sq-AL-AnilaNeural` sq_AL_AnilaNeural, /// Voice name variant for `sq-AL-IlirNeural` sq_AL_IlirNeural, - /// Voice name variant for `sr-RS-NicholasNeural` - sr_RS_NicholasNeural, - /// Voice name variant for `sr-RS-SophieNeural` sr_RS_SophieNeural, - /// Voice name variant for `su-ID-JajangNeural` - su_ID_JajangNeural, + /// Voice name variant for `sr-RS-NicholasNeural` + sr_RS_NicholasNeural, /// Voice name variant for `su-ID-TutiNeural` su_ID_TutiNeural, + /// Voice name variant for `su-ID-JajangNeural` + su_ID_JajangNeural, + /// Voice name variant for `sv-SE-SofieNeural` sv_SE_SofieNeural, - /// Voice name variant for `sv-SE-HilleviNeural` - sv_SE_HilleviNeural, - /// Voice name variant for `sv-SE-MattiasNeural` sv_SE_MattiasNeural, - /// Voice name variant for `sw-KE-RafikiNeural` - sw_KE_RafikiNeural, + /// Voice name variant for `sv-SE-HilleviNeural` + sv_SE_HilleviNeural, /// Voice name variant for `sw-KE-ZuriNeural` sw_KE_ZuriNeural, - /// Voice name variant for `sw-TZ-DaudiNeural` - sw_TZ_DaudiNeural, + /// Voice name variant for `sw-KE-RafikiNeural` + sw_KE_RafikiNeural, /// Voice name variant for `sw-TZ-RehemaNeural` sw_TZ_RehemaNeural, + /// Voice name variant for `sw-TZ-DaudiNeural` + sw_TZ_DaudiNeural, + /// Voice name variant for `ta-IN-PallaviNeural` ta_IN_PallaviNeural, /// Voice name variant for `ta-IN-ValluvarNeural` ta_IN_ValluvarNeural, - /// Voice name variant for `ta-LK-KumarNeural` - ta_LK_KumarNeural, - /// Voice name variant for `ta-LK-SaranyaNeural` ta_LK_SaranyaNeural, + /// Voice name variant for `ta-LK-KumarNeural` + ta_LK_KumarNeural, + /// Voice name variant for `ta-MY-KaniNeural` ta_MY_KaniNeural, /// Voice name variant for `ta-MY-SuryaNeural` ta_MY_SuryaNeural, - /// Voice name variant for `ta-SG-AnbuNeural` - ta_SG_AnbuNeural, - /// Voice name variant for `ta-SG-VenbaNeural` ta_SG_VenbaNeural, - /// Voice name variant for `te-IN-MohanNeural` - te_IN_MohanNeural, + /// Voice name variant for `ta-SG-AnbuNeural` + ta_SG_AnbuNeural, /// Voice name variant for `te-IN-ShrutiNeural` te_IN_ShrutiNeural, + /// Voice name variant for `te-IN-MohanNeural` + te_IN_MohanNeural, + /// Voice name variant for `th-TH-PremwadeeNeural` th_TH_PremwadeeNeural, - /// Voice name variant for `th-TH-AcharaNeural` - th_TH_AcharaNeural, - /// Voice name variant for `th-TH-NiwatNeural` th_TH_NiwatNeural, - /// Voice name variant for `tr-TR-AhmetNeural` - tr_TR_AhmetNeural, + /// Voice name variant for `th-TH-AcharaNeural` + th_TH_AcharaNeural, /// Voice name variant for `tr-TR-EmelNeural` tr_TR_EmelNeural, - /// Voice name variant for `uk-UA-OstapNeural` - uk_UA_OstapNeural, + /// Voice name variant for `tr-TR-AhmetNeural` + tr_TR_AhmetNeural, /// Voice name variant for `uk-UA-PolinaNeural` uk_UA_PolinaNeural, + /// Voice name variant for `uk-UA-OstapNeural` + uk_UA_OstapNeural, + /// Voice name variant for `ur-IN-GulNeural` ur_IN_GulNeural, /// Voice name variant for `ur-IN-SalmanNeural` ur_IN_SalmanNeural, - /// Voice name variant for `ur-PK-AsadNeural` - ur_PK_AsadNeural, - /// Voice name variant for `ur-PK-UzmaNeural` ur_PK_UzmaNeural, + /// Voice name variant for `ur-PK-AsadNeural` + ur_PK_AsadNeural, + /// Voice name variant for `uz-UZ-MadinaNeural` uz_UZ_MadinaNeural, @@ -1260,6 +1281,15 @@ pub enum VoiceName { /// Voice name variant for `zh-CN-XiaoxiaoNeural` zh_CN_XiaoxiaoNeural, + /// Voice name variant for `zh-CN-YunxiNeural` + zh_CN_YunxiNeural, + + /// Voice name variant for `zh-CN-YunjianNeural` + zh_CN_YunjianNeural, + + /// Voice name variant for `zh-CN-XiaoyiNeural` + zh_CN_XiaoyiNeural, + /// Voice name variant for `zh-CN-YunyangNeural` zh_CN_YunyangNeural, @@ -1290,9 +1320,6 @@ pub enum VoiceName { /// Voice name variant for `zh-CN-XiaoyanNeural` zh_CN_XiaoyanNeural, - /// Voice name variant for `zh-CN-XiaoyiNeural` - zh_CN_XiaoyiNeural, - /// Voice name variant for `zh-CN-XiaoyouNeural` zh_CN_XiaoyouNeural, @@ -1305,15 +1332,9 @@ pub enum VoiceName { /// Voice name variant for `zh-CN-YunhaoNeural` zh_CN_YunhaoNeural, - /// Voice name variant for `zh-CN-YunjianNeural` - zh_CN_YunjianNeural, - /// Voice name variant for `zh-CN-YunxiaNeural` zh_CN_YunxiaNeural, - /// Voice name variant for `zh-CN-YunxiNeural` - zh_CN_YunxiNeural, - /// Voice name variant for `zh-CN-YunyeNeural` zh_CN_YunyeNeural, @@ -1332,24 +1353,27 @@ pub enum VoiceName { /// Voice name variant for `zh-CN-shandong-YunxiangNeural` zh_CN_shandong_YunxiangNeural, + /// Voice name variant for `zh-CN-sichuan-YunxiNeural` + zh_CN_sichuan_YunxiNeural, + /// Voice name variant for `zh-HK-HiuMaanNeural` zh_HK_HiuMaanNeural, - /// Voice name variant for `zh-HK-HiuGaaiNeural` - zh_HK_HiuGaaiNeural, - /// Voice name variant for `zh-HK-WanLungNeural` zh_HK_WanLungNeural, + /// Voice name variant for `zh-HK-HiuGaaiNeural` + zh_HK_HiuGaaiNeural, + /// Voice name variant for `zh-TW-HsiaoChenNeural` zh_TW_HsiaoChenNeural, - /// Voice name variant for `zh-TW-HsiaoYuNeural` - zh_TW_HsiaoYuNeural, - /// Voice name variant for `zh-TW-YunJheNeural` zh_TW_YunJheNeural, + /// Voice name variant for `zh-TW-HsiaoYuNeural` + zh_TW_HsiaoYuNeural, + /// Voice name variant for `zu-ZA-ThandoNeural` zu_ZA_ThandoNeural, @@ -1362,68 +1386,68 @@ impl Into for VoiceName { (match self { Self::af_ZA_AdriNeural => "af-ZA-AdriNeural", Self::af_ZA_WillemNeural => "af-ZA-WillemNeural", - Self::am_ET_AmehaNeural => "am-ET-AmehaNeural", Self::am_ET_MekdesNeural => "am-ET-MekdesNeural", + Self::am_ET_AmehaNeural => "am-ET-AmehaNeural", Self::ar_AE_FatimaNeural => "ar-AE-FatimaNeural", Self::ar_AE_HamdanNeural => "ar-AE-HamdanNeural", - Self::ar_BH_AliNeural => "ar-BH-AliNeural", Self::ar_BH_LailaNeural => "ar-BH-LailaNeural", + Self::ar_BH_AliNeural => "ar-BH-AliNeural", Self::ar_DZ_AminaNeural => "ar-DZ-AminaNeural", Self::ar_DZ_IsmaelNeural => "ar-DZ-IsmaelNeural", Self::ar_EG_SalmaNeural => "ar-EG-SalmaNeural", Self::ar_EG_ShakirNeural => "ar-EG-ShakirNeural", - Self::ar_IQ_BasselNeural => "ar-IQ-BasselNeural", Self::ar_IQ_RanaNeural => "ar-IQ-RanaNeural", + Self::ar_IQ_BasselNeural => "ar-IQ-BasselNeural", Self::ar_JO_SanaNeural => "ar-JO-SanaNeural", Self::ar_JO_TaimNeural => "ar-JO-TaimNeural", - Self::ar_KW_FahedNeural => "ar-KW-FahedNeural", Self::ar_KW_NouraNeural => "ar-KW-NouraNeural", + Self::ar_KW_FahedNeural => "ar-KW-FahedNeural", Self::ar_LB_LaylaNeural => "ar-LB-LaylaNeural", Self::ar_LB_RamiNeural => "ar-LB-RamiNeural", Self::ar_LY_ImanNeural => "ar-LY-ImanNeural", Self::ar_LY_OmarNeural => "ar-LY-OmarNeural", - Self::ar_MA_JamalNeural => "ar-MA-JamalNeural", Self::ar_MA_MounaNeural => "ar-MA-MounaNeural", - Self::ar_OM_AbdullahNeural => "ar-OM-AbdullahNeural", + Self::ar_MA_JamalNeural => "ar-MA-JamalNeural", Self::ar_OM_AyshaNeural => "ar-OM-AyshaNeural", + Self::ar_OM_AbdullahNeural => "ar-OM-AbdullahNeural", Self::ar_QA_AmalNeural => "ar-QA-AmalNeural", Self::ar_QA_MoazNeural => "ar-QA-MoazNeural", - Self::ar_SA_HamedNeural => "ar-SA-HamedNeural", Self::ar_SA_ZariyahNeural => "ar-SA-ZariyahNeural", + Self::ar_SA_HamedNeural => "ar-SA-HamedNeural", Self::ar_SY_AmanyNeural => "ar-SY-AmanyNeural", Self::ar_SY_LaithNeural => "ar-SY-LaithNeural", - Self::ar_TN_HediNeural => "ar-TN-HediNeural", Self::ar_TN_ReemNeural => "ar-TN-ReemNeural", + Self::ar_TN_HediNeural => "ar-TN-HediNeural", Self::ar_YE_MaryamNeural => "ar-YE-MaryamNeural", Self::ar_YE_SalehNeural => "ar-YE-SalehNeural", - Self::az_AZ_BabekNeural => "az-AZ-BabekNeural", Self::az_AZ_BanuNeural => "az-AZ-BanuNeural", - Self::bg_BG_BorislavNeural => "bg-BG-BorislavNeural", + Self::az_AZ_BabekNeural => "az-AZ-BabekNeural", Self::bg_BG_KalinaNeural => "bg-BG-KalinaNeural", + Self::bg_BG_BorislavNeural => "bg-BG-BorislavNeural", Self::bn_BD_NabanitaNeural => "bn-BD-NabanitaNeural", Self::bn_BD_PradeepNeural => "bn-BD-PradeepNeural", - Self::bn_IN_BashkarNeural => "bn-IN-BashkarNeural", Self::bn_IN_TanishaaNeural => "bn-IN-TanishaaNeural", - Self::bs_BA_GoranNeural => "bs-BA-GoranNeural", + Self::bn_IN_BashkarNeural => "bn-IN-BashkarNeural", Self::bs_BA_VesnaNeural => "bs-BA-VesnaNeural", + Self::bs_BA_GoranNeural => "bs-BA-GoranNeural", Self::ca_ES_JoanaNeural => "ca-ES-JoanaNeural", - Self::ca_ES_AlbaNeural => "ca-ES-AlbaNeural", Self::ca_ES_EnricNeural => "ca-ES-EnricNeural", - Self::cs_CZ_AntoninNeural => "cs-CZ-AntoninNeural", + Self::ca_ES_AlbaNeural => "ca-ES-AlbaNeural", Self::cs_CZ_VlastaNeural => "cs-CZ-VlastaNeural", - Self::cy_GB_AledNeural => "cy-GB-AledNeural", + Self::cs_CZ_AntoninNeural => "cs-CZ-AntoninNeural", Self::cy_GB_NiaNeural => "cy-GB-NiaNeural", + Self::cy_GB_AledNeural => "cy-GB-AledNeural", Self::da_DK_ChristelNeural => "da-DK-ChristelNeural", Self::da_DK_JeppeNeural => "da-DK-JeppeNeural", Self::de_AT_IngridNeural => "de-AT-IngridNeural", Self::de_AT_JonasNeural => "de-AT-JonasNeural", - Self::de_CH_JanNeural => "de-CH-JanNeural", Self::de_CH_LeniNeural => "de-CH-LeniNeural", + Self::de_CH_JanNeural => "de-CH-JanNeural", Self::de_DE_KatjaNeural => "de-DE-KatjaNeural", + Self::de_DE_ConradNeural => "de-DE-ConradNeural", Self::de_DE_AmalaNeural => "de-DE-AmalaNeural", Self::de_DE_BerndNeural => "de-DE-BerndNeural", Self::de_DE_ChristophNeural => "de-DE-ChristophNeural", - Self::de_DE_ConradNeural => "de-DE-ConradNeural", Self::de_DE_ElkeNeural => "de-DE-ElkeNeural", Self::de_DE_GiselaNeural => "de-DE-GiselaNeural", Self::de_DE_KasperNeural => "de-DE-KasperNeural", @@ -1436,6 +1460,8 @@ impl Into for VoiceName { Self::de_DE_TanjaNeural => "de-DE-TanjaNeural", Self::el_GR_AthinaNeural => "el-GR-AthinaNeural", Self::el_GR_NestorasNeural => "el-GR-NestorasNeural", + Self::en_AU_NatashaNeural => "en-AU-NatashaNeural", + Self::en_AU_WilliamNeural => "en-AU-WilliamNeural", Self::en_AU_AnnetteNeural => "en-AU-AnnetteNeural", Self::en_AU_CarlyNeural => "en-AU-CarlyNeural", Self::en_AU_DarrenNeural => "en-AU-DarrenNeural", @@ -1445,13 +1471,13 @@ impl Into for VoiceName { Self::en_AU_JoanneNeural => "en-AU-JoanneNeural", Self::en_AU_KenNeural => "en-AU-KenNeural", Self::en_AU_KimNeural => "en-AU-KimNeural", - Self::en_AU_NatashaNeural => "en-AU-NatashaNeural", Self::en_AU_NeilNeural => "en-AU-NeilNeural", Self::en_AU_TimNeural => "en-AU-TimNeural", Self::en_AU_TinaNeural => "en-AU-TinaNeural", - Self::en_AU_WilliamNeural => "en-AU-WilliamNeural", Self::en_CA_ClaraNeural => "en-CA-ClaraNeural", Self::en_CA_LiamNeural => "en-CA-LiamNeural", + Self::en_GB_SoniaNeural => "en-GB-SoniaNeural", + Self::en_GB_RyanNeural => "en-GB-RyanNeural", Self::en_GB_LibbyNeural => "en-GB-LibbyNeural", Self::en_GB_AbbiNeural => "en-GB-AbbiNeural", Self::en_GB_AlfieNeural => "en-GB-AlfieNeural", @@ -1463,39 +1489,37 @@ impl Into for VoiceName { Self::en_GB_NoahNeural => "en-GB-NoahNeural", Self::en_GB_OliverNeural => "en-GB-OliverNeural", Self::en_GB_OliviaNeural => "en-GB-OliviaNeural", - Self::en_GB_RyanNeural => "en-GB-RyanNeural", - Self::en_GB_SoniaNeural => "en-GB-SoniaNeural", Self::en_GB_ThomasNeural => "en-GB-ThomasNeural", Self::en_GB_MiaNeural => "en-GB-MiaNeural", - Self::en_HK_SamNeural => "en-HK-SamNeural", Self::en_HK_YanNeural => "en-HK-YanNeural", - Self::en_IE_ConnorNeural => "en-IE-ConnorNeural", + Self::en_HK_SamNeural => "en-HK-SamNeural", Self::en_IE_EmilyNeural => "en-IE-EmilyNeural", + Self::en_IE_ConnorNeural => "en-IE-ConnorNeural", Self::en_IN_NeerjaNeural => "en-IN-NeerjaNeural", Self::en_IN_PrabhatNeural => "en-IN-PrabhatNeural", Self::en_KE_AsiliaNeural => "en-KE-AsiliaNeural", Self::en_KE_ChilembaNeural => "en-KE-ChilembaNeural", - Self::en_NG_AbeoNeural => "en-NG-AbeoNeural", Self::en_NG_EzinneNeural => "en-NG-EzinneNeural", - Self::en_NZ_MitchellNeural => "en-NZ-MitchellNeural", + Self::en_NG_AbeoNeural => "en-NG-AbeoNeural", Self::en_NZ_MollyNeural => "en-NZ-MollyNeural", - Self::en_PH_JamesNeural => "en-PH-JamesNeural", + Self::en_NZ_MitchellNeural => "en-NZ-MitchellNeural", Self::en_PH_RosaNeural => "en-PH-RosaNeural", + Self::en_PH_JamesNeural => "en-PH-JamesNeural", Self::en_SG_LunaNeural => "en-SG-LunaNeural", Self::en_SG_WayneNeural => "en-SG-WayneNeural", - Self::en_TZ_ElimuNeural => "en-TZ-ElimuNeural", Self::en_TZ_ImaniNeural => "en-TZ-ImaniNeural", + Self::en_TZ_ElimuNeural => "en-TZ-ElimuNeural", Self::en_US_JennyNeural => "en-US-JennyNeural", Self::en_US_JennyMultilingualNeural => "en-US-JennyMultilingualNeural", Self::en_US_GuyNeural => "en-US-GuyNeural", + Self::en_US_AriaNeural => "en-US-AriaNeural", + Self::en_US_DavisNeural => "en-US-DavisNeural", Self::en_US_AmberNeural => "en-US-AmberNeural", Self::en_US_AnaNeural => "en-US-AnaNeural", - Self::en_US_AriaNeural => "en-US-AriaNeural", Self::en_US_AshleyNeural => "en-US-AshleyNeural", Self::en_US_BrandonNeural => "en-US-BrandonNeural", Self::en_US_ChristopherNeural => "en-US-ChristopherNeural", Self::en_US_CoraNeural => "en-US-CoraNeural", - Self::en_US_DavisNeural => "en-US-DavisNeural", Self::en_US_ElizabethNeural => "en-US-ElizabethNeural", Self::en_US_EricNeural => "en-US-EricNeural", Self::en_US_JacobNeural => "en-US-JacobNeural", @@ -1508,31 +1532,32 @@ impl Into for VoiceName { Self::en_US_SaraNeural => "en-US-SaraNeural", Self::en_US_SteffanNeural => "en-US-SteffanNeural", Self::en_US_TonyNeural => "en-US-TonyNeural", - Self::en_US_JennyEmotionNeural => "en-US-JennyEmotionNeural", + Self::en_US_AIGenerate1Neural => "en-US-AIGenerate1Neural", + Self::en_US_AIGenerate2Neural => "en-US-AIGenerate2Neural", Self::en_ZA_LeahNeural => "en-ZA-LeahNeural", Self::en_ZA_LukeNeural => "en-ZA-LukeNeural", Self::es_AR_ElenaNeural => "es-AR-ElenaNeural", Self::es_AR_TomasNeural => "es-AR-TomasNeural", - Self::es_BO_MarceloNeural => "es-BO-MarceloNeural", Self::es_BO_SofiaNeural => "es-BO-SofiaNeural", + Self::es_BO_MarceloNeural => "es-BO-MarceloNeural", Self::es_CL_CatalinaNeural => "es-CL-CatalinaNeural", Self::es_CL_LorenzoNeural => "es-CL-LorenzoNeural", - Self::es_CO_GonzaloNeural => "es-CO-GonzaloNeural", Self::es_CO_SalomeNeural => "es-CO-SalomeNeural", - Self::es_CR_JuanNeural => "es-CR-JuanNeural", + Self::es_CO_GonzaloNeural => "es-CO-GonzaloNeural", Self::es_CR_MariaNeural => "es-CR-MariaNeural", + Self::es_CR_JuanNeural => "es-CR-JuanNeural", Self::es_CU_BelkysNeural => "es-CU-BelkysNeural", Self::es_CU_ManuelNeural => "es-CU-ManuelNeural", - Self::es_DO_EmilioNeural => "es-DO-EmilioNeural", Self::es_DO_RamonaNeural => "es-DO-RamonaNeural", + Self::es_DO_EmilioNeural => "es-DO-EmilioNeural", Self::es_EC_AndreaNeural => "es-EC-AndreaNeural", Self::es_EC_LuisNeural => "es-EC-LuisNeural", - Self::es_ES_AbrilNeural => "es-ES-AbrilNeural", + Self::es_ES_ElviraNeural => "es-ES-ElviraNeural", Self::es_ES_AlvaroNeural => "es-ES-AlvaroNeural", + Self::es_ES_AbrilNeural => "es-ES-AbrilNeural", Self::es_ES_ArnauNeural => "es-ES-ArnauNeural", Self::es_ES_DarioNeural => "es-ES-DarioNeural", Self::es_ES_EliasNeural => "es-ES-EliasNeural", - Self::es_ES_ElviraNeural => "es-ES-ElviraNeural", Self::es_ES_EstrellaNeural => "es-ES-EstrellaNeural", Self::es_ES_IreneNeural => "es-ES-IreneNeural", Self::es_ES_LaiaNeural => "es-ES-LaiaNeural", @@ -1542,19 +1567,19 @@ impl Into for VoiceName { Self::es_ES_TeoNeural => "es-ES-TeoNeural", Self::es_ES_TrianaNeural => "es-ES-TrianaNeural", Self::es_ES_VeraNeural => "es-ES-VeraNeural", - Self::es_GQ_JavierNeural => "es-GQ-JavierNeural", Self::es_GQ_TeresaNeural => "es-GQ-TeresaNeural", - Self::es_GT_AndresNeural => "es-GT-AndresNeural", + Self::es_GQ_JavierNeural => "es-GQ-JavierNeural", Self::es_GT_MartaNeural => "es-GT-MartaNeural", - Self::es_HN_CarlosNeural => "es-HN-CarlosNeural", + Self::es_GT_AndresNeural => "es-GT-AndresNeural", Self::es_HN_KarlaNeural => "es-HN-KarlaNeural", + Self::es_HN_CarlosNeural => "es-HN-CarlosNeural", + Self::es_MX_DaliaNeural => "es-MX-DaliaNeural", + Self::es_MX_JorgeNeural => "es-MX-JorgeNeural", Self::es_MX_BeatrizNeural => "es-MX-BeatrizNeural", Self::es_MX_CandelaNeural => "es-MX-CandelaNeural", Self::es_MX_CarlotaNeural => "es-MX-CarlotaNeural", Self::es_MX_CecilioNeural => "es-MX-CecilioNeural", - Self::es_MX_DaliaNeural => "es-MX-DaliaNeural", Self::es_MX_GerardoNeural => "es-MX-GerardoNeural", - Self::es_MX_JorgeNeural => "es-MX-JorgeNeural", Self::es_MX_LarissaNeural => "es-MX-LarissaNeural", Self::es_MX_LibertoNeural => "es-MX-LibertoNeural", Self::es_MX_LucianoNeural => "es-MX-LucianoNeural", @@ -1563,22 +1588,22 @@ impl Into for VoiceName { Self::es_MX_PelayoNeural => "es-MX-PelayoNeural", Self::es_MX_RenataNeural => "es-MX-RenataNeural", Self::es_MX_YagoNeural => "es-MX-YagoNeural", - Self::es_NI_FedericoNeural => "es-NI-FedericoNeural", Self::es_NI_YolandaNeural => "es-NI-YolandaNeural", + Self::es_NI_FedericoNeural => "es-NI-FedericoNeural", Self::es_PA_MargaritaNeural => "es-PA-MargaritaNeural", Self::es_PA_RobertoNeural => "es-PA-RobertoNeural", - Self::es_PE_AlexNeural => "es-PE-AlexNeural", Self::es_PE_CamilaNeural => "es-PE-CamilaNeural", + Self::es_PE_AlexNeural => "es-PE-AlexNeural", Self::es_PR_KarinaNeural => "es-PR-KarinaNeural", Self::es_PR_VictorNeural => "es-PR-VictorNeural", - Self::es_PY_MarioNeural => "es-PY-MarioNeural", Self::es_PY_TaniaNeural => "es-PY-TaniaNeural", + Self::es_PY_MarioNeural => "es-PY-MarioNeural", Self::es_SV_LorenaNeural => "es-SV-LorenaNeural", Self::es_SV_RodrigoNeural => "es-SV-RodrigoNeural", - Self::es_US_AlonsoNeural => "es-US-AlonsoNeural", Self::es_US_PalomaNeural => "es-US-PalomaNeural", - Self::es_UY_MateoNeural => "es-UY-MateoNeural", + Self::es_US_AlonsoNeural => "es-US-AlonsoNeural", Self::es_UY_ValentinaNeural => "es-UY-ValentinaNeural", + Self::es_UY_MateoNeural => "es-UY-MateoNeural", Self::es_VE_PaolaNeural => "es-VE-PaolaNeural", Self::es_VE_SebastianNeural => "es-VE-SebastianNeural", Self::et_EE_AnuNeural => "et-EE-AnuNeural", @@ -1590,55 +1615,55 @@ impl Into for VoiceName { Self::fi_FI_SelmaNeural => "fi-FI-SelmaNeural", Self::fi_FI_HarriNeural => "fi-FI-HarriNeural", Self::fi_FI_NooraNeural => "fi-FI-NooraNeural", - Self::fil_PH_AngeloNeural => "fil-PH-AngeloNeural", Self::fil_PH_BlessicaNeural => "fil-PH-BlessicaNeural", + Self::fil_PH_AngeloNeural => "fil-PH-AngeloNeural", Self::fr_BE_CharlineNeural => "fr-BE-CharlineNeural", Self::fr_BE_GerardNeural => "fr-BE-GerardNeural", Self::fr_CA_SylvieNeural => "fr-CA-SylvieNeural", - Self::fr_CA_AntoineNeural => "fr-CA-AntoineNeural", Self::fr_CA_JeanNeural => "fr-CA-JeanNeural", + Self::fr_CA_AntoineNeural => "fr-CA-AntoineNeural", Self::fr_CH_ArianeNeural => "fr-CH-ArianeNeural", Self::fr_CH_FabriceNeural => "fr-CH-FabriceNeural", + Self::fr_FR_DeniseNeural => "fr-FR-DeniseNeural", + Self::fr_FR_HenriNeural => "fr-FR-HenriNeural", Self::fr_FR_AlainNeural => "fr-FR-AlainNeural", Self::fr_FR_BrigitteNeural => "fr-FR-BrigitteNeural", Self::fr_FR_CelesteNeural => "fr-FR-CelesteNeural", Self::fr_FR_ClaudeNeural => "fr-FR-ClaudeNeural", Self::fr_FR_CoralieNeural => "fr-FR-CoralieNeural", - Self::fr_FR_DeniseNeural => "fr-FR-DeniseNeural", Self::fr_FR_EloiseNeural => "fr-FR-EloiseNeural", - Self::fr_FR_HenriNeural => "fr-FR-HenriNeural", Self::fr_FR_JacquelineNeural => "fr-FR-JacquelineNeural", Self::fr_FR_JeromeNeural => "fr-FR-JeromeNeural", Self::fr_FR_JosephineNeural => "fr-FR-JosephineNeural", Self::fr_FR_MauriceNeural => "fr-FR-MauriceNeural", Self::fr_FR_YvesNeural => "fr-FR-YvesNeural", Self::fr_FR_YvetteNeural => "fr-FR-YvetteNeural", - Self::ga_IE_ColmNeural => "ga-IE-ColmNeural", Self::ga_IE_OrlaNeural => "ga-IE-OrlaNeural", - Self::gl_ES_RoiNeural => "gl-ES-RoiNeural", + Self::ga_IE_ColmNeural => "ga-IE-ColmNeural", Self::gl_ES_SabelaNeural => "gl-ES-SabelaNeural", + Self::gl_ES_RoiNeural => "gl-ES-RoiNeural", Self::gu_IN_DhwaniNeural => "gu-IN-DhwaniNeural", Self::gu_IN_NiranjanNeural => "gu-IN-NiranjanNeural", - Self::he_IL_AvriNeural => "he-IL-AvriNeural", Self::he_IL_HilaNeural => "he-IL-HilaNeural", - Self::hi_IN_MadhurNeural => "hi-IN-MadhurNeural", + Self::he_IL_AvriNeural => "he-IL-AvriNeural", Self::hi_IN_SwaraNeural => "hi-IN-SwaraNeural", + Self::hi_IN_MadhurNeural => "hi-IN-MadhurNeural", Self::hr_HR_GabrijelaNeural => "hr-HR-GabrijelaNeural", Self::hr_HR_SreckoNeural => "hr-HR-SreckoNeural", Self::hu_HU_NoemiNeural => "hu-HU-NoemiNeural", Self::hu_HU_TamasNeural => "hu-HU-TamasNeural", Self::hy_AM_AnahitNeural => "hy-AM-AnahitNeural", Self::hy_AM_HaykNeural => "hy-AM-HaykNeural", - Self::id_ID_ArdiNeural => "id-ID-ArdiNeural", Self::id_ID_GadisNeural => "id-ID-GadisNeural", + Self::id_ID_ArdiNeural => "id-ID-ArdiNeural", Self::is_IS_GudrunNeural => "is-IS-GudrunNeural", Self::is_IS_GunnarNeural => "is-IS-GunnarNeural", + Self::it_IT_ElsaNeural => "it-IT-ElsaNeural", Self::it_IT_IsabellaNeural => "it-IT-IsabellaNeural", + Self::it_IT_DiegoNeural => "it-IT-DiegoNeural", Self::it_IT_BenignoNeural => "it-IT-BenignoNeural", Self::it_IT_CalimeroNeural => "it-IT-CalimeroNeural", Self::it_IT_CataldoNeural => "it-IT-CataldoNeural", - Self::it_IT_DiegoNeural => "it-IT-DiegoNeural", - Self::it_IT_ElsaNeural => "it-IT-ElsaNeural", Self::it_IT_FabiolaNeural => "it-IT-FabiolaNeural", Self::it_IT_FiammaNeural => "it-IT-FiammaNeural", Self::it_IT_GianniNeural => "it-IT-GianniNeural", @@ -1649,40 +1674,46 @@ impl Into for VoiceName { Self::it_IT_PierinaNeural => "it-IT-PierinaNeural", Self::it_IT_RinaldoNeural => "it-IT-RinaldoNeural", Self::ja_JP_NanamiNeural => "ja-JP-NanamiNeural", + Self::ja_JP_KeitaNeural => "ja-JP-KeitaNeural", Self::ja_JP_AoiNeural => "ja-JP-AoiNeural", Self::ja_JP_DaichiNeural => "ja-JP-DaichiNeural", - Self::ja_JP_KeitaNeural => "ja-JP-KeitaNeural", Self::ja_JP_MayuNeural => "ja-JP-MayuNeural", Self::ja_JP_NaokiNeural => "ja-JP-NaokiNeural", Self::ja_JP_ShioriNeural => "ja-JP-ShioriNeural", - Self::jv_ID_DimasNeural => "jv-ID-DimasNeural", Self::jv_ID_SitiNeural => "jv-ID-SitiNeural", + Self::jv_ID_DimasNeural => "jv-ID-DimasNeural", Self::ka_GE_EkaNeural => "ka-GE-EkaNeural", Self::ka_GE_GiorgiNeural => "ka-GE-GiorgiNeural", Self::kk_KZ_AigulNeural => "kk-KZ-AigulNeural", Self::kk_KZ_DauletNeural => "kk-KZ-DauletNeural", - Self::km_KH_PisethNeural => "km-KH-PisethNeural", Self::km_KH_SreymomNeural => "km-KH-SreymomNeural", - Self::kn_IN_GaganNeural => "kn-IN-GaganNeural", + Self::km_KH_PisethNeural => "km-KH-PisethNeural", Self::kn_IN_SapnaNeural => "kn-IN-SapnaNeural", + Self::kn_IN_GaganNeural => "kn-IN-GaganNeural", Self::ko_KR_SunHiNeural => "ko-KR-SunHiNeural", Self::ko_KR_InJoonNeural => "ko-KR-InJoonNeural", - Self::lo_LA_ChanthavongNeural => "lo-LA-ChanthavongNeural", + Self::ko_KR_BongJinNeural => "ko-KR-BongJinNeural", + Self::ko_KR_GookMinNeural => "ko-KR-GookMinNeural", + Self::ko_KR_JiMinNeural => "ko-KR-JiMinNeural", + Self::ko_KR_SeoHyeonNeural => "ko-KR-SeoHyeonNeural", + Self::ko_KR_SoonBokNeural => "ko-KR-SoonBokNeural", + Self::ko_KR_YuJinNeural => "ko-KR-YuJinNeural", Self::lo_LA_KeomanyNeural => "lo-LA-KeomanyNeural", - Self::lt_LT_LeonasNeural => "lt-LT-LeonasNeural", + Self::lo_LA_ChanthavongNeural => "lo-LA-ChanthavongNeural", Self::lt_LT_OnaNeural => "lt-LT-OnaNeural", + Self::lt_LT_LeonasNeural => "lt-LT-LeonasNeural", Self::lv_LV_EveritaNeural => "lv-LV-EveritaNeural", Self::lv_LV_NilsNeural => "lv-LV-NilsNeural", - Self::mk_MK_AleksandarNeural => "mk-MK-AleksandarNeural", Self::mk_MK_MarijaNeural => "mk-MK-MarijaNeural", - Self::ml_IN_MidhunNeural => "ml-IN-MidhunNeural", + Self::mk_MK_AleksandarNeural => "mk-MK-AleksandarNeural", Self::ml_IN_SobhanaNeural => "ml-IN-SobhanaNeural", - Self::mn_MN_BataaNeural => "mn-MN-BataaNeural", + Self::ml_IN_MidhunNeural => "ml-IN-MidhunNeural", Self::mn_MN_YesuiNeural => "mn-MN-YesuiNeural", + Self::mn_MN_BataaNeural => "mn-MN-BataaNeural", Self::mr_IN_AarohiNeural => "mr-IN-AarohiNeural", Self::mr_IN_ManoharNeural => "mr-IN-ManoharNeural", - Self::ms_MY_OsmanNeural => "ms-MY-OsmanNeural", Self::ms_MY_YasminNeural => "ms-MY-YasminNeural", + Self::ms_MY_OsmanNeural => "ms-MY-OsmanNeural", Self::mt_MT_GraceNeural => "mt-MT-GraceNeural", Self::mt_MT_JosephNeural => "mt-MT-JosephNeural", Self::my_MM_NilarNeural => "my-MM-NilarNeural", @@ -1692,17 +1723,18 @@ impl Into for VoiceName { Self::nb_NO_IselinNeural => "nb-NO-IselinNeural", Self::ne_NP_HemkalaNeural => "ne-NP-HemkalaNeural", Self::ne_NP_SagarNeural => "ne-NP-SagarNeural", - Self::nl_BE_ArnaudNeural => "nl-BE-ArnaudNeural", Self::nl_BE_DenaNeural => "nl-BE-DenaNeural", - Self::nl_NL_ColetteNeural => "nl-NL-ColetteNeural", + Self::nl_BE_ArnaudNeural => "nl-BE-ArnaudNeural", Self::nl_NL_FennaNeural => "nl-NL-FennaNeural", Self::nl_NL_MaartenNeural => "nl-NL-MaartenNeural", + Self::nl_NL_ColetteNeural => "nl-NL-ColetteNeural", Self::pl_PL_AgnieszkaNeural => "pl-PL-AgnieszkaNeural", Self::pl_PL_MarekNeural => "pl-PL-MarekNeural", Self::pl_PL_ZofiaNeural => "pl-PL-ZofiaNeural", - Self::ps_AF_GulNawazNeural => "ps-AF-GulNawazNeural", Self::ps_AF_LatifaNeural => "ps-AF-LatifaNeural", + Self::ps_AF_GulNawazNeural => "ps-AF-GulNawazNeural", Self::pt_BR_FranciscaNeural => "pt-BR-FranciscaNeural", + Self::pt_BR_AntonioNeural => "pt-BR-AntonioNeural", Self::pt_BR_BrendaNeural => "pt-BR-BrendaNeural", Self::pt_BR_DonatoNeural => "pt-BR-DonatoNeural", Self::pt_BR_ElzaNeural => "pt-BR-ElzaNeural", @@ -1716,57 +1748,56 @@ impl Into for VoiceName { Self::pt_BR_NicolauNeural => "pt-BR-NicolauNeural", Self::pt_BR_ValerioNeural => "pt-BR-ValerioNeural", Self::pt_BR_YaraNeural => "pt-BR-YaraNeural", - Self::pt_BR_AntonioNeural => "pt-BR-AntonioNeural", + Self::pt_PT_RaquelNeural => "pt-PT-RaquelNeural", Self::pt_PT_DuarteNeural => "pt-PT-DuarteNeural", Self::pt_PT_FernandaNeural => "pt-PT-FernandaNeural", - Self::pt_PT_RaquelNeural => "pt-PT-RaquelNeural", Self::ro_RO_AlinaNeural => "ro-RO-AlinaNeural", Self::ro_RO_EmilNeural => "ro-RO-EmilNeural", Self::ru_RU_SvetlanaNeural => "ru-RU-SvetlanaNeural", - Self::ru_RU_DariyaNeural => "ru-RU-DariyaNeural", Self::ru_RU_DmitryNeural => "ru-RU-DmitryNeural", - Self::si_LK_SameeraNeural => "si-LK-SameeraNeural", + Self::ru_RU_DariyaNeural => "ru-RU-DariyaNeural", Self::si_LK_ThiliniNeural => "si-LK-ThiliniNeural", - Self::sk_SK_LukasNeural => "sk-SK-LukasNeural", + Self::si_LK_SameeraNeural => "si-LK-SameeraNeural", Self::sk_SK_ViktoriaNeural => "sk-SK-ViktoriaNeural", + Self::sk_SK_LukasNeural => "sk-SK-LukasNeural", Self::sl_SI_PetraNeural => "sl-SI-PetraNeural", Self::sl_SI_RokNeural => "sl-SI-RokNeural", - Self::so_SO_MuuseNeural => "so-SO-MuuseNeural", Self::so_SO_UbaxNeural => "so-SO-UbaxNeural", + Self::so_SO_MuuseNeural => "so-SO-MuuseNeural", Self::sq_AL_AnilaNeural => "sq-AL-AnilaNeural", Self::sq_AL_IlirNeural => "sq-AL-IlirNeural", - Self::sr_RS_NicholasNeural => "sr-RS-NicholasNeural", Self::sr_RS_SophieNeural => "sr-RS-SophieNeural", - Self::su_ID_JajangNeural => "su-ID-JajangNeural", + Self::sr_RS_NicholasNeural => "sr-RS-NicholasNeural", Self::su_ID_TutiNeural => "su-ID-TutiNeural", + Self::su_ID_JajangNeural => "su-ID-JajangNeural", Self::sv_SE_SofieNeural => "sv-SE-SofieNeural", - Self::sv_SE_HilleviNeural => "sv-SE-HilleviNeural", Self::sv_SE_MattiasNeural => "sv-SE-MattiasNeural", - Self::sw_KE_RafikiNeural => "sw-KE-RafikiNeural", + Self::sv_SE_HilleviNeural => "sv-SE-HilleviNeural", Self::sw_KE_ZuriNeural => "sw-KE-ZuriNeural", - Self::sw_TZ_DaudiNeural => "sw-TZ-DaudiNeural", + Self::sw_KE_RafikiNeural => "sw-KE-RafikiNeural", Self::sw_TZ_RehemaNeural => "sw-TZ-RehemaNeural", + Self::sw_TZ_DaudiNeural => "sw-TZ-DaudiNeural", Self::ta_IN_PallaviNeural => "ta-IN-PallaviNeural", Self::ta_IN_ValluvarNeural => "ta-IN-ValluvarNeural", - Self::ta_LK_KumarNeural => "ta-LK-KumarNeural", Self::ta_LK_SaranyaNeural => "ta-LK-SaranyaNeural", + Self::ta_LK_KumarNeural => "ta-LK-KumarNeural", Self::ta_MY_KaniNeural => "ta-MY-KaniNeural", Self::ta_MY_SuryaNeural => "ta-MY-SuryaNeural", - Self::ta_SG_AnbuNeural => "ta-SG-AnbuNeural", Self::ta_SG_VenbaNeural => "ta-SG-VenbaNeural", - Self::te_IN_MohanNeural => "te-IN-MohanNeural", + Self::ta_SG_AnbuNeural => "ta-SG-AnbuNeural", Self::te_IN_ShrutiNeural => "te-IN-ShrutiNeural", + Self::te_IN_MohanNeural => "te-IN-MohanNeural", Self::th_TH_PremwadeeNeural => "th-TH-PremwadeeNeural", - Self::th_TH_AcharaNeural => "th-TH-AcharaNeural", Self::th_TH_NiwatNeural => "th-TH-NiwatNeural", - Self::tr_TR_AhmetNeural => "tr-TR-AhmetNeural", + Self::th_TH_AcharaNeural => "th-TH-AcharaNeural", Self::tr_TR_EmelNeural => "tr-TR-EmelNeural", - Self::uk_UA_OstapNeural => "uk-UA-OstapNeural", + Self::tr_TR_AhmetNeural => "tr-TR-AhmetNeural", Self::uk_UA_PolinaNeural => "uk-UA-PolinaNeural", + Self::uk_UA_OstapNeural => "uk-UA-OstapNeural", Self::ur_IN_GulNeural => "ur-IN-GulNeural", Self::ur_IN_SalmanNeural => "ur-IN-SalmanNeural", - Self::ur_PK_AsadNeural => "ur-PK-AsadNeural", Self::ur_PK_UzmaNeural => "ur-PK-UzmaNeural", + Self::ur_PK_AsadNeural => "ur-PK-AsadNeural", Self::uz_UZ_MadinaNeural => "uz-UZ-MadinaNeural", Self::uz_UZ_SardorNeural => "uz-UZ-SardorNeural", Self::vi_VN_HoaiMyNeural => "vi-VN-HoaiMyNeural", @@ -1776,6 +1807,9 @@ impl Into for VoiceName { Self::yue_CN_XiaoMinNeural => "yue-CN-XiaoMinNeural", Self::yue_CN_YunSongNeural => "yue-CN-YunSongNeural", Self::zh_CN_XiaoxiaoNeural => "zh-CN-XiaoxiaoNeural", + Self::zh_CN_YunxiNeural => "zh-CN-YunxiNeural", + Self::zh_CN_YunjianNeural => "zh-CN-YunjianNeural", + Self::zh_CN_XiaoyiNeural => "zh-CN-XiaoyiNeural", Self::zh_CN_YunyangNeural => "zh-CN-YunyangNeural", Self::zh_CN_XiaochenNeural => "zh-CN-XiaochenNeural", Self::zh_CN_XiaohanNeural => "zh-CN-XiaohanNeural", @@ -1786,26 +1820,24 @@ impl Into for VoiceName { Self::zh_CN_XiaoshuangNeural => "zh-CN-XiaoshuangNeural", Self::zh_CN_XiaoxuanNeural => "zh-CN-XiaoxuanNeural", Self::zh_CN_XiaoyanNeural => "zh-CN-XiaoyanNeural", - Self::zh_CN_XiaoyiNeural => "zh-CN-XiaoyiNeural", Self::zh_CN_XiaoyouNeural => "zh-CN-XiaoyouNeural", Self::zh_CN_XiaozhenNeural => "zh-CN-XiaozhenNeural", Self::zh_CN_YunfengNeural => "zh-CN-YunfengNeural", Self::zh_CN_YunhaoNeural => "zh-CN-YunhaoNeural", - Self::zh_CN_YunjianNeural => "zh-CN-YunjianNeural", Self::zh_CN_YunxiaNeural => "zh-CN-YunxiaNeural", - Self::zh_CN_YunxiNeural => "zh-CN-YunxiNeural", Self::zh_CN_YunyeNeural => "zh-CN-YunyeNeural", Self::zh_CN_YunzeNeural => "zh-CN-YunzeNeural", Self::zh_CN_henan_YundengNeural => "zh-CN-henan-YundengNeural", Self::zh_CN_liaoning_XiaobeiNeural => "zh-CN-liaoning-XiaobeiNeural", Self::zh_CN_shaanxi_XiaoniNeural => "zh-CN-shaanxi-XiaoniNeural", Self::zh_CN_shandong_YunxiangNeural => "zh-CN-shandong-YunxiangNeural", + Self::zh_CN_sichuan_YunxiNeural => "zh-CN-sichuan-YunxiNeural", Self::zh_HK_HiuMaanNeural => "zh-HK-HiuMaanNeural", - Self::zh_HK_HiuGaaiNeural => "zh-HK-HiuGaaiNeural", Self::zh_HK_WanLungNeural => "zh-HK-WanLungNeural", + Self::zh_HK_HiuGaaiNeural => "zh-HK-HiuGaaiNeural", Self::zh_TW_HsiaoChenNeural => "zh-TW-HsiaoChenNeural", - Self::zh_TW_HsiaoYuNeural => "zh-TW-HsiaoYuNeural", Self::zh_TW_YunJheNeural => "zh-TW-YunJheNeural", + Self::zh_TW_HsiaoYuNeural => "zh-TW-HsiaoYuNeural", Self::zu_ZA_ThandoNeural => "zu-ZA-ThandoNeural", Self::zu_ZA_ThembaNeural => "zu-ZA-ThembaNeural", }) diff --git a/rust-ai/src/openai/endpoint.rs b/rust-ai/src/openai/endpoint.rs index ef3ad03..1d98499 100644 --- a/rust-ai/src/openai/endpoint.rs +++ b/rust-ai/src/openai/endpoint.rs @@ -24,10 +24,15 @@ pub fn endpoint_filter(model: &Model, endpoint: &Endpoint) -> bool { match endpoint { Endpoint::ChatCompletion_v1 => [ Model::GPT_3_5_TURBO, + Model::GPT_3_5_TURBO_16K, + Model::GPT_3_5_TURBO_16K_0613, + Model::GPT_3_5_TURBO_0613, Model::GPT_3_5_TURBO_0301, Model::GPT_4, + Model::GPT_4_0613, Model::GPT_4_0314, Model::GPT_4_32K, + Model::GPT_4_32K_0613, Model::GPT_4_32K_0314, ] .contains(&model), diff --git a/rust-ai/src/openai/mod.rs b/rust-ai/src/openai/mod.rs index efaf198..1f0d28f 100644 --- a/rust-ai/src/openai/mod.rs +++ b/rust-ai/src/openai/mod.rs @@ -22,8 +22,8 @@ //! //! | Category | Variant | Tested Models | Stream | //! | :--------------- | :------------- | :----------------------- | :----: | -//! | Chat completions | - | `gpt-4`, `gpt-4-0314`, `gpt-3.5-turbo`, `gpt-3.5-turbo-0301`, `text-davinci-003`, `text-davinci-002`, `code-davinci-002`[^note_3] | yes |ext-davinci-002`, `code-davinci-002` | yes | -//! | Completions | - | `gpt-3.5-turbo`, `gpt-3.5-turbo-0301`, `text-davinci-003` | yes | | yes | +//! | Chat completions | - | `gpt-4`, `gpt-4-0314`, `gpt-4-0613`, `gpt-3.5-turbo`, `gpt-3.5-turbo-16k`, `gpt-3.5-turbo-16k-0613`, `gpt-3.5-turbo-0613`, `gpt-3.5-turbo-0301`, `text-davinci-003`, `text-davinci-002`, `code-davinci-002`[^note_3] | yes |ext-davinci-002`, `code-davinci-002` | yes | +//! | Completions | - | `gpt-3.5-turbo`, `gpt-3.5-turbo-16k`, `gpt-3.5-turbo-16k-0613`, `gpt-3.5-turbo-0613`, `gpt-3.5-turbo-0301`, `text-davinci-003` | yes | | yes | //! | Edits | - | `text-davinci-edit-001`, `code-davinci-edit-001` | - | //! | Images | Generations | `dall-e`[^note_1] | - | //! | Images | Edits | `dall-e`[^note_1] | - | @@ -34,7 +34,7 @@ //! | Moderation | - | `text-moderation-latest`[^note_2], `text-moderation-stable` | - | //! //! Note: -//! - Updated on May 6th, 2023. +//! - Updated on June 16th, 2023. //! - OpenAI's Fine Tunes endpoints are currently not supported. //! //! [^note_1]: `dall-e` is an hypothetical name of the unknown model. @@ -46,7 +46,7 @@ //! its API endpoints to specify variants other than `text-moderation-latest` //! and `text-moderation-stable`. //! -//! [^note_3]: GPT-4/GPT-4-0314 tested, GPT-4-32K/GPT-4-32K-0314 not tested +//! [^note_3]: GPT-4/GPT-4-0314/GPT-4-0613 tested, GPT-4-32K/GPT-4-32K-0314 not tested //! because developer currently only has access to 8K token ones (May 6th, //! 2023). //! diff --git a/rust-ai/src/openai/types/model.rs b/rust-ai/src/openai/types/model.rs index 11b201e..7796117 100644 --- a/rust-ai/src/openai/types/model.rs +++ b/rust-ai/src/openai/types/model.rs @@ -29,6 +29,9 @@ pub enum Model { /// More capable than any GPT-3.5 model, able to do more complex tasks, and /// optimized for chat. Will be updated with our latest model iteration. /// + /// Note: on June 27th, 2023, `gpt-4` will be updated to point from + /// `gpt-4-0314` to `gpt-4-0613`, the latest model iteration. + /// /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :---------- | :------------- | :----- | /// | 8192 tokens | Up to Sep 2021 | GPT-4 | @@ -42,9 +45,20 @@ pub enum Model { /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :---------- | :------------- | :----- | /// | 8192 tokens | Up to Sep 2021 | GPT-4 | + #[deprecated(note = "Discontinuation date 2023-09-13, use `gpt-4-0613` instead")] #[serde(rename = "gpt-4-0314")] GPT_4_0314, + /// Snapshot of `gpt-4` from June 13th 2023 with function calling data. + /// Unlike `gpt-4`, this model will not receive updates, and will be + /// deprecated 3 months after a new version is released. + /// + /// | MAX TOKENS | TRAINING DATA | SERIES | + /// | :----------- | :------------- | :----- | + /// | 8,192 tokens | Up to Sep 2021 | GPT-4 | + #[serde(rename = "gpt-4-0613")] + GPT_4_0613, + /// Same capabilities as the base `gpt-4` mode but with 4x the context /// length. Will be updated with our latest model iteration. /// @@ -54,25 +68,68 @@ pub enum Model { #[serde(rename = "gpt-4-32k")] GPT_4_32K, - /// Snapshot of `gpt-4-32` from March 14th 2023. Unlike `gpt-4-32k`, this - /// model will not receive updates, and will be deprecated 3 months after a + /// Snapshot of `gpt-4-32` from June 13th 2023. Unlike `gpt-4-32k`, this + /// model will not receive updates, and will be deprecated 3 months after a + /// new version is released. + /// + /// | MAX TOKENS | TRAINING DATA | SERIES | + /// | :------------ | :------------- | :----- | + /// | 32,768 tokens | Up to Sep 2021 | GPT-4 | + #[serde(rename = "gpt-4-0613")] + GPT_4_32K_0613, + + /// Snapshot of `gpt-4-32` from March 14th 2023. Unlike `gpt-4-32k`, this + /// model will not receive updates, and will be deprecated 3 months after a /// new version is released. /// /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :----------- | :------------- | :----- | /// | 32768 tokens | Up to Sep 2021 | GPT-4 | + #[deprecated(note = "Discontinuation date 2023-09-13, use `gpt-4-32k-0613` instead")] #[serde(rename = "gpt-4-32k-0314")] GPT_4_32K_0314, /// Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of /// `text-davinci-003`. Will be updated with our latest model iteration. /// + /// Note: on June 27th, 2023, `gpt-3.5-turbo` will be updated to point from + /// `gpt-3.5-turbo-0301` to `gpt-3.5-turbo-0613`. + /// /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :---------- | :------------- | :------ | /// | 4096 tokens | Up to Sep 2021 | GPT-3.5 | #[serde(rename = "gpt-3.5-turbo")] GPT_3_5_TURBO, + /// Same capabilities as the standard `gpt-3.5-turbo` model but with 4 + /// times the context. + /// + /// | MAX TOKENS | TRAINING DATA | SERIES | + /// | :------------ | :------------- | :------ | + /// | 16,384 tokens | Up to Sep 2021 | GPT-3.5 | + #[serde(rename = "gpt-3.5-turbo-16k")] + GPT_3_5_TURBO_16K, + + /// Snapshot of `gpt-3.5-turbo-16k` from June 13th 2023. Unlike + /// `gpt-3.5-turbo-16k`, this model will not receive updates, and will be + /// deprecated 3 months after a new version is released. + /// + /// | MAX TOKENS | TRAINING DATA | SERIES | + /// | :------------ | :------------- | :------ | + /// | 16,384 tokens | Up to Sep 2021 | GPT-3.5 | + #[serde(rename = "gpt-3.5-turbo-16k-0613")] + GPT_3_5_TURBO_16K_0613, + + /// Snapshot of `gpt-3.5-turbo` from June 13th 2023 with function calling + /// data. Unlike `gpt-3.5-turbo`, this model will not receive updates, and + /// will be deprecated 3 months after a new version is released. + /// + /// | MAX TOKENS | TRAINING DATA | SERIES | + /// | :----------- | :------------- | :------ | + /// | 4,096 tokens | Up to Sep 2021 | GPT-3.5 | + #[serde(rename = "gpt-3.5-turbo-0613")] + GPT_3_5_TURBO_0613, + /// Snapshot of `gpt-3.5-turbo` from March 1st 2023. Unlike /// `gpt-3.5-turbo`, this model will not receive updates, and will only be /// supported for a three month period ending on June 1st 2023. @@ -80,12 +137,13 @@ pub enum Model { /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :---------- | :------------- | :------ | /// | 4096 tokens | Up to Sep 2021 | GPT-3.5 | + #[deprecated(note = "Discontinuation date 2023-09-13, use `gpt-3.5-turbo-0613` instead")] #[serde(rename = "gpt-3.5-turbo-0301")] GPT_3_5_TURBO_0301, /// Can do any language task with better quality, longer output, and - /// consistent instruction-following than the curie, babbage, or ada models. - /// Also supports [inserting](https://platform.openai.com/docs/guides/completion/inserting-text) completions within text. + /// consistent instruction-following than the curie, babbage, or ada + /// models. Also supports some additional features such as [inserting text](https://platform.openai.com/docs/guides/gpt/inserting-text). /// /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :---------- | :------------- | :------ | @@ -153,9 +211,9 @@ pub enum Model { #[deprecated(note = "The Codex models are now deprecated.")] #[serde(rename = "code-cushman-002")] CODE_CUSHMAN_002, - + /// Earlier version of `code-cushman-002` - /// + /// /// | MAX TOKENS | TRAINING DATA | SERIES | /// | :---------- | :------------- | :----- | /// | 2048 tokens | - | Codex | @@ -250,10 +308,15 @@ impl Into<&'static str> for Model { fn into(self) -> &'static str { match self { Model::GPT_4 => "gpt-4", + Model::GPT_4_0613 => "gpt-4-0613", Model::GPT_4_0314 => "gpt-4-0314", Model::GPT_4_32K => "gpt-4-32k", + Model::GPT_4_32K_0613 => "gpt-4-32k-0613", Model::GPT_4_32K_0314 => "gpt-4-32k-0314", Model::GPT_3_5_TURBO => "gpt-3.5-turbo", + Model::GPT_3_5_TURBO_16K => "gpt-3.5-turbo-16k", + Model::GPT_3_5_TURBO_16K_0613 => "gpt-3.5-turbo-16k-0613", + Model::GPT_3_5_TURBO_0613 => "gpt-3.5-turbo-0613", Model::GPT_3_5_TURBO_0301 => "gpt-3.5-turbo-0301", Model::TEXT_DAVINCI_003 => "text-davinci-003", Model::TEXT_DAVINCI_002 => "text-davinci-002", diff --git a/rust-ai/src/xfyun/apis/asr.rs b/rust-ai/src/xfyun/apis/asr.rs index 4d5e1b6..96f0d41 100644 --- a/rust-ai/src/xfyun/apis/asr.rs +++ b/rust-ai/src/xfyun/apis/asr.rs @@ -14,6 +14,6 @@ pub struct ASRBuilder { pd: Option, audio_mode: Option, audio_url: Option, - standard_wav_type: Option, - language_mix_type: Option, + // standard_wav_type: Option, + // language_mix_type: Option, } \ No newline at end of file