From 755787060332e9f8be8ead546591d56d0e126f35 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 12:53:02 -0400 Subject: [PATCH 01/12] docs: add Inworld and MiniMax TTS engines - Add provider pages for Inworld and MiniMax under platform voice/TTS, each with models, full voice catalogs, languages, usage, voice parameters, and a build walkthrough (modeled on the Rime page). - Register both engines in the TTS index and the SWML languages voice engine list. - Document engine-specific params verified against the mod_openai C source: Inworld speakingRate/temperature; MiniMax speed/vol/pitch/ emotion plus emotion:auto. Added to ai_languages.tsp and the SWML languages reference. - Fix the TTS index table: add the missing azure. prefix to the Azure sample voice string and drop the redundant Engine code column. --- .../pages/calling/voice/TTS/index.mdx | 28 +- .../pages/calling/voice/TTS/inworld.mdx | 443 +++++++++++ .../pages/calling/voice/TTS/minimax.mdx | 697 ++++++++++++++++++ .../methods/calling/ai/languages/index.mdx | 60 +- .../swml/calling/Methods/ai/ai_languages.tsp | 40 +- .../@typespec/json-schema/SWMLObject.json | 116 ++- 6 files changed, 1363 insertions(+), 21 deletions(-) create mode 100644 fern/products/platform/pages/calling/voice/TTS/inworld.mdx create mode 100644 fern/products/platform/pages/calling/voice/TTS/minimax.mdx diff --git a/fern/products/platform/pages/calling/voice/TTS/index.mdx b/fern/products/platform/pages/calling/voice/TTS/index.mdx index 41a6549e98..975a7a893a 100644 --- a/fern/products/platform/pages/calling/voice/TTS/index.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/index.mdx @@ -18,6 +18,8 @@ description: Detailed list of all the TTS providers and voices SignalWire suppor [deepgram]: /docs/platform/voice/tts/deepgram [elevenlabs]: /docs/platform/voice/tts/elevenlabs [gcloud]: /docs/platform/voice/tts/gcloud +[inworld]: /docs/platform/voice/tts/inworld +[minimax]: /docs/platform/voice/tts/minimax [openai]: /docs/platform/voice/tts/openai [rime]: /docs/platform/voice/tts/rime @@ -43,6 +45,10 @@ English, Spanish, French, German, and Hindi (Arcana model only). English, Spanish, German, French, Dutch, Italian, and Japanese. - [Amazon Polly][polly], [Azure][azure], [Cartesia][cartesia], and [Google Cloud][gcloud] offer a wide range of supported languages. +- [Inworld][inworld] voices support English plus Arabic, Chinese (Mandarin), Dutch, French, +German, Hebrew, Hindi, Italian, Japanese, Korean, Polish, Portuguese, Russian, and Spanish. +- [MiniMax][minimax] voices span more than 20 languages, including English, Spanish, Portuguese, +French, German, Italian, Chinese, Japanese, Korean, and many more, with automatic language detection. - All [ElevenLabs][elevenlabs] and [OpenAI][openai] voices are fully multilingual. **SSML support:** Google Cloud and Amazon Polly support @@ -78,16 +84,18 @@ GCLOUD.EN-US-NEURAL2-A For detailed instructions for each provider, consult the voice ID references linked in the **Usage** column of the below table. -| TTS provider | Engine code | Sample voice ID string | Usage | -| :-------------- | :----------- | :---------------------------------------------- | ---------------------------------------------- | -| Amazon Polly | `amazon` | `amazon.Joanna-Neural` | [Reference](/docs/platform/voice/tts/amazon-polly#usage) | -| Azure | `azure` | `en-US-AvaNeural` | [Reference](/docs/platform/voice/tts/azure#usage) | -| Cartesia | `cartesia` | `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` | [Reference](/docs/platform/voice/tts/cartesia#usage) | -| Deepgram | `deepgram` | `deepgram.aura-asteria-en` | [Reference](/docs/platform/voice/tts/deepgram#usage) | -| ElevenLabs | `elevenlabs` | `elevenlabs.thomas` | [Reference](/docs/platform/voice/tts/elevenlabs#usage) | -| Google Cloud | `gcloud` | `gcloud.en-US-Casual-K` | [Reference](/docs/platform/voice/tts/gcloud#usage) | -| OpenAI | `openai` | `openai.alloy` | [Reference](/docs/platform/voice/tts/openai#usage) | -| Rime | `rime` | `rime.luna:arcana` | [Reference](/docs/platform/voice/tts/rime#voices) | +| TTS provider | Sample voice ID string | Usage | +| :-------------- | :---------------------------------------------- | ---------------------------------------------- | +| Amazon Polly | `amazon.Joanna-Neural` | [Reference](/docs/platform/voice/tts/amazon-polly#usage) | +| Azure | `azure.en-US-AvaNeural` | [Reference](/docs/platform/voice/tts/azure#usage) | +| Cartesia | `cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab` | [Reference](/docs/platform/voice/tts/cartesia#usage) | +| Deepgram | `deepgram.aura-asteria-en` | [Reference](/docs/platform/voice/tts/deepgram#usage) | +| ElevenLabs | `elevenlabs.thomas` | [Reference](/docs/platform/voice/tts/elevenlabs#usage) | +| Google Cloud | `gcloud.en-US-Casual-K` | [Reference](/docs/platform/voice/tts/gcloud#usage) | +| Inworld | `inworld.Lauren:inworld-tts-1.5-mini` | [Reference](/docs/platform/voice/tts/inworld#voices) | +| MiniMax | `minimax.English_CalmWoman:speech-2.6-turbo` | [Reference](/docs/platform/voice/tts/minimax#voices) | +| OpenAI | `openai.alloy` | [Reference](/docs/platform/voice/tts/openai#usage) | +| Rime | `rime.luna:arcana` | [Reference](/docs/platform/voice/tts/rime#voices) |
diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx new file mode 100644 index 0000000000..4a7229fdbb --- /dev/null +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -0,0 +1,443 @@ +--- +title: The Inworld TTS engine +subtitle: Text-to-speech +slug: /voice/tts/inworld +description: Learn how to use Inworld's expressive, multilingual TTS models with SignalWire AI Voice applications. +max-toc-depth: 3 +--- + + +Inworld is a text-to-speech engine offering high-quality, expressive voices across many languages. +Use it to give a voice to your [AI agents](/docs/swml/reference/ai) or to read text aloud with the +[`play`](/docs/swml/reference/play) method. + +## Models + +Inworld offers two models. Pick `inworld-tts-1.5-mini` for speed and cost, or `inworld-tts-1.5-max` +for the highest quality. + +| Model | Description | +|-------|-------------| +| `inworld-tts-1.5-mini` | Faster, lower-cost model | +| `inworld-tts-1.5-max` | Higher quality model | + + +If you don't choose a model, [AI agents](/docs/swml/reference/ai) use `inworld-tts-1.5-mini` and the +[`play`](/docs/swml/reference/play) method uses `inworld-tts-1.5-max`. Set a model explicitly to +override this. + + + + + The faster, lower-cost model, suited for high-volume, latency-sensitive applications. + + + The higher-quality model, suited for expressive, character-driven, and premium reads. + + + +## Voices + +Browse the available voices below. +A voice's **name** is its voice ID: for example, `Lauren` becomes `inworld.Lauren` in the +[voice string](#usage). + +### English + +| Voice | Description | +|-------|-------------| +| Abby | Bright, eager American female child voice, ideal for animated characters and upbeat educational content | +| Alex | Energetic and expressive mid-range male voice, with a mildly nasal quality | +| Amina | Warm, inviting West African female voice, ideal for community outreach and cultural storytelling | +| Anjali | Confident and articulate Indian female voice, ideal for professional training materials | +| Arjun | Clear, composed Indian male voice, well-suited for instructional webinars and technology explainers | +| Ashley | A warm, natural female voice | +| Avery | Youthful, performative male voice, suited for gameshow-style hosting and energetic presenter reads | +| Bianca | Deep, controlled female voice, ideal for serious corporate reads and composed documentary segments | +| Blake | Rich, intimate male voice, perfect for audiobooks, romantic content, and reassuring narration | +| Brandon | Bold, strident male voice, ideal for structured announcements and news-style reads | +| Brian | Friendly, encouraging American male voice, ideal for educational tutorials and motivational content | +| Callum | Casual and friendly Australian male voice, ideal for informal instructional content | +| Carter | Energetic, mature radio announcer-style male voice, great for storytelling and voiceovers | +| Cedric | Crisp, measured male voice, ideal for formal announcements and premium trailer narration | +| Celeste | Soft, whispery female voice, ideal for ASMR videos, soothing lullabies, and gentle mindfulness sessions | +| Chloe | Thoughtful, introspective youthful female voice, perfect for coming-of-age narratives | +| Claire | Warm, gentle Eastern European female voice, ideal for bedtime stories and relaxation podcasts | +| Clive | British-accented male voice with a calm, cordial quality | +| Craig | Older British male with a refined and articulate voice | +| Damon | Calm, raspy male voice, suited for moody narration and atmospheric roleplay characters | +| Deborah | Warm, peaceful female voice with a calm tone | +| Dennis | Middle-aged man with a smooth, calm and friendly voice | +| Derek | Steady, professional, composed American male voice, ideal for banking support and service calls | +| Dominus | Robotic, deep male voice with a menacing quality — perfect for villains | +| Edward | American male with an emphatic, confident and streetwise tone | +| Elizabeth | Professional middle-aged woman, perfect for narrations and voiceovers | +| Elliot | Calm, steady male voice, suitable for nature documentaries and relaxed narrations | +| Ethan | Assured, precise male voice, perfect for tech tutorials and product demonstrations | +| Evan | Friendly, approachable, easygoing male voice, ideal for onboarding calls and retail assistance | +| Evelyn | Gentle and intimate female voice, ideal for personal ASMR content and affirmations | +| Gareth | Soothing, gentle male voice, ideal for guided meditations and relaxation-focused wellness content | +| Graham | Profound, authoritative British male voice, perfect for historical documentaries and luxury brand ads | +| Grant | Calm, attentive, helpful male voice, ideal for insurance claims and helpdesk interactions | +| Hades | Commanding and gruff male voice — think omniscient narrator or castle guard | +| Hamish | Friendly and casual Australian male voice, ideal for character-driven roles and upbeat fitness | +| Hana | Bright, expressive young female voice, perfect for storytelling, gaming, and playful content | +| Hank | Warm, laid-back Southern male voice, ideal for travel documentaries and heritage storytelling | +| Jake | Amiable, introspective male voice, ideal for motivational talks and personal growth content | +| James | Vibrant, expressive male voice, perfect for animated video content and captivating children's stories | +| Jason | Lucid, engrossing male voice, ideal for tech tips and creative productivity hacks | +| Jessica | Encouraging, articulate American female voice, perfect for self-help audiobooks and e-learning | +| Jonah | Soothing, calm male voice, great for tutorial guidance and reassuring support flows | +| Julia | Quirky, high-pitched female voice that delivers lines with playful energy | +| Kayla | Enthusiastic, youthful female voice, ideal for reaction videos and trendy product reviews | +| Kelsey | Warm, empathetic, reassuring female voice, ideal for phone support and appointment confirmations | +| Lauren | Confident, friendly American female voice, ideal for corporate presentations and engaging podcasts | +| Levi | Measured, ominous male voice, ideal for suspense narration and dark fantasy storytelling | +| Liam | Upbeat, motivating Australian male voice, perfect for energizing workout sessions and event promotions | +| Loretta | Inviting, folksy Southern female voice, perfect for cooking shows and heartwarming family tales | +| Lucian | Brooding, foreboding male voice, suited for villainous character arcs and gothic drama scenes | +| Luna | Calm, relaxing female voice, perfect for meditations, sleep stories, and mindfulness exercises | +| Malcolm | Authoritative, manipulative male voice, perfect for cunning leaders and intense negotiation scenes | +| Marcus | Authoritative, empathetic male voice, great for civic campaigns and trustworthy commercial reads | +| Mark | Energetic, expressive man with a rapid-fire delivery | +| Marlene | Friendly, relaxed Southern female voice, ideal for home-style cooking tutorials and community events | +| Mia | Youthful, expressive female voice, ideal for adolescent characters and school-age animation dialogue | +| Miranda | Menacing, cold-hearted female voice, perfect for strategic villains and mysterious narratives | +| Mortimer | Gravelly, aggressive male character voice, ideal for fantasy villains and high-intensity game dialogue | +| Nadia | Personable, lively female voice, perfect for tutorial walkthroughs and friendly support messaging | +| Naomi | Warm, grounded female voice, perfect for narrative podcasting and emotionally real brand storytelling | +| Nate | Conversational, sociable male voice, great for customer support and friendly guidance | +| Oliver | Neutral and clear male voice, ideal for public announcements and educational information | +| Olivia | Young, British female with a friendly and helpful tone, conveying confidence and efficiency | +| Pippa | Friendly and casual Australian female voice, ideal for relaxed instructional content | +| Pixie | High-pitched, childlike female voice with a squeaky quality — great for cartoon characters | +| Priya | Even-toned female voice with an Indian accent | +| Riley | Playful, youthful female voice, perfect for animated storytelling and high-energy kid-focused content | +| Ronald | Confident, British man with a deep, gravelly voice | +| Rupert | Resonant, commanding British male voice, ideal for motivational speeches and epic film trailers | +| Saanvi | Crisp, articulate Indian female voice, ideal for dynamic e-learning and vibrant travel vlogs | +| Sarah | Fast-talking young adult woman, with a questioning and curious tone | +| Sebastian | Intimidating, steely male voice, perfect for ruthless antagonists and strategic power struggles | +| Selene | Soft, flirtatious female voice, ideal for companion-style interactions and charming game dialogue | +| Serena | Soft, nurturing female voice, perfect for mindfulness sessions and gentle wellness podcasts | +| Shaun | Friendly, dynamic male voice great for conversations | +| Simon | Articulate, insightful male voice, perfect for corporate presentations and technical tutorials | +| Snik | Hoarse, cunning male voice, perfect for devious goblin roles and trickster-themed animations | +| Tessa | Upbeat, conversational Australian female voice, perfect for lifestyle vlogs and playful advertisements | +| Theodore | Gravelly male voice, with a time-worn quality | +| Timothy | Lively, upbeat American male voice | +| Trevor | Punchy, expressive male voice, perfect for energetic promos and fast-moving scripted event intros | +| Tristan | Deliberate, controlled male voice, ideal for documentary narration and polished voiceover campaigns | +| Tyler | Authoritative, insightful male voice, ideal for tech explainer videos and in-depth software reviews | +| Veronica | Intimidating, commanding female voice, perfect for ruthless antagonists and chilling monologues | +| Victor | Ominous, sinister male voice, ideal for dark conspiracies and enigmatic villain roles | +| Victoria | Silky, cunning British female voice, ideal for narrating intricate plots | +| Vinny | Gritty, assertive New York male voice, perfect for crime dramas and urban documentaries | +| Wendy | Posh, middle-aged British female voice | + +### Other languages + + + + + +| Voice | Description | +|-------|-------------| +| Nour | Polished female voice with a friendly tone, great for voiceover or support | +| Omar | Bright, confident male voice, great for announcements, broadcasts, and voiceovers | + + + + + +| Voice | Description | +|-------|-------------| +| Jing | Energetic, fast-paced young female | +| Xiaoyin | Youthful female voice with a gentle, sweet quality | +| Xinyi | Female with a neutral tone, perfect for narrations | +| Yichen | Calm, flat young adult male voice | + + + + + +| Voice | Description | +|-------|-------------| +| Erik | Older male voice with a weathered edge | +| Katrien | Female with an expressive voice | +| Lennart | Confident male voice, calm and relaxed | +| Lore | Clear, calm female voice, great for narrations and professional use cases | + + + + + +| Voice | Description | +|-------|-------------| +| Alain | Deep, smooth middle-aged male voice, composed and calm | +| Étienne | Calm young adult male | +| Hélène | Middle-aged female, with a smooth, musical, and graceful voice | +| Mathieu | Male voice carrying a nasal quality | + + + + + +| Voice | Description | +|-------|-------------| +| Johanna | Calm older female with a low, smoky voice | +| Josef | Articulate male voice with an announcer-like quality | + + + + + +| Voice | Description | +|-------|-------------| +| Oren | Steady male voice, great for podcasts, voiceovers, or announcers | +| Yael | Mid-range female voice, suitable for narrations and storytelling | + + + + + +| Voice | Description | +|-------|-------------| +| Manoj | Clear, professional male voice, great for narrations, news anchors, and customer service | +| Riya | Professional and clean female voice, clear and articulate with a polished, approachable quality | + + + + + +| Voice | Description | +|-------|-------------| +| Gianni | Deep, smooth male voice that speaks rapidly | +| Orietta | Calm adult female voice, with a soothing cadence | + + + + + +| Voice | Description | +|-------|-------------| +| Asuka | Friendly, young adult female voice | +| Satoshi | Dramatic, expressive male voice filled with energy | + + + + + +| Voice | Description | +|-------|-------------| +| Hyunwoo | Young adult male voice | +| Minji | Energetic, friendly young female voice | +| Seojun | Clear, deep mature male voice | +| Yoona | Female with a gentle, soothing voice | + + + + + +| Voice | Description | +|-------|-------------| +| Szymon | Adult male voice with a warm, friendly quality | +| Wojciech | Middle-aged male voice | + + + + + +| Voice | Description | +|-------|-------------| +| Heitor | Composed male voice with a neutral tone | +| Maitê | Middle-aged female voice | + + + + + +| Voice | Description | +|-------|-------------| +| Dmitry | Deep, gravelly male voice, delivered at a moderate pace with a commanding and narrative tone | +| Elena | Clear, mid-range female voice, with a smooth texture and a neutral, informational tone | +| Nikolai | Deep, resonant male voice, delivered at a measured pace with a clear, theatrical quality | +| Svetlana | Soft, high-pitched female voice, with a moderate pace and slightly breathy quality | + + + + + +| Voice | Description | +|-------|-------------| +| Diego | Male voice with a soothing, gentle quality | +| Lupita | Vibrant, energetic young female voice | +| Miguel | Calm adult male voice, perfect for storytelling | +| Rafael | Middle-aged male with a deep, composed voice, great for narrations | + + + + + +## Languages + +Inworld supports the following languages: + +| Language | Code | +| :------- | :--- | +| English | `en` | +| Arabic | `ar` | +| Chinese (Mandarin) | `zh` | +| Dutch | `nl` | +| French | `fr` | +| German | `de` | +| Hebrew | `he` | +| Hindi | `hi` | +| Italian | `it` | +| Japanese | `ja` | +| Korean | `ko` | +| Polish | `pl` | +| Portuguese | `pt` | +| Russian | `ru` | +| Spanish | `es` | + +Refer to the [Inworld TTS docs](https://docs.inworld.ai/tts/tts) +for the most up-to-date reference to supported languages and voices. + +## Usage + +A voice identifier string has three parts: the `inworld` engine code, a voice ID, and an optional model. + +**Format**: `inworld.:` + +- `voiceId` (required): the voice's name from the [Voices](#voices) tables (for example, `Lauren`). +- `model` (optional): one of the [models](#models) above. If you omit it, a default model is used. + +**Examples**: +```text +inworld.Lauren:inworld-tts-1.5-mini +inworld.Brian:inworld-tts-1.5-max +inworld.Asuka:inworld-tts-1.5-mini +``` + +You can also set the model with the separate +[`model`](/docs/swml/reference/ai/languages#use-voice-strings) +parameter of the [`languages`](/docs/swml/reference/ai/languages) SWML method +instead of appending `:model` to the voice string: + +```yaml +languages: +- name: English + code: en-US + voice: inworld.Lauren + model: inworld-tts-1.5-mini +``` + +### Voice parameters + +Inworld supports two optional, engine-specific parameters that fine-tune how a voice sounds. +Set them in the [`languages[].params`](/docs/swml/reference/ai/languages#paramsspeakingrate) +object: + +| Parameter | Type | Range | Default | Description | +|-----------|------|-------|---------|-------------| +| `speakingRate` | number | `0.5`–`1.5` | `1.0` | How quickly the voice speaks. Below `1.0` slows it down; above `1.0` speeds it up. | +| `temperature` | number | `0.0`–`2.0` | `1.0` | How much the delivery varies. Lower values are more consistent and predictable; higher values are more expressive. | + +```yaml +languages: +- name: English + code: en-US + voice: inworld.Lauren:inworld-tts-1.5-mini + params: + speakingRate: 1.1 + temperature: 0.8 +``` + +--- + +## Build with Inworld on SignalWire + + + +### Create a Space and add credit + +If you don't have one yet, you'll need to +[create a SignalWire Space](/docs/platform/signing-up-for-a-space). +Be sure to add some credit to test with. + +### Add a new Resource + + + +### Create a SWML Script + +From the Resources menu, select **SWML Script**. +Name it something fun and recognizable. +Ours is titled Inworld Wizard. + +Next, paste the following starter script into the text box, and hit Save: + +```yaml +version: 1.0.0 +sections: + main: + - ai: + prompt: + text: | + You're Lauren, a voice from Inworld's TTS engine! + Introduce yourself, and have a conversation about programmable unified communications on the SignalWire platform. + languages: + - name: English + code: en-US + voice: inworld.Lauren:inworld-tts-1.5-mini +``` + +### Buy and assign a phone number + +Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. + +Purchase a phone number and assign it to the desired SWML script. + + + ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + +### Give it a call! + +Call the number you just assigned to chat with your new AI voice application on the phone. + + + +## Next steps with SWML + +Now you've deployed your very first SignalWire voice AI application using Inworld voices. +Next, dive deeper into SWML to explore its capabilities! + + + + Documentation for all SWML methods + + + Build advanced AI applications using SignalWire Markup Language + + + SWML guides and demo applications + + diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx new file mode 100644 index 0000000000..5232df8e43 --- /dev/null +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -0,0 +1,697 @@ +--- +title: The MiniMax TTS engine +subtitle: Text-to-speech +slug: /voice/tts/minimax +description: Learn how to use MiniMax's expressive, multilingual TTS voices with SignalWire AI Voice applications. +max-toc-depth: 3 +--- + + +MiniMax is a text-to-speech engine offering expressive voices across many languages, with controls +for emotion, speed, pitch, and volume. +Use it to give a voice to your [AI agents](/docs/swml/reference/ai) or to read text aloud with the +[`play`](/docs/swml/reference/play) method. + +## Models + +MiniMax offers several models. Pick a `turbo` model for speed and cost, or an `hd` model for the +highest quality. If you don't specify a model, `speech-2.6-turbo` is used. + +| Model | Description | +|-------|-------------| +| `speech-2.6-turbo` | **Default.** Latest turbo model: faster and lower-cost | +| `speech-2.6-hd` | Latest HD model: higher quality | +| `speech-02-turbo` | Previous-generation turbo model | +| `speech-02-hd` | Previous-generation HD model | +| `speech-01-turbo` | First-generation turbo model | +| `speech-01-hd` | First-generation HD model | + +## Voices + +Browse the available voices below. +A voice's **Voice ID** is what you put in the [voice string](#usage): for example, +`English_CalmWoman` becomes `minimax.English_CalmWoman`. + + +Some voice IDs contain spaces or parentheses (for example, `Cantonese_ProfessionalHost (F)`). +Wrap the whole voice string in quotes when a voice ID isn't a plain word, for example +`voice: "minimax.Cantonese_ProfessionalHost (F):speech-2.6-turbo"`. + + +### English + +| Voice ID | Voice Name | Gender | +|---|---|---| +| English_AnimeCharacter | Female Narrator | F | +| English_AssertiveQueen | Assertive Queen | F | +| English_Aussie_Bloke | Aussie Bloke | M | +| English_BossyLeader | Bossy Leader | F | +| English_CalmWoman | Calm Woman | F | +| English_CaptivatingStoryteller | Captivating Storyteller | M | +| English_Comedian | Comedian | M | +| English_ConfidentWoman | Confident Woman | F | +| English_Debator | Male Debater | M | +| English_DecentYoungMan | Decent Young Man | M | +| English_Deep-VoicedGentleman | Deep-voiced Gentleman | M | +| English_Diligent_Man | Diligent Man | M | +| English_FriendlyPerson | Friendly Guy | M | +| English_Gentle-voiced_man | Gentle-voiced Man | M | +| English_Graceful_Lady | Graceful Lady | F | +| English_ImposingManner | Imposing Queen | F | +| English_Jovialman | Jovial Man | M | +| English_Kind-heartedGirl | Kind-Hearted Girl | F | +| English_LovelyGirl | Lovely Girl | F | +| English_ManWithDeepVoice | Man With Deep Voice | M | +| English_MatureBoss | Bossy Lady | F | +| English_MaturePartner | Mature Partner | M | +| English_PatientMan | Patient Man | M | +| English_PlayfulGirl | Playful Girl | F | +| English_ReservedYoungMan | Reserved Young Man | M | +| English_SadTeen | Teen Boy | M | +| English_SentimentalLady | Sentimental Lady | F | +| English_SereneWoman | Serene Woman | F | +| English_Soft-spokenGirl | Soft-Spoken Girl | F | +| English_Steadymentor | Reliable Man | M | +| English_Strong-WilledBoy | Strong-Willed Boy | M | +| English_StressedLady | Stressed Lady | F | +| English_Trustworth_Man | Trustworthy Man | M | +| English_Upbeat_Woman | Upbeat Woman | F | +| English_UpsetGirl | Upset Girl | F | +| English_Whispering_girl | Whispering Girl | F | +| English_WhimsicalGirl | Whimsical Girl | F | +| English_WiseScholar | Wise Scholar | M | +| English_Wiselady | Wise Lady | F | +| English_captivating_female1 | Captivating Female | F | +| English_compelling_lady1 | Compelling Lady | F | +| English_expressive_narrator | Expressive Narrator | M | +| English_magnetic_voiced_man | Magnetic-voiced Male | M | +| English_PassionateWarrior | Passionate Warrior | M | +| English_radiant_girl | Radiant Girl | F | + +### Other languages + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Arabic_CalmWoman | Calm Woman | F | +| Arabic_FriendlyGuy | Friendly Guy | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Cantonese_CuteGirl | Cute Girl | F | +| Cantonese_GentleLady | Gentle Lady | F | +| Cantonese_KindWoman | Kind Woman | F | +| Cantonese_PlayfulMan | Playful Man | M | +| Cantonese_ProfessionalHost (F) | Professional Female Host | F | +| Cantonese_ProfessionalHost (M) | Professional Male Host | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Arrogant_Miss | Arrogant Miss | F | +| Chinese (Mandarin)_BashfulGirl | Bashful Girl | F | +| Chinese (Mandarin)_Crisp_Girl | Crisp Girl | F | +| Chinese (Mandarin)_Cute_Spirit | Cute Spirit | F | +| Chinese (Mandarin)_ExplorativeGirl | Explorative Girl | F | +| Chinese (Mandarin)_Gentleman | Gentleman | M | +| Chinese (Mandarin)_Gentle_Senior | Gentle Senior | M | +| Chinese (Mandarin)_Gentle_Youth | Gentle Youth | M | +| Chinese (Mandarin)_HK_Flight_Attendant | HK Flight Attendant | F | +| Chinese (Mandarin)_Humorous_Elder | Humorous Elder | M | +| Chinese (Mandarin)_IntellectualGirl | Intellectual Girl | F | +| Chinese (Mandarin)_Kind-hearted_Antie | Kind-hearted Antie | F | +| Chinese (Mandarin)_Kind-hearted_Elder | Kind-hearted Elder | M | +| Chinese (Mandarin)_Laid_BackGirl | Laid-back Girl | F | +| Chinese (Mandarin)_Lyrical_Voice | Lyrical Voice | F | +| Chinese (Mandarin)_Male_Announcer | Male Announcer | M | +| Chinese (Mandarin)_Mature_Woman | Mature Woman | F | +| Chinese (Mandarin)_News_Anchor | News Anchor | F | +| Chinese (Mandarin)_Pure-hearted_Boy | Pure-hearted Boy | M | +| Chinese (Mandarin)_Radio_Host | Radio Host | M | +| Chinese (Mandarin)_Reliable_Executive | Reliable Executive | M | +| Chinese (Mandarin)_Sincere_Adult | Sincere Adult | M | +| Chinese (Mandarin)_Soft_Girl | Soft Girl | F | +| Chinese (Mandarin)_Southern_Young_Man | Southern Young Man | M | +| Chinese (Mandarin)_Straightforward_Boy | Straightforward Boy | M | +| Chinese (Mandarin)_Stubborn_Friend | Stubborn Friend | M | +| Chinese (Mandarin)_Sweet_Lady | Sweet Lady | F | +| Chinese (Mandarin)_Unrestrained_Young_Man | Unrestrained Young Man | M | +| Chinese (Mandarin)_Warm_Bestie | Warm Bestie | F | +| Chinese (Mandarin)_Warm_Girl | Warm Girl | F | +| Chinese (Mandarin)_Warm_HeartedGirl | Warm-hearted Girl | F | +| Chinese (Mandarin)_Warm-HeartedAunt | Warm-hearted Aunt | F | +| Chinese (Mandarin)_Wise_Women | Wise Women | F | +| Robot_Armor | Robot Armor | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| czech_female_2_v2 | Elegant Lady | F | +| czech_female_5_v7 | Steadfast Narrator | F | +| czech_male_1_v1 | Assured Presenter | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Dutch_bossy_leader | Bossy Leader | M | +| Dutch_kindhearted_girl | Kind-hearted Girl | F | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| finnish_female_4_v1 | Assertive Woman | F | +| finnish_male_1_v2 | Friendly Boy | M | +| finnish_male_3_v1 | Upbeat Man | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| French_CasualMan | Casual Man | M | +| French_FemaleAnchor | Female Anchor | F | +| French_Female_News Anchor | Patient Female Presenter | F | +| French_Male_Speech_New | Level-Headed Man | M | +| French_MaleNarrator | Male Narrator | M | +| French_MovieLeadFemale | Movie Lead Female | F | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| German_FriendlyMan | Friendly Man | M | +| German_PlayfulMan | Playful Man | M | +| German_SweetLady | Sweet Lady | F | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Greek_female_1_sample1 | Gentle Lady | F | +| Greek_female_2_sample3 | Girl Next Door | F | +| greek_male_1a_v1 | Thoughtful Mentor | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| hindi_female_1_v2 | News Anchor | F | +| hindi_female_2_v1 | Tranquil Woman | F | +| hindi_male_1_v2 | Trustworthy Advisor | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Indonesian_BossyLeader | Bossy Leader | F | +| Indonesian_CalmWoman | Calm Woman | F | +| Indonesian_CaringMan | Caring Man | M | +| Indonesian_CharmingGirl | Charming Girl | F | +| Indonesian_ConfidentWoman | Confident Woman | F | +| Indonesian_DeterminedBoy | Determined Boy | M | +| Indonesian_GentleGirl | Gentle Girl | F | +| Indonesian_ReservedYoungMan | Reserved Young Man | M | +| Indonesian_SweetGirl | Sweet Girl | F | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Italian_BraveHeroine | Brave Heroine | F | +| Italian_DiligentLeader | Diligent Leader | M | +| Italian_Narrator | Narrator | M | +| Italian_WanderingSorcerer | Wandering Sorcerer | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Japanese_CalmLady | Calm Lady | F | +| Japanese_ColdQueen | Cold Queen | F | +| Japanese_DecisivePrincess | Decisive Princess | F | +| Japanese_DependableWoman | Dependable Woman | F | +| Japanese_DominantMan | Dominant Man | M | +| Japanese_GenerousIzakayaOwner | Generous Izakaya Owner | M | +| Japanese_GentleButler | Gentle Butler | M | +| Japanese_GracefulMaiden | Graceful Maiden | F | +| Japanese_InnocentBoy | Innocent Boy | M | +| Japanese_IntellectualSenior | Intellectual Senior | M | +| Japanese_KindLady | Kind Lady | F | +| Japanese_LoyalKnight | Loyal Knight | M | +| Japanese_OptimisticYouth | Optimistic Youth | M | +| Japanese_SeriousCommander | Serious Commander | M | +| Japanese_SportyStudent | Sporty Student | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Korean_AirheadedGirl | Airheaded Girl | F | +| Korean_AthleticGirl | Athletic Girl | F | +| Korean_AthleticStudent | Athletic Student | M | +| Korean_BraveAdventurer | Brave Adventurer | M | +| Korean_BraveFemaleWarrior | Brave Female Warrior | F | +| Korean_BraveYouth | Brave Youth | M | +| Korean_CalmGentleman | Calm Gentleman | M | +| Korean_CalmLady | Calm Lady | F | +| Korean_CaringWoman | Caring Woman | F | +| Korean_CharmingElderSister | Charming Elder Sister | F | +| Korean_CharmingSister | Charming Sister | F | +| Korean_CheerfulBoyfriend | Cheerful Boyfriend | M | +| Korean_CheerfulCoolJunior | Cheerful Cool Junior | M | +| Korean_CheerfulLittleSister | Cheerful Little Sister | F | +| Korean_ChildhoodFriendGirl | Childhood Friend Girl | F | +| Korean_CockyGuy | Cocky Guy | M | +| Korean_ColdGirl | Cold Girl | F | +| Korean_ColdYoungMan | Cold Young Man | M | +| Korean_ConfidentBoss | Confident Boss | M | +| Korean_ConsiderateSenior | Considerate Senior | M | +| Korean_DecisiveQueen | Decisive Queen | F | +| Korean_DominantMan | Dominant Man | M | +| Korean_ElegantPrincess | Elegant Princess | F | +| Korean_EnchantingSister | Enchanting Sister | F | +| Korean_EnthusiasticTeen | Enthusiastic Teen | F | +| Korean_FriendlyBigSister | Friendly Big Sister | F | +| Korean_GentleBoss | Gentle Boss | M | +| Korean_GentleWoman | Gentle Woman | F | +| Korean_HaughtyLady | Haughty Lady | F | +| Korean_InnocentBoy | Innocent Boy | M | +| Korean_IntellectualMan | Intellectual Man | M | +| Korean_IntellectualSenior | Intellectual Senior | M | +| Korean_LonelyWarrior | Lonely Warrior | M | +| Korean_MatureLady | Mature Lady | F | +| Korean_MysteriousGirl | Mysterious Girl | F | +| Korean_OptimisticYouth | Optimistic Youth | M | +| Korean_PlayboyCharmer | Playboy Charmer | M | +| Korean_PossessiveMan | Possessive Man | M | +| Korean_QuirkyGirl | Quirky Girl | F | +| Korean_ReliableSister | Reliable Sister | F | +| Korean_ReliableYouth | Reliable Youth | M | +| Korean_SassyGirl | Sassy Girl | F | +| Korean_ShyGirl | Shy Girl | F | +| Korean_SoothingLady | Soothing Lady | F | +| Korean_StrictBoss | Strict Boss | M | +| Korean_SweetGirl | Sweet Girl | F | +| Korean_ThoughtfulWoman | Thoughtful Woman | F | +| Korean_WiseElf | Wise Elf | F | +| Korean_WiseTeacher | Wise Teacher | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Polish_female_1_sample1 | Calm Woman | F | +| Polish_female_2_sample3 | Casual Woman | F | +| Polish_male_1_sample4 | Male Narrator | M | +| Polish_male_2_sample3 | Male Anchor | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Portuguese_AngryMan | Angry Man | M | +| Portuguese_AnimeCharacter | Anime Character | F | +| Portuguese_Arnold | Arnold | M | +| Portuguese_AssertiveQueen | Assertive Queen | F | +| Portuguese_AttractiveGirl | Attractive Girl | F | +| Portuguese_BossyLeader | Bossy Leader | F | +| Portuguese_CalmLeader | Calm Leader | M | +| Portuguese_CaptivatingStoryteller | Captivating Storyteller | M | +| Portuguese_CaringGirlfriend | Caring Girlfriend | F | +| Portuguese_CharmingLady | Charming Lady | F | +| Portuguese_CharmingQueen | Charming Queen | F | +| Portuguese_CharmingSanta | Charming Santa | M | +| Portuguese_ChattyGirl | Chatty Girl | F | +| Portuguese_Comedian | Comedian | M | +| Portuguese_CompellingGirl | Compelling Girl | F | +| Portuguese_ConfidentWoman | Confident Woman | F | +| Portuguese_Conscientiousinstructor | Conscientious Instructor | M | +| Portuguese_Debator | Debator | M | +| Portuguese_Deep-VoicedGentleman | Deep-voiced Gentleman | M | +| Portuguese_DeterminedManager | Determined Manager | M | +| Portuguese_Dramatist | Dramatist | M | +| Portuguese_ElegantGirl | Elegant Girl | F | +| Portuguese_EnergeticBoy | Energetic Boy | M | +| Portuguese_FascinatingBoy | Fascinating Boy | M | +| Portuguese_FragileBoy | Fragile Boy | M | +| Portuguese_FrankLady | Frank Lady | F | +| Portuguese_FriendlyNeighbor | Friendly Neighbor | M | +| Portuguese_Fussyhostess | Fussy Hostess | F | +| Portuguese_GentleTeacher | Gentle Teacher | M | +| Portuguese_Ghost | Ghost | M | +| Portuguese_Godfather | Godfather | M | +| Portuguese_GorgeousLady | Gorgeous Lady | F | +| Portuguese_GrimReaper | Grim Reaper | M | +| Portuguese_Grinch | Grinch | M | +| Portuguese_HumorousElder | Humorous Elder | M | +| Portuguese_InspiringLady | Inspiring Lady | F | +| Portuguese_Jovialman | Jovial Man | M | +| Portuguese_Kind-heartedGirl | Kind-hearted Girl | F | +| Portuguese_LovelyLady | Lovely Lady | F | +| Portuguese_MaturePartner | Mature Partner | M | +| Portuguese_Narrator | Narrator | M | +| Portuguese_NaughtySchoolgirl | Naughty Schoolgirl | F | +| Portuguese_PassionateWarrior | Passionate Warrior | M | +| Portuguese_PlayfulGirl | Playful Girl | F | +| Portuguese_PlayfulSpirit | Playful Spirit | F | +| Portuguese_Pompouslady | Pompous Lady | F | +| Portuguese_PowerfulSoldier | Powerful Soldier | M | +| Portuguese_PowerfulVeteran | Powerful Veteran | M | +| Portuguese_RationalMan | Rational Man | M | +| Portuguese_ReliableMan | Reliable Man | M | +| Portuguese_ReservedYoungMan | Reserved Young Man | M | +| Portuguese_RomanticHusband | Romantic Husband | M | +| Portuguese_Rudolph | Rudolph | M | +| Portuguese_SadTeen | Sad Teen | M | +| Portuguese_SantaClaus | Santa Claus | M | +| Portuguese_SensibleManager | Sensible Manager | M | +| Portuguese_SentimentalLady | Sentimental Lady | F | +| Portuguese_SereneElder | Serene Elder | M | +| Portuguese_SereneWoman | Serene Woman | F | +| Portuguese_SmartYoungGirl | Smart Young Girl | F | +| Portuguese_Steadymentor | Steady Mentor | M | +| Portuguese_StressedLady | Stressed Lady | F | +| Portuguese_StrictBoss | Strict Boss | M | +| Portuguese_Strong-WilledBoy | Strong-willed Boy | M | +| Portuguese_SweetGirl | Sweet Girl | F | +| Portuguese_TheatricalActor | Theatrical Actor | M | +| Portuguese_ThoughtfulLady | Thoughtful Lady | F | +| Portuguese_ThoughtfulMan | Thoughtful Man | M | +| Portuguese_ToughBoss | Tough Boss | M | +| Portuguese_UpsetGirl | Upset Girl | F | +| Portuguese_WhimsicalGirl | Whimsical Girl | F | +| Portuguese_Wiselady | Wise Lady | F | +| Portuguese_WiseScholar | Wise Scholar | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Romanian_female_1_sample4 | Optimistic Youth | F | +| Romanian_female_2_sample1 | Gentle Woman | F | +| Romanian_male_1_sample2 | Reliable Man | M | +| Romanian_male_2_sample1 | Energetic Youth | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Russian_AmbitiousWoman | Ambitious Woman | F | +| Russian_AttractiveGuy | Attractive Guy | M | +| Russian_Bad-temperedBoy | Bad-tempered Boy | M | +| Russian_BrightHeroine | Bright Queen | F | +| Russian_CrazyQueen | Crazy Girl | F | +| Russian_HandsomeChildhoodFriend | Handsome Childhood Friend | M | +| Russian_PessimisticGirl | Pessimistic Girl | F | +| Russian_ReliableMan | Reliable Man | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Spanish_AngryMan | Angry Man | M | +| Spanish_AnimeCharacter | Anime Character | F | +| Spanish_Arnold | Arnold | M | +| Spanish_AssertiveQueen | Assertive Queen | F | +| Spanish_BossyLeader | Bossy Leader | F | +| Spanish_CaptivatingStoryteller | Captivating Storyteller | M | +| Spanish_CaringGirlfriend | Caring Girlfriend | F | +| Spanish_ChattyGirl | Chatty Girl | F | +| Spanish_Comedian | Comedian | M | +| Spanish_CompellingGirl | Compelling Girl | F | +| Spanish_Debator | Debator | M | +| Spanish_Deep-tonedMan | Deep-toned Man | M | +| Spanish_DeterminedManager | Determined Manager | M | +| Spanish_EnergeticBoy | Energetic Boy | M | +| Spanish_FrankLady | Frank Lady | F | +| Spanish_Fussyhostess | Fussy Hostess | F | +| Spanish_Ghost | Ghost | M | +| Spanish_HumorousElder | Humorous Elder | M | +| Spanish_Intonategirl | Intonate Girl | F | +| Spanish_Jovialman | Jovial Man | M | +| Spanish_Kind-heartedGirl | Kind-hearted Girl | F | +| Spanish_Narrator | Narrator | M | +| Spanish_PassionateWarrior | Passionate Warrior | M | +| Spanish_PowerfulSoldier | Powerful Soldier | M | +| Spanish_PowerfulVeteran | Powerful Veteran | M | +| Spanish_RationalMan | Rational Man | M | +| Spanish_ReliableMan | Reliable Man | M | +| Spanish_ReservedYoungMan | Reserved Young Man | M | +| Spanish_RomanticHusband | Romantic Husband | M | +| Spanish_Rudolph | Rudolph | M | +| Spanish_SantaClaus | Santa Claus | M | +| Spanish_SensibleManager | Sensible Manager | M | +| Spanish_SereneElder | Serene Elder | M | +| Spanish_SereneWoman | Serene Woman | F | +| Spanish_SincereTeen | Sincere Teen | M | +| Spanish_SophisticatedLady | Sophisticated Lady | F | +| Spanish_Steadymentor | Steady Mentor | M | +| Spanish_StrictBoss | Strict Boss | M | +| Spanish_Strong-WilledBoy | Strong-willed Boy | M | +| Spanish_ThoughtfulLady | Thoughtful Lady | F | +| Spanish_ThoughtfulMan | Thoughtful Man | M | +| Spanish_ToughBoss | Tough Boss | M | +| Spanish_Wiselady | Wise Lady | F | +| Spanish_WiseScholar | Wise Scholar | M | +| Spanish_WhimsicalGirl | Whimsical Girl | F | +| Spanish_ConfidentWoman | Confident Woman | F | +| Spanish_MaturePartner | Mature Partner | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Thai_female_1_sample1 | Confident Woman | F | +| Thai_female_2_sample2 | Energetic Woman | F | +| Thai_male_1_sample8 | Serene Man | M | +| Thai_male_2_sample2 | Friendly Man | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Turkish_CalmWoman | Calm Woman | F | +| Turkish_Trustworthyman | Trustworthy Man | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Ukrainian_CalmWoman | Calm Woman | F | +| Ukrainian_WiseScholar | Wise Scholar | M | + + + + + +| Voice ID | Voice Name | Gender | +|---|---|---| +| Vietnamese_kindhearted_girl | Kind-hearted Girl | F | + + + + + +## Languages + +MiniMax supports the following languages and automatically detects the language of your text: + +Arabic, Cantonese, Chinese — Mandarin, Czech, Dutch, English, Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Romanian, Russian, Spanish, Thai, Turkish, Ukrainian, Vietnamese. + +Refer to the [MiniMax developer platform](https://platform.minimax.io/) +for the most up-to-date reference to supported languages and voices. + +## Usage + +A voice identifier string has three parts: the `minimax` engine code, a voice ID, and an optional model. + +**Format**: `minimax.:` + +- `voiceId` (required): the Voice ID from the [Voices](#voices) tables (for example, `English_CalmWoman`). +- `model` (optional): one of the [models](#models) above. Defaults to `speech-2.6-turbo`. + +**Examples**: +```text +minimax.English_CalmWoman:speech-2.6-turbo +minimax.English_Trustworth_Man:speech-2.6-hd +minimax.Japanese_KindLady:speech-2.6-turbo +``` + +You can also set the model with the separate +[`model`](/docs/swml/reference/ai/languages#use-voice-strings) +parameter of the [`languages`](/docs/swml/reference/ai/languages) SWML method +instead of appending `:model` to the voice string: + +```yaml +languages: +- name: English + code: en-US + voice: minimax.English_CalmWoman + model: speech-2.6-turbo +``` + +### Voice parameters + +MiniMax supports several optional, engine-specific parameters that fine-tune how a voice sounds. +Set them in the [`languages[].params`](/docs/swml/reference/ai/languages#paramsspeed) object: + +| Parameter | Type | Range | Default | Description | +|-----------|------|-------|---------|-------------| +| `speed` | number | `0.5`–`2.0` | `1.0` | How quickly the voice speaks. Below `1.0` slows it down; above `1.0` speeds it up. | +| `vol` | number | `0.1`–`1.0` | `1.0` | Speaking volume. Lower values are quieter. | +| `pitch` | integer | `-12`–`12` | `0` | Pitch shift in semitones. Negative lowers the pitch; positive raises it. | +| `emotion` | string | See below | *(none)* | A fixed emotional tone for the voice. | + +Valid `emotion` values are `happy`, `sad`, `angry`, `fearful`, `disgusted`, `surprised`, and `neutral`. + +```yaml +languages: +- name: English + code: en-US + voice: minimax.English_CalmWoman:speech-2.6-turbo + params: + speed: 1.1 + vol: 0.9 + pitch: 0 + emotion: happy +``` + + +To let the AI agent vary the emotion automatically based on the conversation, set +[`languages[].emotion`](/docs/swml/reference/ai/languages#languagesemotion) to `auto` instead of +setting a fixed `params.emotion`. + + +--- + +## Build with MiniMax on SignalWire + + + +### Create a Space and add credit + +If you don't have one yet, you'll need to +[create a SignalWire Space](/docs/platform/signing-up-for-a-space). +Be sure to add some credit to test with. + +### Add a new Resource + + + +### Create a SWML Script + +From the Resources menu, select **SWML Script**. +Name it something fun and recognizable. +Ours is titled MiniMax Wizard. + +Next, paste the following starter script into the text box, and hit Save: + +```yaml +version: 1.0.0 +sections: + main: + - ai: + prompt: + text: | + You're the Calm Woman, a voice from MiniMax's TTS engine! + Introduce yourself, and have a conversation about programmable unified communications on the SignalWire platform. + languages: + - name: English + code: en-US + voice: minimax.English_CalmWoman:speech-2.6-turbo +``` + +### Buy and assign a phone number + +Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu. + +Purchase a phone number and assign it to the desired SWML script. + + + ![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp) + + +### Give it a call! + +Call the number you just assigned to chat with your new AI voice application on the phone. + + + +## Next steps with SWML + +Now you've deployed your very first SignalWire voice AI application using MiniMax voices. +Next, dive deeper into SWML to explore its capabilities! + + + + Documentation for all SWML methods + + + Build advanced AI applications using SignalWire Markup Language + + + SWML guides and demo applications + + diff --git a/fern/products/swml/pages/reference/methods/calling/ai/languages/index.mdx b/fern/products/swml/pages/reference/methods/calling/ai/languages/index.mdx index 9f009d7478..ef99bc81e7 100644 --- a/fern/products/swml/pages/reference/methods/calling/ai/languages/index.mdx +++ b/fern/products/swml/pages/reference/methods/calling/ai/languages/index.mdx @@ -35,15 +35,15 @@ Use `ai.languages` to configure the spoken language of your AI Agent, as well as String format: `.`. -Select engine from `gcloud`, `polly`, `elevenlabs`, or `deepgram`. Select voice from [TTS provider reference][tts-providers]. +Select engine from `gcloud`, `polly`, `elevenlabs`, `deepgram`, `cartesia`, `rime`, `inworld`, or `minimax`. Select voice from [TTS provider reference][tts-providers]. For example, `"gcloud.fr-FR-Neural2-B"`. See [`voice` usage](#use-voice-strings) for more details. - Enables emotion for the set TTS engine. This allows the AI to express emotions when speaking. A global emotion or specific emotions for certain topics can be set within the prompt of the AI. + Enables automatic emotion for the set TTS engine. This allows the AI to express emotions when speaking. A global emotion or specific emotions for certain topics can be set within the prompt of the AI. *Valid values:* `auto` -Only works with `Cartesia` TTS engine. +Only works with the `Cartesia` and `MiniMax` TTS engines. For a fixed MiniMax emotion, use [`params.emotion`](#paramsemotion) instead. @@ -88,6 +88,58 @@ See [`voice` usage](#use-voice-strings) for more details. Only works with the ElevenLabs TTS engine. + + + Adjusts how quickly the voice speaks. + Values below `1.0` slow the voice down; values above `1.0` speed it up. + Valid values range from `0.5` to `1.5`. + + Only works with the Inworld TTS engine. + + + + + Controls the randomness and expressiveness of the generated speech. + Lower values produce a more consistent, predictable delivery; higher values introduce more variation. + Valid values range from `0.0` to `2.0`. + + Only works with the Inworld TTS engine. + + + + + How quickly the voice speaks. + Values below `1.0` slow the voice down; values above `1.0` speed it up. + Valid values range from `0.5` to `2.0`. + + Only works with the MiniMax TTS engine. + + + + + The speaking volume. Lower values are quieter. + Valid values range from `0.1` to `1.0`. + + Only works with the MiniMax TTS engine. + + + + + The pitch shift in semitones. Negative values lower the pitch; positive values raise it. + Valid values range from `-12` to `12`. + + Only works with the MiniMax TTS engine. + + + + + A fixed emotional tone for the generated speech. + Valid values are `happy`, `sad`, `angry`, `fearful`, `disgusted`, `surprised`, and `neutral`. + To vary the emotion automatically during a conversation, use [`languages[].emotion`](#languagesemotion) set to `auto` instead. + + Only works with the MiniMax TTS engine. + + @@ -105,7 +157,7 @@ See [`voice` usage](#use-voice-strings) for more details. Compose the `voice` string using the `.` syntax. -First, select your engine using the `gcloud`, `polly`, `elevenlabs`, or `deepgram` identifier. +First, select your engine using the `gcloud`, `polly`, `elevenlabs`, `deepgram`, `cartesia`, `rime`, `inworld`, or `minimax` identifier. Append a period (`.`), and then the specific voice ID (for example, `en-US-Casual-K`) from the TTS provider. Refer to SignalWire's [Supported Voices and Languages][tts-providers] for guides on configuring voice ID strings for each provider. diff --git a/specs/swml/calling/Methods/ai/ai_languages.tsp b/specs/swml/calling/Methods/ai/ai_languages.tsp index b16db7971d..a93ca5d2f9 100644 --- a/specs/swml/calling/Methods/ai/ai_languages.tsp +++ b/specs/swml/calling/Methods/ai/ai_languages.tsp @@ -21,7 +21,7 @@ model LanguagesBase { @doc(""" Voice to use for the language. String format: `.`. - Select engine from `gcloud`, `polly`, `elevenlabs`, `cartesia`, or `deepgram`. + Select engine from `gcloud`, `polly`, `elevenlabs`, `cartesia`, `deepgram`, `rime`, `inworld`, or `minimax`. For example, `gcloud.fr-FR-Neural2-B`. """) @example("gcloud.fr-FR-Neural2-B") @@ -32,9 +32,10 @@ model LanguagesBase { `model`?: string; @doc(""" - Enables emotion detection for the set TTS engine. This allows the AI to express emotions when speaking. + Enables automatic emotion detection for the set TTS engine. This allows the AI to express emotions when speaking. A global emotion or specific emotions for certain topics can be set within the prompt of the AI. - IMPORTANT: Only works with [`Cartesia`](/docs/platform/voice/tts/cartesia) TTS engine. + IMPORTANT: Only works with the [`Cartesia`](/docs/platform/voice/tts/cartesia) and [`MiniMax`](/docs/platform/voice/tts/minimax) TTS engines. + For a fixed (non-automatic) MiniMax emotion, use [`params.emotion`](#languagesparams) instead. """) @example("auto") emotion?: "auto"; @@ -67,6 +68,39 @@ model LanguageParams { @minValue(0.0) @maxValue(1.0) similarity?: float | SWMLVar = 0.75; + + @doc("Adjusts how quickly the voice speaks. Values below `1.0` slow the voice down; values above `1.0` speed it up. IMPORTANT: Only works with the Inworld TTS engine.") + @minValue(0.5) + @maxValue(1.5) + speakingRate?: float | SWMLVar = 1.0; + + @doc("Controls the randomness and expressiveness of the generated speech. Lower values produce a more consistent, predictable delivery; higher values introduce more variation. IMPORTANT: Only works with the Inworld TTS engine.") + @minValue(0.0) + @maxValue(2.0) + temperature?: float | SWMLVar = 1.0; + + @doc("How quickly the voice speaks. Values below `1.0` slow the voice down; values above `1.0` speed it up. IMPORTANT: Only works with the MiniMax TTS engine.") + @minValue(0.5) + @maxValue(2.0) + speed?: float | SWMLVar = 1.0; + + @doc("The speaking volume. Lower values are quieter. IMPORTANT: Only works with the MiniMax TTS engine.") + @minValue(0.1) + @maxValue(1.0) + vol?: float | SWMLVar = 1.0; + + @doc("The pitch shift in semitones. Negative values lower the pitch; positive values raise it. IMPORTANT: Only works with the MiniMax TTS engine.") + @minValue(-12) + @maxValue(12) + pitch?: int32 | SWMLVar = 0; + + @doc(""" + A fixed emotional tone for the generated speech. + To vary the emotion automatically during a conversation, use [`languages[].emotion`](#languagesemotion) set to `auto` instead. + IMPORTANT: Only works with the MiniMax TTS engine. + """) + @example("happy") + emotion?: "happy" | "sad" | "angry" | "fearful" | "disgusted" | "surprised" | "neutral"; } @summary("Language with Fillers (Deprecated)") diff --git a/specs/swml/calling/tsp-output/@typespec/json-schema/SWMLObject.json b/specs/swml/calling/tsp-output/@typespec/json-schema/SWMLObject.json index 6b85dc1103..316826ec74 100644 --- a/specs/swml/calling/tsp-output/@typespec/json-schema/SWMLObject.json +++ b/specs/swml/calling/tsp-output/@typespec/json-schema/SWMLObject.json @@ -7671,7 +7671,7 @@ "examples": [ "gcloud.fr-FR-Neural2-B" ], - "description": "Voice to use for the language. String format: `.`.\nSelect engine from `gcloud`, `polly`, `elevenlabs`, `cartesia`, or `deepgram`.\nFor example, `gcloud.fr-FR-Neural2-B`." + "description": "Voice to use for the language. String format: `.`.\nSelect engine from `gcloud`, `polly`, `elevenlabs`, `cartesia`, `deepgram`, `rime`, `inworld`, or `minimax`.\nFor example, `gcloud.fr-FR-Neural2-B`." }, "model": { "type": "string", @@ -7686,7 +7686,7 @@ "examples": [ "auto" ], - "description": "Enables emotion detection for the set TTS engine. This allows the AI to express emotions when speaking.\nA global emotion or specific emotions for certain topics can be set within the prompt of the AI.\nIMPORTANT: Only works with [`Cartesia`](/docs/platform/voice/tts/cartesia) TTS engine." + "description": "Enables automatic emotion detection for the set TTS engine. This allows the AI to express emotions when speaking.\nA global emotion or specific emotions for certain topics can be set within the prompt of the AI.\nIMPORTANT: Only works with the [`Cartesia`](/docs/platform/voice/tts/cartesia) and [`MiniMax`](/docs/platform/voice/tts/minimax) TTS engines.\nFor a fixed (non-automatic) MiniMax emotion, use [`params.emotion`](#languagesparams) instead." }, "speed": { "type": "string", @@ -7755,7 +7755,7 @@ "examples": [ "gcloud.fr-FR-Neural2-B" ], - "description": "Voice to use for the language. String format: `.`.\nSelect engine from `gcloud`, `polly`, `elevenlabs`, `cartesia`, or `deepgram`.\nFor example, `gcloud.fr-FR-Neural2-B`." + "description": "Voice to use for the language. String format: `.`.\nSelect engine from `gcloud`, `polly`, `elevenlabs`, `cartesia`, `deepgram`, `rime`, `inworld`, or `minimax`.\nFor example, `gcloud.fr-FR-Neural2-B`." }, "model": { "type": "string", @@ -7770,7 +7770,7 @@ "examples": [ "auto" ], - "description": "Enables emotion detection for the set TTS engine. This allows the AI to express emotions when speaking.\nA global emotion or specific emotions for certain topics can be set within the prompt of the AI.\nIMPORTANT: Only works with [`Cartesia`](/docs/platform/voice/tts/cartesia) TTS engine." + "description": "Enables automatic emotion detection for the set TTS engine. This allows the AI to express emotions when speaking.\nA global emotion or specific emotions for certain topics can be set within the prompt of the AI.\nIMPORTANT: Only works with the [`Cartesia`](/docs/platform/voice/tts/cartesia) and [`MiniMax`](/docs/platform/voice/tts/minimax) TTS engines.\nFor a fixed (non-automatic) MiniMax emotion, use [`params.emotion`](#languagesparams) instead." }, "speed": { "type": "string", @@ -9391,6 +9391,114 @@ "minimum": 0, "maximum": 1, "description": "The similarity slider dictates how closely the AI should adhere to the original voice when attempting to replicate it. The higher the similarity, the closer the AI will sound to the original voice. IMPORTANT: Only works with ElevenLabs TTS engine." + }, + "speakingRate": { + "anyOf": [ + { + "type": "number" + }, + { + "$ref": "#/$defs/SWMLVar" + } + ], + "default": 1, + "minimum": 0.5, + "maximum": 1.5, + "description": "Adjusts how quickly the voice speaks. Values below `1.0` slow the voice down; values above `1.0` speed it up. IMPORTANT: Only works with the Inworld TTS engine." + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "$ref": "#/$defs/SWMLVar" + } + ], + "default": 1, + "minimum": 0, + "maximum": 2, + "description": "Controls the randomness and expressiveness of the generated speech. Lower values produce a more consistent, predictable delivery; higher values introduce more variation. IMPORTANT: Only works with the Inworld TTS engine." + }, + "speed": { + "anyOf": [ + { + "type": "number" + }, + { + "$ref": "#/$defs/SWMLVar" + } + ], + "default": 1, + "minimum": 0.5, + "maximum": 2, + "description": "How quickly the voice speaks. Values below `1.0` slow the voice down; values above `1.0` speed it up. IMPORTANT: Only works with the MiniMax TTS engine." + }, + "vol": { + "anyOf": [ + { + "type": "number" + }, + { + "$ref": "#/$defs/SWMLVar" + } + ], + "default": 1, + "minimum": 0.1, + "maximum": 1, + "description": "The speaking volume. Lower values are quieter. IMPORTANT: Only works with the MiniMax TTS engine." + }, + "pitch": { + "anyOf": [ + { + "type": "integer", + "minimum": -2147483648, + "maximum": 2147483647 + }, + { + "$ref": "#/$defs/SWMLVar" + } + ], + "default": 0, + "minimum": -12, + "maximum": 12, + "description": "The pitch shift in semitones. Negative values lower the pitch; positive values raise it. IMPORTANT: Only works with the MiniMax TTS engine." + }, + "emotion": { + "anyOf": [ + { + "type": "string", + "const": "happy" + }, + { + "type": "string", + "const": "sad" + }, + { + "type": "string", + "const": "angry" + }, + { + "type": "string", + "const": "fearful" + }, + { + "type": "string", + "const": "disgusted" + }, + { + "type": "string", + "const": "surprised" + }, + { + "type": "string", + "const": "neutral" + } + ], + "examples": [ + "happy" + ], + "description": "A fixed emotional tone for the generated speech.\nTo vary the emotion automatically during a conversation, use [`languages[].emotion`](#languagesemotion) set to `auto` instead.\nIMPORTANT: Only works with the MiniMax TTS engine." } }, "unevaluatedProperties": { From 813d106f66deba122bf2b2a057b75baf16581ceb Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:08:36 -0400 Subject: [PATCH 02/12] docs: use plain engine name as TTS page title Change the sidebar/page title from 'The X TTS engine' to just the engine name for Inworld, MiniMax, and Rime, matching the convention used by ElevenLabs, Cartesia, Deepgram, Azure, and the other TTS provider pages. Drop the now-redundant 'Text-to-speech' subtitle. --- fern/products/platform/pages/calling/voice/TTS/inworld.mdx | 3 +-- fern/products/platform/pages/calling/voice/TTS/minimax.mdx | 3 +-- fern/products/platform/pages/calling/voice/TTS/rime.mdx | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 4a7229fdbb..93d8ee2a0a 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -1,6 +1,5 @@ --- -title: The Inworld TTS engine -subtitle: Text-to-speech +title: Inworld slug: /voice/tts/inworld description: Learn how to use Inworld's expressive, multilingual TTS models with SignalWire AI Voice applications. max-toc-depth: 3 diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index 5232df8e43..f64925bfe1 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -1,6 +1,5 @@ --- -title: The MiniMax TTS engine -subtitle: Text-to-speech +title: MiniMax slug: /voice/tts/minimax description: Learn how to use MiniMax's expressive, multilingual TTS voices with SignalWire AI Voice applications. max-toc-depth: 3 diff --git a/fern/products/platform/pages/calling/voice/TTS/rime.mdx b/fern/products/platform/pages/calling/voice/TTS/rime.mdx index 064486efc1..84238c0696 100644 --- a/fern/products/platform/pages/calling/voice/TTS/rime.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/rime.mdx @@ -1,7 +1,6 @@ --- id: a3dbb231-d452-48ca-ba30-acd8ec499349 -title: The Rime TTS engine -subtitle: Text-to-speech +title: Rime slug: /voice/tts/rime description: Learn how to use Rime's Arcana and Mist v2 TTS models with SignalWire AI Voice applications. --- From ec6fb421cd59466ca6e3521c58d37483c0c9a830 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:09:18 -0400 Subject: [PATCH 03/12] docs: drop overly-specific usage sentence from Inworld and MiniMax intros --- fern/products/platform/pages/calling/voice/TTS/inworld.mdx | 2 -- fern/products/platform/pages/calling/voice/TTS/minimax.mdx | 2 -- 2 files changed, 4 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 93d8ee2a0a..ae48ffb173 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -7,8 +7,6 @@ max-toc-depth: 3 Inworld is a text-to-speech engine offering high-quality, expressive voices across many languages. -Use it to give a voice to your [AI agents](/docs/swml/reference/ai) or to read text aloud with the -[`play`](/docs/swml/reference/play) method. ## Models diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index f64925bfe1..77515205e2 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -8,8 +8,6 @@ max-toc-depth: 3 MiniMax is a text-to-speech engine offering expressive voices across many languages, with controls for emotion, speed, pitch, and volume. -Use it to give a voice to your [AI agents](/docs/swml/reference/ai) or to read text aloud with the -[`play`](/docs/swml/reference/play) method. ## Models From 66b7c108d96506c941c9f6f071f3fc5eac35adac Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:10:11 -0400 Subject: [PATCH 04/12] docs: reword Inworld default-model note --- fern/products/platform/pages/calling/voice/TTS/inworld.mdx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index ae48ffb173..95c7368314 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -19,9 +19,8 @@ for the highest quality. | `inworld-tts-1.5-max` | Higher quality model | -If you don't choose a model, [AI agents](/docs/swml/reference/ai) use `inworld-tts-1.5-mini` and the -[`play`](/docs/swml/reference/play) method uses `inworld-tts-1.5-max`. Set a model explicitly to -override this. +Defaults to `inworld-tts-1.5-mini` when used with [AI agents](/docs/swml/reference/ai); otherwise it +defaults to `inworld-tts-1.5-max`. Set a model explicitly to override this. From 47579dd684cab5edb1bd322999348968526ff62b Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:31:56 -0400 Subject: [PATCH 05/12] docs(inworld): link out to provider voices, non-link model cards - Replace the full voice catalog with a link-out section (TTS Playground + Inworld docs), matching the Rime/other-provider pattern. - Make the model cards non-link (both previously linked to the same page). - Frame the models table as 'SignalWire supports two Inworld models' and link to Inworld's model docs for detail. --- .../pages/calling/voice/TTS/inworld.mdx | 267 ++---------------- 1 file changed, 19 insertions(+), 248 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 95c7368314..befab1df30 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -10,8 +10,9 @@ Inworld is a text-to-speech engine offering high-quality, expressive voices acro ## Models -Inworld offers two models. Pick `inworld-tts-1.5-mini` for speed and cost, or `inworld-tts-1.5-max` -for the highest quality. +SignalWire supports two Inworld models. +Pick `inworld-tts-1.5-mini` for speed and cost, or `inworld-tts-1.5-max` for the highest quality. +See [Inworld's model documentation](https://docs.inworld.ai/tts/tts-models) for more detail. | Model | Description | |-------|-------------| @@ -24,260 +25,30 @@ defaults to `inworld-tts-1.5-max`. Set a model explicitly to override this. - - The faster, lower-cost model, suited for high-volume, latency-sensitive applications. + + The faster, lower-cost model, suited for high-volume, latency-sensitive applications. - - The higher-quality model, suited for expressive, character-driven, and premium reads. + + The higher-quality model, suited for expressive, character-driven, and premium reads. ## Voices -Browse the available voices below. -A voice's **name** is its voice ID: for example, `Lauren` becomes `inworld.Lauren` in the +Inworld provides a large library of expressive voices across many languages. +A voice's name is its voice ID — for example, `Lauren` becomes `inworld.Lauren` in the [voice string](#usage). -### English +Preview the voices and find their IDs in Inworld's documentation: -| Voice | Description | -|-------|-------------| -| Abby | Bright, eager American female child voice, ideal for animated characters and upbeat educational content | -| Alex | Energetic and expressive mid-range male voice, with a mildly nasal quality | -| Amina | Warm, inviting West African female voice, ideal for community outreach and cultural storytelling | -| Anjali | Confident and articulate Indian female voice, ideal for professional training materials | -| Arjun | Clear, composed Indian male voice, well-suited for instructional webinars and technology explainers | -| Ashley | A warm, natural female voice | -| Avery | Youthful, performative male voice, suited for gameshow-style hosting and energetic presenter reads | -| Bianca | Deep, controlled female voice, ideal for serious corporate reads and composed documentary segments | -| Blake | Rich, intimate male voice, perfect for audiobooks, romantic content, and reassuring narration | -| Brandon | Bold, strident male voice, ideal for structured announcements and news-style reads | -| Brian | Friendly, encouraging American male voice, ideal for educational tutorials and motivational content | -| Callum | Casual and friendly Australian male voice, ideal for informal instructional content | -| Carter | Energetic, mature radio announcer-style male voice, great for storytelling and voiceovers | -| Cedric | Crisp, measured male voice, ideal for formal announcements and premium trailer narration | -| Celeste | Soft, whispery female voice, ideal for ASMR videos, soothing lullabies, and gentle mindfulness sessions | -| Chloe | Thoughtful, introspective youthful female voice, perfect for coming-of-age narratives | -| Claire | Warm, gentle Eastern European female voice, ideal for bedtime stories and relaxation podcasts | -| Clive | British-accented male voice with a calm, cordial quality | -| Craig | Older British male with a refined and articulate voice | -| Damon | Calm, raspy male voice, suited for moody narration and atmospheric roleplay characters | -| Deborah | Warm, peaceful female voice with a calm tone | -| Dennis | Middle-aged man with a smooth, calm and friendly voice | -| Derek | Steady, professional, composed American male voice, ideal for banking support and service calls | -| Dominus | Robotic, deep male voice with a menacing quality — perfect for villains | -| Edward | American male with an emphatic, confident and streetwise tone | -| Elizabeth | Professional middle-aged woman, perfect for narrations and voiceovers | -| Elliot | Calm, steady male voice, suitable for nature documentaries and relaxed narrations | -| Ethan | Assured, precise male voice, perfect for tech tutorials and product demonstrations | -| Evan | Friendly, approachable, easygoing male voice, ideal for onboarding calls and retail assistance | -| Evelyn | Gentle and intimate female voice, ideal for personal ASMR content and affirmations | -| Gareth | Soothing, gentle male voice, ideal for guided meditations and relaxation-focused wellness content | -| Graham | Profound, authoritative British male voice, perfect for historical documentaries and luxury brand ads | -| Grant | Calm, attentive, helpful male voice, ideal for insurance claims and helpdesk interactions | -| Hades | Commanding and gruff male voice — think omniscient narrator or castle guard | -| Hamish | Friendly and casual Australian male voice, ideal for character-driven roles and upbeat fitness | -| Hana | Bright, expressive young female voice, perfect for storytelling, gaming, and playful content | -| Hank | Warm, laid-back Southern male voice, ideal for travel documentaries and heritage storytelling | -| Jake | Amiable, introspective male voice, ideal for motivational talks and personal growth content | -| James | Vibrant, expressive male voice, perfect for animated video content and captivating children's stories | -| Jason | Lucid, engrossing male voice, ideal for tech tips and creative productivity hacks | -| Jessica | Encouraging, articulate American female voice, perfect for self-help audiobooks and e-learning | -| Jonah | Soothing, calm male voice, great for tutorial guidance and reassuring support flows | -| Julia | Quirky, high-pitched female voice that delivers lines with playful energy | -| Kayla | Enthusiastic, youthful female voice, ideal for reaction videos and trendy product reviews | -| Kelsey | Warm, empathetic, reassuring female voice, ideal for phone support and appointment confirmations | -| Lauren | Confident, friendly American female voice, ideal for corporate presentations and engaging podcasts | -| Levi | Measured, ominous male voice, ideal for suspense narration and dark fantasy storytelling | -| Liam | Upbeat, motivating Australian male voice, perfect for energizing workout sessions and event promotions | -| Loretta | Inviting, folksy Southern female voice, perfect for cooking shows and heartwarming family tales | -| Lucian | Brooding, foreboding male voice, suited for villainous character arcs and gothic drama scenes | -| Luna | Calm, relaxing female voice, perfect for meditations, sleep stories, and mindfulness exercises | -| Malcolm | Authoritative, manipulative male voice, perfect for cunning leaders and intense negotiation scenes | -| Marcus | Authoritative, empathetic male voice, great for civic campaigns and trustworthy commercial reads | -| Mark | Energetic, expressive man with a rapid-fire delivery | -| Marlene | Friendly, relaxed Southern female voice, ideal for home-style cooking tutorials and community events | -| Mia | Youthful, expressive female voice, ideal for adolescent characters and school-age animation dialogue | -| Miranda | Menacing, cold-hearted female voice, perfect for strategic villains and mysterious narratives | -| Mortimer | Gravelly, aggressive male character voice, ideal for fantasy villains and high-intensity game dialogue | -| Nadia | Personable, lively female voice, perfect for tutorial walkthroughs and friendly support messaging | -| Naomi | Warm, grounded female voice, perfect for narrative podcasting and emotionally real brand storytelling | -| Nate | Conversational, sociable male voice, great for customer support and friendly guidance | -| Oliver | Neutral and clear male voice, ideal for public announcements and educational information | -| Olivia | Young, British female with a friendly and helpful tone, conveying confidence and efficiency | -| Pippa | Friendly and casual Australian female voice, ideal for relaxed instructional content | -| Pixie | High-pitched, childlike female voice with a squeaky quality — great for cartoon characters | -| Priya | Even-toned female voice with an Indian accent | -| Riley | Playful, youthful female voice, perfect for animated storytelling and high-energy kid-focused content | -| Ronald | Confident, British man with a deep, gravelly voice | -| Rupert | Resonant, commanding British male voice, ideal for motivational speeches and epic film trailers | -| Saanvi | Crisp, articulate Indian female voice, ideal for dynamic e-learning and vibrant travel vlogs | -| Sarah | Fast-talking young adult woman, with a questioning and curious tone | -| Sebastian | Intimidating, steely male voice, perfect for ruthless antagonists and strategic power struggles | -| Selene | Soft, flirtatious female voice, ideal for companion-style interactions and charming game dialogue | -| Serena | Soft, nurturing female voice, perfect for mindfulness sessions and gentle wellness podcasts | -| Shaun | Friendly, dynamic male voice great for conversations | -| Simon | Articulate, insightful male voice, perfect for corporate presentations and technical tutorials | -| Snik | Hoarse, cunning male voice, perfect for devious goblin roles and trickster-themed animations | -| Tessa | Upbeat, conversational Australian female voice, perfect for lifestyle vlogs and playful advertisements | -| Theodore | Gravelly male voice, with a time-worn quality | -| Timothy | Lively, upbeat American male voice | -| Trevor | Punchy, expressive male voice, perfect for energetic promos and fast-moving scripted event intros | -| Tristan | Deliberate, controlled male voice, ideal for documentary narration and polished voiceover campaigns | -| Tyler | Authoritative, insightful male voice, ideal for tech explainer videos and in-depth software reviews | -| Veronica | Intimidating, commanding female voice, perfect for ruthless antagonists and chilling monologues | -| Victor | Ominous, sinister male voice, ideal for dark conspiracies and enigmatic villain roles | -| Victoria | Silky, cunning British female voice, ideal for narrating intricate plots | -| Vinny | Gritty, assertive New York male voice, perfect for crime dramas and urban documentaries | -| Wendy | Posh, middle-aged British female voice | - -### Other languages - - - - - -| Voice | Description | -|-------|-------------| -| Nour | Polished female voice with a friendly tone, great for voiceover or support | -| Omar | Bright, confident male voice, great for announcements, broadcasts, and voiceovers | - - - - - -| Voice | Description | -|-------|-------------| -| Jing | Energetic, fast-paced young female | -| Xiaoyin | Youthful female voice with a gentle, sweet quality | -| Xinyi | Female with a neutral tone, perfect for narrations | -| Yichen | Calm, flat young adult male voice | - - - - - -| Voice | Description | -|-------|-------------| -| Erik | Older male voice with a weathered edge | -| Katrien | Female with an expressive voice | -| Lennart | Confident male voice, calm and relaxed | -| Lore | Clear, calm female voice, great for narrations and professional use cases | - - - - - -| Voice | Description | -|-------|-------------| -| Alain | Deep, smooth middle-aged male voice, composed and calm | -| Étienne | Calm young adult male | -| Hélène | Middle-aged female, with a smooth, musical, and graceful voice | -| Mathieu | Male voice carrying a nasal quality | - - - - - -| Voice | Description | -|-------|-------------| -| Johanna | Calm older female with a low, smoky voice | -| Josef | Articulate male voice with an announcer-like quality | - - - - - -| Voice | Description | -|-------|-------------| -| Oren | Steady male voice, great for podcasts, voiceovers, or announcers | -| Yael | Mid-range female voice, suitable for narrations and storytelling | - - - - - -| Voice | Description | -|-------|-------------| -| Manoj | Clear, professional male voice, great for narrations, news anchors, and customer service | -| Riya | Professional and clean female voice, clear and articulate with a polished, approachable quality | - - - - - -| Voice | Description | -|-------|-------------| -| Gianni | Deep, smooth male voice that speaks rapidly | -| Orietta | Calm adult female voice, with a soothing cadence | - - - - - -| Voice | Description | -|-------|-------------| -| Asuka | Friendly, young adult female voice | -| Satoshi | Dramatic, expressive male voice filled with energy | - - - - - -| Voice | Description | -|-------|-------------| -| Hyunwoo | Young adult male voice | -| Minji | Energetic, friendly young female voice | -| Seojun | Clear, deep mature male voice | -| Yoona | Female with a gentle, soothing voice | - - - - - -| Voice | Description | -|-------|-------------| -| Szymon | Adult male voice with a warm, friendly quality | -| Wojciech | Middle-aged male voice | - - - - - -| Voice | Description | -|-------|-------------| -| Heitor | Composed male voice with a neutral tone | -| Maitê | Middle-aged female voice | - - - - - -| Voice | Description | -|-------|-------------| -| Dmitry | Deep, gravelly male voice, delivered at a moderate pace with a commanding and narrative tone | -| Elena | Clear, mid-range female voice, with a smooth texture and a neutral, informational tone | -| Nikolai | Deep, resonant male voice, delivered at a measured pace with a clear, theatrical quality | -| Svetlana | Soft, high-pitched female voice, with a moderate pace and slightly breathy quality | - - - - - -| Voice | Description | -|-------|-------------| -| Diego | Male voice with a soothing, gentle quality | -| Lupita | Vibrant, energetic young female voice | -| Miguel | Calm adult male voice, perfect for storytelling | -| Rafael | Middle-aged male with a deep, composed voice, great for narrations | - - - - + + + Preview Inworld voices and models in the browser. + + + Reference for voices, models, and languages. + + ## Languages @@ -310,7 +81,7 @@ A voice identifier string has three parts: the `inworld` engine code, a voice ID **Format**: `inworld.:` -- `voiceId` (required): the voice's name from the [Voices](#voices) tables (for example, `Lauren`). +- `voiceId` (required): an Inworld voice name (for example, `Lauren`); see [Voices](#voices). - `model` (optional): one of the [models](#models) above. If you omit it, a default model is used. **Examples**: From 0a5a46c79de52b66240916182812ef47f739a137 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:42:06 -0400 Subject: [PATCH 06/12] docs(minimax): link out to system voice list, warn on cloned voices - Replace the 332-row voice catalog with a link-out section pointing to MiniMax's System Voice ID List and TTS docs. - Add a warning that only MiniMax system voices work; cloned and AI-generated voices are not supported. --- .../pages/calling/voice/TTS/minimax.mdx | 522 +----------------- 1 file changed, 17 insertions(+), 505 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index 77515205e2..2b63a89a9c 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -25,519 +25,31 @@ highest quality. If you don't specify a model, `speech-2.6-turbo` is used. ## Voices -Browse the available voices below. +MiniMax provides a large library of system voices across many languages. A voice's **Voice ID** is what you put in the [voice string](#usage): for example, `English_CalmWoman` becomes `minimax.English_CalmWoman`. + +Only MiniMax's built-in **system voices** are supported. Cloned and AI-generated voices do not +work — you must use one of the default voice IDs that MiniMax provides. + + Some voice IDs contain spaces or parentheses (for example, `Cantonese_ProfessionalHost (F)`). Wrap the whole voice string in quotes when a voice ID isn't a plain word, for example `voice: "minimax.Cantonese_ProfessionalHost (F):speech-2.6-turbo"`. -### English - -| Voice ID | Voice Name | Gender | -|---|---|---| -| English_AnimeCharacter | Female Narrator | F | -| English_AssertiveQueen | Assertive Queen | F | -| English_Aussie_Bloke | Aussie Bloke | M | -| English_BossyLeader | Bossy Leader | F | -| English_CalmWoman | Calm Woman | F | -| English_CaptivatingStoryteller | Captivating Storyteller | M | -| English_Comedian | Comedian | M | -| English_ConfidentWoman | Confident Woman | F | -| English_Debator | Male Debater | M | -| English_DecentYoungMan | Decent Young Man | M | -| English_Deep-VoicedGentleman | Deep-voiced Gentleman | M | -| English_Diligent_Man | Diligent Man | M | -| English_FriendlyPerson | Friendly Guy | M | -| English_Gentle-voiced_man | Gentle-voiced Man | M | -| English_Graceful_Lady | Graceful Lady | F | -| English_ImposingManner | Imposing Queen | F | -| English_Jovialman | Jovial Man | M | -| English_Kind-heartedGirl | Kind-Hearted Girl | F | -| English_LovelyGirl | Lovely Girl | F | -| English_ManWithDeepVoice | Man With Deep Voice | M | -| English_MatureBoss | Bossy Lady | F | -| English_MaturePartner | Mature Partner | M | -| English_PatientMan | Patient Man | M | -| English_PlayfulGirl | Playful Girl | F | -| English_ReservedYoungMan | Reserved Young Man | M | -| English_SadTeen | Teen Boy | M | -| English_SentimentalLady | Sentimental Lady | F | -| English_SereneWoman | Serene Woman | F | -| English_Soft-spokenGirl | Soft-Spoken Girl | F | -| English_Steadymentor | Reliable Man | M | -| English_Strong-WilledBoy | Strong-Willed Boy | M | -| English_StressedLady | Stressed Lady | F | -| English_Trustworth_Man | Trustworthy Man | M | -| English_Upbeat_Woman | Upbeat Woman | F | -| English_UpsetGirl | Upset Girl | F | -| English_Whispering_girl | Whispering Girl | F | -| English_WhimsicalGirl | Whimsical Girl | F | -| English_WiseScholar | Wise Scholar | M | -| English_Wiselady | Wise Lady | F | -| English_captivating_female1 | Captivating Female | F | -| English_compelling_lady1 | Compelling Lady | F | -| English_expressive_narrator | Expressive Narrator | M | -| English_magnetic_voiced_man | Magnetic-voiced Male | M | -| English_PassionateWarrior | Passionate Warrior | M | -| English_radiant_girl | Radiant Girl | F | - -### Other languages - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Arabic_CalmWoman | Calm Woman | F | -| Arabic_FriendlyGuy | Friendly Guy | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Cantonese_CuteGirl | Cute Girl | F | -| Cantonese_GentleLady | Gentle Lady | F | -| Cantonese_KindWoman | Kind Woman | F | -| Cantonese_PlayfulMan | Playful Man | M | -| Cantonese_ProfessionalHost (F) | Professional Female Host | F | -| Cantonese_ProfessionalHost (M) | Professional Male Host | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Arrogant_Miss | Arrogant Miss | F | -| Chinese (Mandarin)_BashfulGirl | Bashful Girl | F | -| Chinese (Mandarin)_Crisp_Girl | Crisp Girl | F | -| Chinese (Mandarin)_Cute_Spirit | Cute Spirit | F | -| Chinese (Mandarin)_ExplorativeGirl | Explorative Girl | F | -| Chinese (Mandarin)_Gentleman | Gentleman | M | -| Chinese (Mandarin)_Gentle_Senior | Gentle Senior | M | -| Chinese (Mandarin)_Gentle_Youth | Gentle Youth | M | -| Chinese (Mandarin)_HK_Flight_Attendant | HK Flight Attendant | F | -| Chinese (Mandarin)_Humorous_Elder | Humorous Elder | M | -| Chinese (Mandarin)_IntellectualGirl | Intellectual Girl | F | -| Chinese (Mandarin)_Kind-hearted_Antie | Kind-hearted Antie | F | -| Chinese (Mandarin)_Kind-hearted_Elder | Kind-hearted Elder | M | -| Chinese (Mandarin)_Laid_BackGirl | Laid-back Girl | F | -| Chinese (Mandarin)_Lyrical_Voice | Lyrical Voice | F | -| Chinese (Mandarin)_Male_Announcer | Male Announcer | M | -| Chinese (Mandarin)_Mature_Woman | Mature Woman | F | -| Chinese (Mandarin)_News_Anchor | News Anchor | F | -| Chinese (Mandarin)_Pure-hearted_Boy | Pure-hearted Boy | M | -| Chinese (Mandarin)_Radio_Host | Radio Host | M | -| Chinese (Mandarin)_Reliable_Executive | Reliable Executive | M | -| Chinese (Mandarin)_Sincere_Adult | Sincere Adult | M | -| Chinese (Mandarin)_Soft_Girl | Soft Girl | F | -| Chinese (Mandarin)_Southern_Young_Man | Southern Young Man | M | -| Chinese (Mandarin)_Straightforward_Boy | Straightforward Boy | M | -| Chinese (Mandarin)_Stubborn_Friend | Stubborn Friend | M | -| Chinese (Mandarin)_Sweet_Lady | Sweet Lady | F | -| Chinese (Mandarin)_Unrestrained_Young_Man | Unrestrained Young Man | M | -| Chinese (Mandarin)_Warm_Bestie | Warm Bestie | F | -| Chinese (Mandarin)_Warm_Girl | Warm Girl | F | -| Chinese (Mandarin)_Warm_HeartedGirl | Warm-hearted Girl | F | -| Chinese (Mandarin)_Warm-HeartedAunt | Warm-hearted Aunt | F | -| Chinese (Mandarin)_Wise_Women | Wise Women | F | -| Robot_Armor | Robot Armor | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| czech_female_2_v2 | Elegant Lady | F | -| czech_female_5_v7 | Steadfast Narrator | F | -| czech_male_1_v1 | Assured Presenter | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Dutch_bossy_leader | Bossy Leader | M | -| Dutch_kindhearted_girl | Kind-hearted Girl | F | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| finnish_female_4_v1 | Assertive Woman | F | -| finnish_male_1_v2 | Friendly Boy | M | -| finnish_male_3_v1 | Upbeat Man | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| French_CasualMan | Casual Man | M | -| French_FemaleAnchor | Female Anchor | F | -| French_Female_News Anchor | Patient Female Presenter | F | -| French_Male_Speech_New | Level-Headed Man | M | -| French_MaleNarrator | Male Narrator | M | -| French_MovieLeadFemale | Movie Lead Female | F | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| German_FriendlyMan | Friendly Man | M | -| German_PlayfulMan | Playful Man | M | -| German_SweetLady | Sweet Lady | F | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Greek_female_1_sample1 | Gentle Lady | F | -| Greek_female_2_sample3 | Girl Next Door | F | -| greek_male_1a_v1 | Thoughtful Mentor | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| hindi_female_1_v2 | News Anchor | F | -| hindi_female_2_v1 | Tranquil Woman | F | -| hindi_male_1_v2 | Trustworthy Advisor | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Indonesian_BossyLeader | Bossy Leader | F | -| Indonesian_CalmWoman | Calm Woman | F | -| Indonesian_CaringMan | Caring Man | M | -| Indonesian_CharmingGirl | Charming Girl | F | -| Indonesian_ConfidentWoman | Confident Woman | F | -| Indonesian_DeterminedBoy | Determined Boy | M | -| Indonesian_GentleGirl | Gentle Girl | F | -| Indonesian_ReservedYoungMan | Reserved Young Man | M | -| Indonesian_SweetGirl | Sweet Girl | F | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Italian_BraveHeroine | Brave Heroine | F | -| Italian_DiligentLeader | Diligent Leader | M | -| Italian_Narrator | Narrator | M | -| Italian_WanderingSorcerer | Wandering Sorcerer | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Japanese_CalmLady | Calm Lady | F | -| Japanese_ColdQueen | Cold Queen | F | -| Japanese_DecisivePrincess | Decisive Princess | F | -| Japanese_DependableWoman | Dependable Woman | F | -| Japanese_DominantMan | Dominant Man | M | -| Japanese_GenerousIzakayaOwner | Generous Izakaya Owner | M | -| Japanese_GentleButler | Gentle Butler | M | -| Japanese_GracefulMaiden | Graceful Maiden | F | -| Japanese_InnocentBoy | Innocent Boy | M | -| Japanese_IntellectualSenior | Intellectual Senior | M | -| Japanese_KindLady | Kind Lady | F | -| Japanese_LoyalKnight | Loyal Knight | M | -| Japanese_OptimisticYouth | Optimistic Youth | M | -| Japanese_SeriousCommander | Serious Commander | M | -| Japanese_SportyStudent | Sporty Student | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Korean_AirheadedGirl | Airheaded Girl | F | -| Korean_AthleticGirl | Athletic Girl | F | -| Korean_AthleticStudent | Athletic Student | M | -| Korean_BraveAdventurer | Brave Adventurer | M | -| Korean_BraveFemaleWarrior | Brave Female Warrior | F | -| Korean_BraveYouth | Brave Youth | M | -| Korean_CalmGentleman | Calm Gentleman | M | -| Korean_CalmLady | Calm Lady | F | -| Korean_CaringWoman | Caring Woman | F | -| Korean_CharmingElderSister | Charming Elder Sister | F | -| Korean_CharmingSister | Charming Sister | F | -| Korean_CheerfulBoyfriend | Cheerful Boyfriend | M | -| Korean_CheerfulCoolJunior | Cheerful Cool Junior | M | -| Korean_CheerfulLittleSister | Cheerful Little Sister | F | -| Korean_ChildhoodFriendGirl | Childhood Friend Girl | F | -| Korean_CockyGuy | Cocky Guy | M | -| Korean_ColdGirl | Cold Girl | F | -| Korean_ColdYoungMan | Cold Young Man | M | -| Korean_ConfidentBoss | Confident Boss | M | -| Korean_ConsiderateSenior | Considerate Senior | M | -| Korean_DecisiveQueen | Decisive Queen | F | -| Korean_DominantMan | Dominant Man | M | -| Korean_ElegantPrincess | Elegant Princess | F | -| Korean_EnchantingSister | Enchanting Sister | F | -| Korean_EnthusiasticTeen | Enthusiastic Teen | F | -| Korean_FriendlyBigSister | Friendly Big Sister | F | -| Korean_GentleBoss | Gentle Boss | M | -| Korean_GentleWoman | Gentle Woman | F | -| Korean_HaughtyLady | Haughty Lady | F | -| Korean_InnocentBoy | Innocent Boy | M | -| Korean_IntellectualMan | Intellectual Man | M | -| Korean_IntellectualSenior | Intellectual Senior | M | -| Korean_LonelyWarrior | Lonely Warrior | M | -| Korean_MatureLady | Mature Lady | F | -| Korean_MysteriousGirl | Mysterious Girl | F | -| Korean_OptimisticYouth | Optimistic Youth | M | -| Korean_PlayboyCharmer | Playboy Charmer | M | -| Korean_PossessiveMan | Possessive Man | M | -| Korean_QuirkyGirl | Quirky Girl | F | -| Korean_ReliableSister | Reliable Sister | F | -| Korean_ReliableYouth | Reliable Youth | M | -| Korean_SassyGirl | Sassy Girl | F | -| Korean_ShyGirl | Shy Girl | F | -| Korean_SoothingLady | Soothing Lady | F | -| Korean_StrictBoss | Strict Boss | M | -| Korean_SweetGirl | Sweet Girl | F | -| Korean_ThoughtfulWoman | Thoughtful Woman | F | -| Korean_WiseElf | Wise Elf | F | -| Korean_WiseTeacher | Wise Teacher | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Polish_female_1_sample1 | Calm Woman | F | -| Polish_female_2_sample3 | Casual Woman | F | -| Polish_male_1_sample4 | Male Narrator | M | -| Polish_male_2_sample3 | Male Anchor | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Portuguese_AngryMan | Angry Man | M | -| Portuguese_AnimeCharacter | Anime Character | F | -| Portuguese_Arnold | Arnold | M | -| Portuguese_AssertiveQueen | Assertive Queen | F | -| Portuguese_AttractiveGirl | Attractive Girl | F | -| Portuguese_BossyLeader | Bossy Leader | F | -| Portuguese_CalmLeader | Calm Leader | M | -| Portuguese_CaptivatingStoryteller | Captivating Storyteller | M | -| Portuguese_CaringGirlfriend | Caring Girlfriend | F | -| Portuguese_CharmingLady | Charming Lady | F | -| Portuguese_CharmingQueen | Charming Queen | F | -| Portuguese_CharmingSanta | Charming Santa | M | -| Portuguese_ChattyGirl | Chatty Girl | F | -| Portuguese_Comedian | Comedian | M | -| Portuguese_CompellingGirl | Compelling Girl | F | -| Portuguese_ConfidentWoman | Confident Woman | F | -| Portuguese_Conscientiousinstructor | Conscientious Instructor | M | -| Portuguese_Debator | Debator | M | -| Portuguese_Deep-VoicedGentleman | Deep-voiced Gentleman | M | -| Portuguese_DeterminedManager | Determined Manager | M | -| Portuguese_Dramatist | Dramatist | M | -| Portuguese_ElegantGirl | Elegant Girl | F | -| Portuguese_EnergeticBoy | Energetic Boy | M | -| Portuguese_FascinatingBoy | Fascinating Boy | M | -| Portuguese_FragileBoy | Fragile Boy | M | -| Portuguese_FrankLady | Frank Lady | F | -| Portuguese_FriendlyNeighbor | Friendly Neighbor | M | -| Portuguese_Fussyhostess | Fussy Hostess | F | -| Portuguese_GentleTeacher | Gentle Teacher | M | -| Portuguese_Ghost | Ghost | M | -| Portuguese_Godfather | Godfather | M | -| Portuguese_GorgeousLady | Gorgeous Lady | F | -| Portuguese_GrimReaper | Grim Reaper | M | -| Portuguese_Grinch | Grinch | M | -| Portuguese_HumorousElder | Humorous Elder | M | -| Portuguese_InspiringLady | Inspiring Lady | F | -| Portuguese_Jovialman | Jovial Man | M | -| Portuguese_Kind-heartedGirl | Kind-hearted Girl | F | -| Portuguese_LovelyLady | Lovely Lady | F | -| Portuguese_MaturePartner | Mature Partner | M | -| Portuguese_Narrator | Narrator | M | -| Portuguese_NaughtySchoolgirl | Naughty Schoolgirl | F | -| Portuguese_PassionateWarrior | Passionate Warrior | M | -| Portuguese_PlayfulGirl | Playful Girl | F | -| Portuguese_PlayfulSpirit | Playful Spirit | F | -| Portuguese_Pompouslady | Pompous Lady | F | -| Portuguese_PowerfulSoldier | Powerful Soldier | M | -| Portuguese_PowerfulVeteran | Powerful Veteran | M | -| Portuguese_RationalMan | Rational Man | M | -| Portuguese_ReliableMan | Reliable Man | M | -| Portuguese_ReservedYoungMan | Reserved Young Man | M | -| Portuguese_RomanticHusband | Romantic Husband | M | -| Portuguese_Rudolph | Rudolph | M | -| Portuguese_SadTeen | Sad Teen | M | -| Portuguese_SantaClaus | Santa Claus | M | -| Portuguese_SensibleManager | Sensible Manager | M | -| Portuguese_SentimentalLady | Sentimental Lady | F | -| Portuguese_SereneElder | Serene Elder | M | -| Portuguese_SereneWoman | Serene Woman | F | -| Portuguese_SmartYoungGirl | Smart Young Girl | F | -| Portuguese_Steadymentor | Steady Mentor | M | -| Portuguese_StressedLady | Stressed Lady | F | -| Portuguese_StrictBoss | Strict Boss | M | -| Portuguese_Strong-WilledBoy | Strong-willed Boy | M | -| Portuguese_SweetGirl | Sweet Girl | F | -| Portuguese_TheatricalActor | Theatrical Actor | M | -| Portuguese_ThoughtfulLady | Thoughtful Lady | F | -| Portuguese_ThoughtfulMan | Thoughtful Man | M | -| Portuguese_ToughBoss | Tough Boss | M | -| Portuguese_UpsetGirl | Upset Girl | F | -| Portuguese_WhimsicalGirl | Whimsical Girl | F | -| Portuguese_Wiselady | Wise Lady | F | -| Portuguese_WiseScholar | Wise Scholar | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Romanian_female_1_sample4 | Optimistic Youth | F | -| Romanian_female_2_sample1 | Gentle Woman | F | -| Romanian_male_1_sample2 | Reliable Man | M | -| Romanian_male_2_sample1 | Energetic Youth | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Russian_AmbitiousWoman | Ambitious Woman | F | -| Russian_AttractiveGuy | Attractive Guy | M | -| Russian_Bad-temperedBoy | Bad-tempered Boy | M | -| Russian_BrightHeroine | Bright Queen | F | -| Russian_CrazyQueen | Crazy Girl | F | -| Russian_HandsomeChildhoodFriend | Handsome Childhood Friend | M | -| Russian_PessimisticGirl | Pessimistic Girl | F | -| Russian_ReliableMan | Reliable Man | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Spanish_AngryMan | Angry Man | M | -| Spanish_AnimeCharacter | Anime Character | F | -| Spanish_Arnold | Arnold | M | -| Spanish_AssertiveQueen | Assertive Queen | F | -| Spanish_BossyLeader | Bossy Leader | F | -| Spanish_CaptivatingStoryteller | Captivating Storyteller | M | -| Spanish_CaringGirlfriend | Caring Girlfriend | F | -| Spanish_ChattyGirl | Chatty Girl | F | -| Spanish_Comedian | Comedian | M | -| Spanish_CompellingGirl | Compelling Girl | F | -| Spanish_Debator | Debator | M | -| Spanish_Deep-tonedMan | Deep-toned Man | M | -| Spanish_DeterminedManager | Determined Manager | M | -| Spanish_EnergeticBoy | Energetic Boy | M | -| Spanish_FrankLady | Frank Lady | F | -| Spanish_Fussyhostess | Fussy Hostess | F | -| Spanish_Ghost | Ghost | M | -| Spanish_HumorousElder | Humorous Elder | M | -| Spanish_Intonategirl | Intonate Girl | F | -| Spanish_Jovialman | Jovial Man | M | -| Spanish_Kind-heartedGirl | Kind-hearted Girl | F | -| Spanish_Narrator | Narrator | M | -| Spanish_PassionateWarrior | Passionate Warrior | M | -| Spanish_PowerfulSoldier | Powerful Soldier | M | -| Spanish_PowerfulVeteran | Powerful Veteran | M | -| Spanish_RationalMan | Rational Man | M | -| Spanish_ReliableMan | Reliable Man | M | -| Spanish_ReservedYoungMan | Reserved Young Man | M | -| Spanish_RomanticHusband | Romantic Husband | M | -| Spanish_Rudolph | Rudolph | M | -| Spanish_SantaClaus | Santa Claus | M | -| Spanish_SensibleManager | Sensible Manager | M | -| Spanish_SereneElder | Serene Elder | M | -| Spanish_SereneWoman | Serene Woman | F | -| Spanish_SincereTeen | Sincere Teen | M | -| Spanish_SophisticatedLady | Sophisticated Lady | F | -| Spanish_Steadymentor | Steady Mentor | M | -| Spanish_StrictBoss | Strict Boss | M | -| Spanish_Strong-WilledBoy | Strong-willed Boy | M | -| Spanish_ThoughtfulLady | Thoughtful Lady | F | -| Spanish_ThoughtfulMan | Thoughtful Man | M | -| Spanish_ToughBoss | Tough Boss | M | -| Spanish_Wiselady | Wise Lady | F | -| Spanish_WiseScholar | Wise Scholar | M | -| Spanish_WhimsicalGirl | Whimsical Girl | F | -| Spanish_ConfidentWoman | Confident Woman | F | -| Spanish_MaturePartner | Mature Partner | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Thai_female_1_sample1 | Confident Woman | F | -| Thai_female_2_sample2 | Energetic Woman | F | -| Thai_male_1_sample8 | Serene Man | M | -| Thai_male_2_sample2 | Friendly Man | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Turkish_CalmWoman | Calm Woman | F | -| Turkish_Trustworthyman | Trustworthy Man | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Ukrainian_CalmWoman | Calm Woman | F | -| Ukrainian_WiseScholar | Wise Scholar | M | - - - - - -| Voice ID | Voice Name | Gender | -|---|---|---| -| Vietnamese_kindhearted_girl | Kind-hearted Girl | F | - - - - +Browse the full list of voice IDs in MiniMax's documentation: + + + + Browse the full list of MiniMax system voice IDs. + + + Reference for models, voices, and parameters. + + ## Languages @@ -554,7 +66,7 @@ A voice identifier string has three parts: the `minimax` engine code, a voice ID **Format**: `minimax.:` -- `voiceId` (required): the Voice ID from the [Voices](#voices) tables (for example, `English_CalmWoman`). +- `voiceId` (required): a MiniMax system voice ID (for example, `English_CalmWoman`); see [Voices](#voices). - `model` (optional): one of the [models](#models) above. Defaults to `speech-2.6-turbo`. **Examples**: From 787838f700dadc0c5b17b2804ea34c9f070449c7 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:51:42 -0400 Subject: [PATCH 07/12] docs: keep engine voice params in ai.languages reference only Remove the on-page 'Voice parameters' tables from the Inworld and MiniMax pages. Engine-specific params (speakingRate/temperature, speed/vol/pitch/emotion) are documented in the SWML ai.languages reference, matching how ElevenLabs and Cartesia params are handled. --- .../pages/calling/voice/TTS/inworld.mdx | 21 ------------ .../pages/calling/voice/TTS/minimax.mdx | 32 ------------------- 2 files changed, 53 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index befab1df30..3fce351705 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -104,27 +104,6 @@ languages: model: inworld-tts-1.5-mini ``` -### Voice parameters - -Inworld supports two optional, engine-specific parameters that fine-tune how a voice sounds. -Set them in the [`languages[].params`](/docs/swml/reference/ai/languages#paramsspeakingrate) -object: - -| Parameter | Type | Range | Default | Description | -|-----------|------|-------|---------|-------------| -| `speakingRate` | number | `0.5`–`1.5` | `1.0` | How quickly the voice speaks. Below `1.0` slows it down; above `1.0` speeds it up. | -| `temperature` | number | `0.0`–`2.0` | `1.0` | How much the delivery varies. Lower values are more consistent and predictable; higher values are more expressive. | - -```yaml -languages: -- name: English - code: en-US - voice: inworld.Lauren:inworld-tts-1.5-mini - params: - speakingRate: 1.1 - temperature: 0.8 -``` - --- ## Build with Inworld on SignalWire diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index 2b63a89a9c..b03f0904f7 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -89,38 +89,6 @@ languages: model: speech-2.6-turbo ``` -### Voice parameters - -MiniMax supports several optional, engine-specific parameters that fine-tune how a voice sounds. -Set them in the [`languages[].params`](/docs/swml/reference/ai/languages#paramsspeed) object: - -| Parameter | Type | Range | Default | Description | -|-----------|------|-------|---------|-------------| -| `speed` | number | `0.5`–`2.0` | `1.0` | How quickly the voice speaks. Below `1.0` slows it down; above `1.0` speeds it up. | -| `vol` | number | `0.1`–`1.0` | `1.0` | Speaking volume. Lower values are quieter. | -| `pitch` | integer | `-12`–`12` | `0` | Pitch shift in semitones. Negative lowers the pitch; positive raises it. | -| `emotion` | string | See below | *(none)* | A fixed emotional tone for the voice. | - -Valid `emotion` values are `happy`, `sad`, `angry`, `fearful`, `disgusted`, `surprised`, and `neutral`. - -```yaml -languages: -- name: English - code: en-US - voice: minimax.English_CalmWoman:speech-2.6-turbo - params: - speed: 1.1 - vol: 0.9 - pitch: 0 - emotion: happy -``` - - -To let the AI agent vary the emotion automatically based on the conversation, set -[`languages[].emotion`](/docs/swml/reference/ai/languages#languagesemotion) to `auto` instead of -setting a fixed `params.emotion`. - - --- ## Build with MiniMax on SignalWire From bcb671ab09e61fc39e322aad5189ac695aa81f11 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:54:12 -0400 Subject: [PATCH 08/12] docs(inworld): drop redundant Models table, keep just the cards The model table, cards, and intro all repeated mini/max. Consolidate to the cards (each now showing its model ID) plus the defaults note. --- .../pages/calling/voice/TTS/inworld.mdx | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 3fce351705..560d5b10e4 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -11,28 +11,22 @@ Inworld is a text-to-speech engine offering high-quality, expressive voices acro ## Models SignalWire supports two Inworld models. -Pick `inworld-tts-1.5-mini` for speed and cost, or `inworld-tts-1.5-max` for the highest quality. See [Inworld's model documentation](https://docs.inworld.ai/tts/tts-models) for more detail. -| Model | Description | -|-------|-------------| -| `inworld-tts-1.5-mini` | Faster, lower-cost model | -| `inworld-tts-1.5-max` | Higher quality model | - - -Defaults to `inworld-tts-1.5-mini` when used with [AI agents](/docs/swml/reference/ai); otherwise it -defaults to `inworld-tts-1.5-max`. Set a model explicitly to override this. - - - The faster, lower-cost model, suited for high-volume, latency-sensitive applications. + `inworld-tts-1.5-mini` — the faster, lower-cost model, suited for high-volume, latency-sensitive applications. - The higher-quality model, suited for expressive, character-driven, and premium reads. + `inworld-tts-1.5-max` — the higher-quality model, suited for expressive, character-driven, and premium reads. + +Defaults to `inworld-tts-1.5-mini` when used with [AI agents](/docs/swml/reference/ai); otherwise it +defaults to `inworld-tts-1.5-max`. Set a model explicitly to override this. + + ## Voices Inworld provides a large library of expressive voices across many languages. From 48151da5b19aeb2349e77832ef2b946606539983 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 13:59:00 -0400 Subject: [PATCH 09/12] docs(inworld): warn that cloned/custom voices are not supported --- fern/products/platform/pages/calling/voice/TTS/inworld.mdx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 560d5b10e4..9d7cef1666 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -33,6 +33,11 @@ Inworld provides a large library of expressive voices across many languages. A voice's name is its voice ID — for example, `Lauren` becomes `inworld.Lauren` in the [voice string](#usage). + +Only Inworld's built-in voices are supported. Cloned and custom voices do not work — you must use +one of the default voice IDs that Inworld provides. + + Preview the voices and find their IDs in Inworld's documentation: From 70ba0d9bd29590c32ced80583e972e3309203bac Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 14:01:03 -0400 Subject: [PATCH 10/12] docs(minimax): frame models as 'SignalWire supports the following', matching Inworld --- fern/products/platform/pages/calling/voice/TTS/minimax.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index b03f0904f7..97e222c310 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -11,8 +11,8 @@ for emotion, speed, pitch, and volume. ## Models -MiniMax offers several models. Pick a `turbo` model for speed and cost, or an `hd` model for the -highest quality. If you don't specify a model, `speech-2.6-turbo` is used. +SignalWire supports the following MiniMax models. Pick a `turbo` model for speed and cost, or an +`hd` model for the highest quality. If you don't specify a model, `speech-2.6-turbo` is used. | Model | Description | |-------|-------------| From bed48508a2240bca8505b03b4299bc92a19aaff9 Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 14:06:44 -0400 Subject: [PATCH 11/12] docs(inworld): use a models table instead of cards, matching other TTS docs --- .../platform/pages/calling/voice/TTS/inworld.mdx | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 9d7cef1666..7e038327f3 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -13,14 +13,10 @@ Inworld is a text-to-speech engine offering high-quality, expressive voices acro SignalWire supports two Inworld models. See [Inworld's model documentation](https://docs.inworld.ai/tts/tts-models) for more detail. - - - `inworld-tts-1.5-mini` — the faster, lower-cost model, suited for high-volume, latency-sensitive applications. - - - `inworld-tts-1.5-max` — the higher-quality model, suited for expressive, character-driven, and premium reads. - - +| Model | Description | +|-------|-------------| +| `inworld-tts-1.5-mini` | Faster, lower-cost model, suited for high-volume, latency-sensitive applications | +| `inworld-tts-1.5-max` | Higher-quality model, suited for expressive, character-driven, and premium reads | Defaults to `inworld-tts-1.5-mini` when used with [AI agents](/docs/swml/reference/ai); otherwise it From 657c9082a08e7dd579b0eea6baa90bd468e078cf Mon Sep 17 00:00:00 2001 From: Devon-White Date: Mon, 15 Jun 2026 14:11:47 -0400 Subject: [PATCH 12/12] docs: add 'Text-to-speech' subtitle to all TTS provider pages --- fern/products/platform/pages/calling/voice/TTS/azure.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/cartesia.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/deepgram.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/elevenlabs.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/google.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/inworld.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/minimax.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/openai.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/polly.mdx | 1 + fern/products/platform/pages/calling/voice/TTS/rime.mdx | 1 + 10 files changed, 10 insertions(+) diff --git a/fern/products/platform/pages/calling/voice/TTS/azure.mdx b/fern/products/platform/pages/calling/voice/TTS/azure.mdx index 6ad66c81db..cb359ca0ef 100644 --- a/fern/products/platform/pages/calling/voice/TTS/azure.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/azure.mdx @@ -1,6 +1,7 @@ --- id: 3d4a77e2-2277-4165-916c-21e9db487c31 title: Azure +subtitle: Text-to-speech description: Learn how to use Azure TTS voices on the SignalWire platform. slug: /voice/tts/azure --- diff --git a/fern/products/platform/pages/calling/voice/TTS/cartesia.mdx b/fern/products/platform/pages/calling/voice/TTS/cartesia.mdx index 78502a2484..415e6a2406 100644 --- a/fern/products/platform/pages/calling/voice/TTS/cartesia.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/cartesia.mdx @@ -1,6 +1,7 @@ --- id: 2b73a251-1dda-48f8-a437-08e076279e7f title: Cartesia +subtitle: Text-to-speech description: Learn how to use Cartesia TTS voices on the SignalWire platform. slug: /voice/tts/cartesia --- diff --git a/fern/products/platform/pages/calling/voice/TTS/deepgram.mdx b/fern/products/platform/pages/calling/voice/TTS/deepgram.mdx index 39d162445a..ffd214572c 100644 --- a/fern/products/platform/pages/calling/voice/TTS/deepgram.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/deepgram.mdx @@ -1,6 +1,7 @@ --- id: c2a4f703-3d37-4239-9c5c-a7a3498dd58d title: Deepgram +subtitle: Text-to-speech description: Learn how to use Deepgram TTS voices on the SignalWire platform. slug: /voice/tts/deepgram --- diff --git a/fern/products/platform/pages/calling/voice/TTS/elevenlabs.mdx b/fern/products/platform/pages/calling/voice/TTS/elevenlabs.mdx index d0c4a493d7..4dc43c2b1a 100644 --- a/fern/products/platform/pages/calling/voice/TTS/elevenlabs.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/elevenlabs.mdx @@ -1,6 +1,7 @@ --- id: 042baf57-35a8-47ce-93cb-8387cacff266 title: ElevenLabs +subtitle: Text-to-speech description: Learn how to use ElevenLabs TTS voices on the SignalWire platform. slug: /voice/tts/elevenlabs --- diff --git a/fern/products/platform/pages/calling/voice/TTS/google.mdx b/fern/products/platform/pages/calling/voice/TTS/google.mdx index 88e51b8ac8..2de55a4b17 100644 --- a/fern/products/platform/pages/calling/voice/TTS/google.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/google.mdx @@ -1,6 +1,7 @@ --- id: 2724fea7-d6f8-44e3-b397-a3940ac4e663 title: Google Cloud +subtitle: Text-to-speech description: Learn how to use Google Cloud TTS voices on the SignalWire platform. slug: /voice/tts/gcloud --- diff --git a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx index 7e038327f3..10800bb434 100644 --- a/fern/products/platform/pages/calling/voice/TTS/inworld.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/inworld.mdx @@ -1,5 +1,6 @@ --- title: Inworld +subtitle: Text-to-speech slug: /voice/tts/inworld description: Learn how to use Inworld's expressive, multilingual TTS models with SignalWire AI Voice applications. max-toc-depth: 3 diff --git a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx index 97e222c310..88de3efa00 100644 --- a/fern/products/platform/pages/calling/voice/TTS/minimax.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/minimax.mdx @@ -1,5 +1,6 @@ --- title: MiniMax +subtitle: Text-to-speech slug: /voice/tts/minimax description: Learn how to use MiniMax's expressive, multilingual TTS voices with SignalWire AI Voice applications. max-toc-depth: 3 diff --git a/fern/products/platform/pages/calling/voice/TTS/openai.mdx b/fern/products/platform/pages/calling/voice/TTS/openai.mdx index a3f8c80264..b3034a5cba 100644 --- a/fern/products/platform/pages/calling/voice/TTS/openai.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/openai.mdx @@ -1,6 +1,7 @@ --- id: 967bb43c-abe7-4038-8423-4ba5f7cb50ea title: OpenAI +subtitle: Text-to-speech description: Learn how to use OpenAI TTS voices on the SignalWire platform. slug: /voice/tts/openai --- diff --git a/fern/products/platform/pages/calling/voice/TTS/polly.mdx b/fern/products/platform/pages/calling/voice/TTS/polly.mdx index a499fda515..2a5e237714 100644 --- a/fern/products/platform/pages/calling/voice/TTS/polly.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/polly.mdx @@ -1,6 +1,7 @@ --- id: f7fbcf5a-022b-4b2e-ae2b-fdad62017204 title: Amazon Polly +subtitle: Text-to-speech description: Learn how to use Polly TTS voices on the SignalWire platform. slug: /voice/tts/amazon-polly --- diff --git a/fern/products/platform/pages/calling/voice/TTS/rime.mdx b/fern/products/platform/pages/calling/voice/TTS/rime.mdx index 84238c0696..60bff5d9e5 100644 --- a/fern/products/platform/pages/calling/voice/TTS/rime.mdx +++ b/fern/products/platform/pages/calling/voice/TTS/rime.mdx @@ -1,6 +1,7 @@ --- id: a3dbb231-d452-48ca-ba30-acd8ec499349 title: Rime +subtitle: Text-to-speech slug: /voice/tts/rime description: Learn how to use Rime's Arcana and Mist v2 TTS models with SignalWire AI Voice applications. ---