> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Inworld > Learn how to use Inworld's expressive, multilingual TTS models with SignalWire AI Voice applications. 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. ## 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. Preview the voices and find their IDs in Inworld's documentation: #### [Inworld TTS Playground](https://docs.inworld.ai/tts/tts-playground) Preview Inworld voices and models in the browser. #### [Inworld TTS docs](https://docs.inworld.ai/tts/tts) Reference for voices, models, and languages. ## 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): 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 ### 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 Navigate to the **Resources** tab in your [SignalWire Dashboard](https://my.signalwire.com) and click **+ Add New** to create 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. In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the SWML script, and save the settings. ### 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! #### [Methods reference](/docs/swml) Documentation for all SWML methods #### [AI in SWML](/docs/swml/guides) Build advanced AI applications using SignalWire Markup Language #### [Guides](/docs/swml/guides) SWML guides and demo applications > Text-to-speech