Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions fern/products/platform/pages/calling/voice/TTS/azure.mdx
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
1 change: 1 addition & 0 deletions fern/products/platform/pages/calling/voice/TTS/google.mdx
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
28 changes: 18 additions & 10 deletions fern/products/platform/pages/calling/voice/TTS/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand Down Expand Up @@ -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) |

<br/>

Expand Down
185 changes: 185 additions & 0 deletions fern/products/platform/pages/calling/voice/TTS/inworld.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
---
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
---


Inworld is a text-to-speech engine offering high-quality, expressive voices across many languages.

## Models

SignalWire supports two Inworld models.
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, suited for high-volume, latency-sensitive applications |
| `inworld-tts-1.5-max` | Higher-quality model, suited for expressive, character-driven, and premium reads |

<Info>
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.
</Info>

## Voices

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).

<Warning>
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.
</Warning>

Preview the voices and find their IDs in Inworld's documentation:

<CardGroup cols={2}>
<Card title="Inworld TTS Playground" icon="regular waveform-lines" href="https://docs.inworld.ai/tts/tts-playground">
Preview Inworld voices and models in the browser.
</Card>
<Card title="Inworld TTS docs" icon="regular book-open" href="https://docs.inworld.ai/tts/tts">
Reference for voices, models, and languages.
</Card>
</CardGroup>

## 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>:<model>`

- `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**:
```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
```

---

## Build with Inworld on SignalWire

<Steps>

### 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

<Markdown src="/snippets/common/dashboard/add-resource.mdx" />

### 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 <kbd>Save</kbd>:

```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.

<Frame caption="Assigning a phone number to the SWML Script">
![A purchased phone number showing assignment to a specified Resource.](/assets/images/dashboard/phone-numbers/assign-resource-voice.webp)
</Frame>

### Give it a call!

Call the number you just assigned to chat with your new AI voice application on the phone.

</Steps>

## 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!

<CardGroup cols={3}>
<Card
title="Methods reference"
href="/docs/swml"
icon="/assets/icons/swml.svg"
>
Documentation for all SWML methods
</Card>
<Card
title="AI in SWML"
href="/docs/swml/guides"
icon="regular wand-magic-sparkles"
>
Build advanced AI applications using SignalWire Markup Language
</Card>
<Card
title="Guides"
href="/docs/swml/guides"
icon="regular book-open"
>
SWML guides and demo applications
</Card>
</CardGroup>
Loading
Loading