Skip to content

Voice

Fresh

\\\*

title: Voice position: 0 subtitle: Build next-generation calling applications with integrated AI, plug-and-play compatibility with other providers, and infinite scalability

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

Whether building a UCaaS solution, modernizing a legacy IVR, augmenting CX with AI, or migrating from another provider's APIs, our comprehensive technical references and guides have you covered.

## Get started

SignalWire phone numbers in the Dashboard

Deploy a serverless voice AI Agent and call it over the PSTN in under 5 minutes with SWML

The fundamentals of your first calling app

Get started with our Compatibility API

Create a drag-and-drop calling application

## Choose an API

SignalWire's advanced APIs and elastic cloud infrastructure make it a breeze to build modern and powerful voice applications using both PSTN and SIP endpoints.

\* **SignalWire REST API:** A robust, modern and flexible API for building integrated, advanced communications applications. \* **Compatibility API:** Ideal for porting code from other providers. It can run serverless, but it also supports Python, PHP, Node.js, and other languages. \* **Realtime API:** This API is ideal if you are an advanced developer and you want flexible, modern and realtime SDKs for Node.js.

High-quality, scalable, and secure voice API

Easily migrate from Twilio and other providers

Next-gen server telephony applications powered by our RELAY WebSocket API

Bring telephone capabilities to the browser with our Node.js SDK

## Low-code and no-code solutions

Drag-and-drop, no-code call application builder

Write realtime, AI-integrated calling applications using simple JSON or YAML scripts

## Popular guides

Route SIP traffic through the SignalWire platform to your PBX system.

Guide that focuses on how to make and receive phone calls via a SWML script.

## Frequently asked questions

You can send up to `1 CPS` (Call Per Second) across your SignalWire Space.

Consult our [Guide to Rate Limits](/docs/platform/rate-limits) for more information. Customers can also request additional [increases to their Space limits](/docs/platform/rate-limits).

Every Space has a [default call backlog](/docs/platform/rate-limits#queue-and-backlog-system) of 10k. SignalWire will send calls out at 1 call per second per phone number. If your backlog fills up past 10k, you will not be able to queue any more calls until it decreases. You can request an increase to this backlog [here](/docs/platform/rate-limits).

We do have offerings available for high throughput toll-free calling and high throughput SIP calling. Please reach out to [Support@signalwire.com](mailto:Support@signalwire.com) to get this process started.

Yes, SignalWire has all the components to build a very powerful IVR! You could use [SWML](/docs/swml), the [Compatibility SDK](/docs/compatibility-api/rest/client-sdks), or even build a video/voice solution using our [Javascript SDKs](/docs/browser-sdk).

Yes! You can purchase local long code, toll-free, and shortcode numbers from our carrier partners through the SignalWire platform. You can read about how to purchase numbers [here](/docs/platform/phone-numbers).

SignalWire is a communications platform, not a carrier. To make our customers' lives easier, we integrate with our carrier peers so that you can buy numbers directly through us from them. That being said, the availability of numbers is totally reliant on our carrier. If you cannot find the area code you need, please create a Support ticket via the help link in your SignalWire Space and our team will do their best to get you the numbers you need. You can also [port any number into SignalWire](/docs/platform/porting-into-signalwire) from another provider!

Public Switched Telephone Network (PSTN) is the network that carries your voice call when you call from a landline, cell phone, or DID (such as those SignalWire owns). This uses regular telephone infrastructure rather than SIP or other protocols.

SIP (Session Initiation Protocol) refers to the process through which phone calls can take place over the internet (i.e. VOIP) instead of physical regular phone lines. This allows for greater worldwide reach, less physical requirements, and is more affordable/scalable for businesses.

A SIP trunk is just a container that holds multiple SIP lines. In a sense, it's just an abstract version of traditional trunks—bundles of wire connecting switches.

BYOC allows you to use SignalWire's APIs, services, and programmability all while keeping your current SIP providers for outbound/inbound calling. If you are interested in BYOC, see our [full guide](/docs/platform/voice/sip/bring-your-own-carrier) to get started.

You have unlimited inbound and 1CPS per phone number outbound. If you would like to send more than 1 SIP call per second per phone number, you can reach out to [Support@signalwire.com](mailto:Support@signalwire.com) to talk about raising your max throughput.

The number of call legs is dependent on the call flow. A call is made up of multiple call legs where a call leg represents a relationship between two user agents. If you directly forward a call to a SIP endpoint, that is only two legs (inbound and outbound). If a call comes into SignalWire and is then forwarded to 4 SIP endpoints, that would be 5 legs.

Yes, SignalWire will allow you to easily implement Answering Machine Detection (AMD) on your calls! AMD listens to the call to determine if the party that picked up is a real person or a voicemail machine. You can use this information to determine whether to leave a voicemail message or begin interacting with a real person. You can use AMD through [`detect_machine`](/docs/swml/reference/detect-machine) in SWML or `detect_answering_machine` using the [Realtime SDK](/docs/server-sdks/reference/python/relay/call).

Yes, call recording is possible through the [Realtime SDK](/docs/server-sdks/reference/python/relay/call/record) or [SWML](/docs/swml/reference/record-call). Check out our guide on [Recording Calls](/docs/swml/guides/record-calls).

Yes - transcription is possible using the [Realtime SDK](/docs/server-sdks/reference/python/relay/call/transcribe) or through SWML's [AI agent](/docs/swml/reference/ai) capabilities. You can also set a callback in order to do something with your transcriptions when they're received.

Yes - text to speech is simple with either the [RELAY SDK](/docs/server-sdks/reference/python/relay/call/play) or [SWML's play method](/docs/swml/reference/play).

Speech to text is available through [SWML's prompt method](/docs/swml/reference/prompt) or you can collect speech and transcribe with Node.js using the [RELAY SDK](/docs/server-sdks/reference/python/relay/call/collect).

Call Whisper involves playing a short message before the callee accepts the call and connects to the caller. At this time, the caller will still hear ringing. This allows for the callee to screen the call and choose to accept/reject or gather additional information before connecting with the caller. Check out our [Call Whisper guide](/docs/swml/guides/call-whisper) for a SWML example.

The Caller Name (CNAM) is a feature that displays your Name or Company Name on the Caller ID display of the party you are calling. When it is set up, your Caller ID Name will display as text along with your Caller ID Number. The Caller ID is the actual phone number calling in, whereas the accompanying text that provides the identifying name for that number is called CNAM (a.k.a. "Caller Name"). Follow the steps [here](/docs/platform/voice/how-to-set-caller-id-or-cnam) to get CNAM or caller ID set up.

While it is possible to create ringless voicemail using SignalWire APIs, we do not provide support in creating this feature. Ringless voicemail is most commonly associated with spam to the carriers and therefore may not be able to be corrected if you run into problems.

We have an elastic swarm of servers all across the world and across different providers to ensure minimum latency and maximum uptime. If you are looking for more details or would like to request a node in a specific location, please reach out to [sales@signalwire.com](mailto:sales@signalwire.com).

Yes, SignalWire is PCI compliant. All applications built using SignalWire will also have to be built to maintain this compliance, for example: pausing/terminating any recording or transcription before accepting sensitive information.

Yes, phishing and scam calls or calls to numbers that have been listed on a "Do Not Call" registry will be flagged as fraudulent. See the \SignalWire Cloud Agreement\ for more details.


*Twilio and TwiML are trademarks of Twilio, Inc. SignalWire, Inc. and its products are not affiliated with or endorsed by Twilio, Inc.


SIP trunking

SIP trunking is a popular option for customers who have an existing PBX phone system and would like to route SIP traffic through SignalWire without taking advantage of our application-level features. Customers can create SIP endpoints programmatically or in their SignalWire Space and route traffic to those endpoints in the SignalWire network. These endpoints could be many things, such as PBXs / Business Phone Systems, IP Phones, Softphones, Mobile Applications, and IoT devices, just to name a few. The SIP trunk will allow any of these endpoints to connect with other external SIP endpoints or the Public Switched Telephone Network (PSTN).

Creating a SIP Credential

In order to create a SIP Credential you can go to Resources in your SignalWire Space, and create a new SIP Credential.

Alternatively, you can create the endpoint programmatically with an API call.

curl -L -X POST 'https://$SPACE_NAME.signalwire.com/api/relay/rest/endpoints/sip' \
-u '$PROJECT_ID:$API_TOKEN' \
--data-raw '{
  "username": "newCompany",
  "password": "#SuperSecurePassword",
  "caller_id": "New Company",
  "encryption": "required"
  }'

For an in-depth look at what these settings do and all of your SIP Dashboard tools, see the complete guide to your SIP Space.

Note that the endpoint URL depends on the SIP URI that you name in your SIP Profile. Manage your SIP Profile on your Dashboard or via API. The username, password, and URL in your SIP endpoint settings will be used later to connect your SIP device.

After saving your settings, your endpoint is ready to accept traffic via its SIP URL, or you can set up a phone number to accept incoming PSTN calls.

Phone Number to Handle Incoming Calls

To direct incoming traffic to your endpoint, you may wish to purchase a SignalWire phone number (DID) and connect it to your SIP endpoint. Again, you have the option to do this via your Dashboard or programmatically.

See Buying a Phone Number for step-by-step instructions on searching for and purchasing a number, then open its settings by clicking on your new number in your Dashboard’s Phone Numbers Space.

In the number’s setting, click on the “Assign Resource” button and select your SIP endpoint resource.

Assign SIP Endpoint.

What's a Resource?

Resources are the building blocks of SignalWire applications. They include AI Agents, SWML Scripts, cXML Scripts, SIP Endpoints, and more.

If you prefer to use API calls, you will need the Search for Available Phone Numbers, Purchase a Phone Number, and Update a Phone Number endpoints.

Change the Voice and Fax Settings to accept incoming calls as Voice Calls and handle calls using a SIP Endpoint. Then you can search for the endpoint by username.

After saving your settings, incoming calls to this number will be immediately directed to your SIP endpoint.

Configuring a SIP Device

To handle calls after they reach your SIP endpoint, you’ll need to set up a SIP device. Depending on what your SIP device is—be it a PBX or a SIP application or IP Phone—they require many of the same field parameters.

  • SIP Username
  • SIP Password
  • Local SIP Port (In order to avoid malicious behavior, we suggest choosing a local SIP port that is not the typical SIP port.)
  • SIP Server
  • SIP Server Port
  • SIP Server Transport Protocol
  • Outbound Proxy
  • Outbound Proxy Port
  • Outbound Proxy Transport Protocol

Continuing with our earlier example, our parameters for a SIP IP Phone or soft client might be:

  • SIP Username: newCompany
  • SIP Password: #SuperSecurePassword
  • Local SIP Port: 6050
  • SIP Server: newCompany @xxx-xxx.sip.signalwire.com (refer to your Dashboard for the correct URL)
  • SIP Server Port: 5061 (SIP Port: 5060, TLS Port 5061)
  • SIP Server Transport Protocol: TLS
  • Outbound Proxy: (supported but not generally needed)
  • Outbound Proxy Port: (supported but not generally needed)
  • Outbound Proxy Transport Protocol: (supported but not generally needed)

Security

Security is important to us! Communications over the open internet should be secure both in signalling and in media. We feel so strongly about security that we decided to support TLS (Transport Layer Security) and SRTP (Secure Real-time Transport Protocol) by default. When setting up your SIP endpoint, specify which codecs and ciphers to support, but you must choose at least one. Be aware that not all codecs and ciphers are compatible with every SIP device, so refer to your device documentation for compatibility.

Call Logs

All call logs can be viewed in the “Logs” tab of your SignalWire Dashboard. Here, you can see details for each call including the SignalWire resource type and cost. Additional details for each call are available by clicking on the resource name.

Wrap Up

Setting up a SIP trunk like this may be the solution for you if all you need is to direct SIP traffic in and out of your existing system. However, the flip side to that is there will be no features available on the trunk such as recording, IVR or any form of call control. If you want to explore SIP options that take advantage of SignalWire’s services and features, check out our guide to SIP Domain Applications.

In the Legacy Dashboard

Which Dashboard version am I using?

New Dashboard: You have a Resources tab in the left sidebar.

Legacy Dashboard: You have separate tabs for SIP, LaML, RELAY, etc.

If you're on the Legacy UI

Navigate to the Phone Numbers tab, click the phone number that you would like to register, and then click Edit Settings button. From here, in the Handle Incoming Calls section, select SIP Endpoint, then input the SIP address you created.

A screenshot of the edit pane for a phone number in the Phone Numbers tab of a SignalWire Space. The number is titled 'SIP Endpoint' and it is set to accept incoming calls as 'Voice Calls' and handle calls using 'a SIP Endpoint'. The SIP username is indicated in the field labeled 'When a Call Comes In, Forward the Call to'.

Register SIP Endpoint to a SignalWire Phone Number


Voices and languages

A grid of logos for TTS providers on the SignalWire platform.

SignalWire integrates natively with leading third-party text-to-speech (TTS) providers. This guide describes supported engines, voices, and languages. Refer to each provider’s documentation for up-to-date model details and service information.

Compare providers and models

SignalWire’s TTS providers offer a wide range of voice engines optimized for various applications. Select a provider, model, and voice according to the following considerations:

Language support: At time of writing, engine language support is as follows. Consult each provider’s reference documentation for the most up-to-date information.

  • Rime voices support English, Spanish, French, German, and Hindi (Arcana model only).
  • Deepgram voices support English, Spanish, German, French, Dutch, Italian, and Japanese.
  • Amazon Polly, Azure, Cartesia, and Google Cloud offer a wide range of supported languages.
  • All ElevenLabs and OpenAI voices are fully multilingual.

SSML support: Google Cloud and Amazon Polly support SSML (Speech Synthesis Markup Language) as a string wrapped in <speak> tags. Consult Google Cloud’s SSML docs for details. Refer to the Amazon Polly docs for more information on using SSML and supported SSML tags.

Use voice identifier strings

Compose voice identifier strings using the following general format:

engine.voice:model
IdentifierDescription
engine
required
The TTS provider (e.g., elevenlabs, rime, openai)
voice
required
The voice identifier (name or ID depending on engine)
model
optional
Model variant (not all engines support this)

Since voice ID strings are case insensitive, the following strings are equivalent:

gcloud.en-US-Neural2-A
gcloud.en-us-neural2-a
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 providerEngine codeSample voice ID stringUsage
Amazon Pollyamazonamazon.Joanna-NeuralReference
Azureazureen-US-AvaNeuralReference
Cartesiacartesiacartesia.a167e0f3-df7e-4d52-a9c3-f949145efdabReference
Deepgramdeepgramdeepgram.aura-asteria-enReference
ElevenLabselevenlabselevenlabs.thomasReference
Google Cloudgcloudgcloud.en-US-Casual-KReference
OpenAIopenaiopenai.alloyReference
Rimerimerime.luna:arcanaReference

Pricing

See the Voice API Pricing page for up-to-date pricing information.


Cartesia

Cartesia offers a wide selection of fully multilingual voices with very low latency. Create a Cartesia account to browse and test voices in the Cartesia Playground.

Models

Cartesia provides multiple generations of its Sonic TTS model:

ModelDescription
sonic-3Default. Latest model with enhanced naturalness
sonic-2Second-generation model with improved quality
sonic-turboOptimized for ultra-low latency
sonicThe first version of Sonic, optimized for accuracy and low latency.

All Cartesia voices can be used with any model.

Sonic 3\ \ Learn about Cartesia’s latest Sonic 3 model. Previous models\ \ Documentation for older Sonic model versions.

Voices

Copy the voice ID from the table below:

Voice nameVoice ID
German Conversational Woman3f4ade23-6eb4-4279-ab05-6a144947c4d5
Nonfiction Man79f8b5fb-2cc8-479a-80df-29f7a7cf1a3e
Friendly Sidekicke00d0e4c-a5c8-443f-a8a3-473eb9a62355
French Conversational Ladya249eaff-1e96-4d2c-b23b-12efa4f66f41
French Narrator Lady8832a0b5-47b2-4751-bb22-6a8e2149303d
German Reporter Woman119e03e4-0705-43c9-b3ac-a658ce2b6639
Indian Lady3b554273-4299-48b9-9aaf-eefd438e3941
British Reading Lady71a7ad14-091c-4e8e-a314-022ece01c121
British Narration Lady4d2fd738-3b3d-4368-957a-bb4805275bd9
Japanese Children Book44863732-e415-4084-8ba1-deabe34ce3d2
Japanese Woman Conversational2b568345-1d48-4047-b25f-7baccf842eb0
Japanese Male Conversationale8a863c6-22c7-4671-86ca-91cacffc038d
Reading Lady15a9cd88-84b0-4a8b-95f2-5d583b54c72e
Newsmand46abd1d-2d02-43e8-819f-51fb652c1c61
Child2ee87190-8f84-4925-97da-e52547f9462c
Meditation Ladycd17ff2d-5ea4-4695-be8f-42193949b946
Maria5345cf08-6f37-424d-a5d9-8ae1101b9377
1920’s Radioman41534e16-2966-4c6b-9670-111411def906
Newsladybf991597-6c13-47e4-8411-91ec2de5c466
Calm Lady00a77add-48d5-4ef6-8157-71e5437b282d
Helpful Woman156fb8d2-335b-4950-9cb3-a2d33befec77
Mexican Woman5c5ad5e7-1020-476b-8b91-fdcbe9cc313c
California Girlb7d50908-b17c-442d-ad8d-810c63997ed9
Korean Narrator Woman663afeec-d082-4ab5-827e-2e41bf73a25b
Russian Calm Lady779673f3-895f-4935-b6b5-b031dc78b319
Russian Narrator Man 12b3bb17d-26b9-421f-b8ca-1dd92332279f
Russian Narrator Man 2da05e96d-ca10-4220-9042-d8acef654fa9
Russian Narrator Woman642014de-c0e3-4133-adc0-36b5309c23e6
Hinglish Speaking Lady95d51f79-c397-46f9-b49a-23763d3eaa2d
Italian Narrator Woman0e21713a-5e9a-428a-bed4-90d410b87f13
Polish Narrator Woman575a5d29-1fdc-4d4e-9afa-5a9a71759864
Chinese Female Conversationale90c6678-f0d3-4767-9883-5d0ecf5894a8
Pilot over Intercom36b42fcb-60c5-4bec-b077-cb1a00a92ec6
Chinese Commercial Maneda5bbff-1ff1-4886-8ef1-4e69a77640a0
French Narrator Man5c3c89e5-535f-43ef-b14d-f8ffe148c1f0
Spanish Narrator Mana67e0421-22e0-4d5b-b586-bd4a64aee41d
Reading Manf146dcec-e481-45be-8ad2-96e1e40e7f32
New York Man34575e71-908f-4ab6-ab54-b08c95d6597d
Friendly French Manab7c61f5-3daa-47dd-a23b-4ac0aac5f5c3
Barbershop Mana0e99841-438c-4a64-b679-ae501e7d6091
Indian Man638efaaa-4d0c-442e-b701-3fae16aad012
Australian Customer Support Man41f3c367-e0a8-4a85-89e0-c27bae9c9b6d
Friendly Australian Man421b3369-f63f-4b03-8980-37a44df1d4e8
Wise Manb043dea0-a007-4bbe-a708-769dc0d0c569
Friendly Reading Man69267136-1bdc-412f-ad78-0caad210fb40
Customer Support Mana167e0f3-df7e-4d52-a9c3-f949145efdab
Dutch Confident Man9e8db62d-056f-47f3-b3b6-1b05767f9176
Dutch Man4aa74047-d005-4463-ba2e-a0d9b261fb87
Hindi Reporter Manbdab08ad-4137-4548-b9db-6142854c7525
Italian Calm Man408daed0-c597-4c27-aae8-fa0497d644bf
Italian Narrator Man029c3c7a-b6d9-44f0-814b-200d849830ff
Swedish Narrator Man38a146c3-69d7-40ad-aada-76d5a2621758
Polish Confident Man3d335974-4c4a-400a-84dc-ebf4b73aada6
Spanish-speaking Storyteller Man846fa30b-6e1a-49b9-b7df-6be47092a09a
Kentucky Woman4f8651b0-bbbd-46ac-8b37-5168c5923303
Chinese Commercial Woman0b904166-a29f-4d2e-bb20-41ca302f98e9
Middle Eastern Womandaf747c6-6bc2-4083-bd59-aa94dce23f5d
Hindi Narrator Womanc1abd502-9231-4558-a054-10ac950c356d
Sarah694f9389-aac1-45b6-b726-9d9369183238
Sarah Curious794f9389-aac1-45b6-b726-9d9369183238
Laidback Woman21b81c14-f85b-436d-aff5-43f2e788ecf8
Reflective Womana3520a8f-226a-428d-9fcd-b0a4711a6829
Helpful French Lady65b25c5d-ff07-4687-a04c-da2f43ef6fa9
Pleasant Brazilian Lady700d1ee3-a641-4018-ba6e-899dcadc9e2b
Customer Support Lady829ccd10-f8b3-43cd-b8a0-4aeaa81f3b30
British Lady79a125e8-cd45-4c13-8a67-188112f4dd22
Wise Ladyc8605446-247c-4d39-acd4-8f4c28aa363c
Australian Narrator Lady8985388c-1332-4ce7-8d55-789628aa3df4
Indian Customer Support Ladyff1bb1a9-c582-4570-9670-5f46169d0fc8
Swedish Calm Ladyf852eb8d-a177-48cd-bf63-7e4dcab61a36
Spanish Narrator Lady2deb3edf-b9d8-4d06-8db9-5742fb8a3cb2
Salesman820a3788-2b37-4d21-847a-b65d8a68c99a
Yogamanf114a467-c40a-4db8-964d-aaba89cd08fa
Moviemanc45bc5ec-dc68-4feb-8829-6e6b2748095d
Wizardman87748186-23bb-4158-a1eb-332911b0b708
Australian Woman043cfc81-d69f-4bee-ae1e-7862cb358650
Korean Calm Woman29e5f8b4-b953-4160-848f-40fae182235b
Friendly German Manfb9fcab6-aba5-49ec-8d7e-3f1100296dde
Announcer Man5619d38c-cf51-4d8e-9575-48f61a280413
Wise Guide Man42b39f37-515f-4eee-8546-73e841679c1d
Midwestern Man565510e8-6b45-45de-8758-13588fbaec73
Kentucky Man726d5ae5-055f-4c3d-8355-d9677de68937
Brazilian Young Man5063f45b-d9e0-4095-b056-8f3ee055d411
Chinese Call Center Man3a63e2d1-1c1e-425d-8e79-5100bc910e90
German Reporter Man3f6e78a8-5283-42aa-b5e7-af82e8bb310c
Confident British Man63ff761f-c1e8-414b-b969-d1833d1c870c
Southern Man98a34ef2-2140-4c28-9c71-663dc4dd7022
Classy British Man95856005-0332-41b0-935f-352e296aa0df
Polite Manee7ea9f8-c0c1-498c-9279-764d6b56d189
Mexican Man15d0c2e2-8d29-44c3-be23-d585d5f154a1
Korean Narrator Man57dba6ff-fe3b-479d-836e-06f5a61cb5de
Turkish Narrator Man5a31e4fb-f823-4359-aa91-82c0ae9a991c
Turkish Calm Man39f753ef-b0eb-41cd-aa53-2f3c284f948f
Hindi Calm Manac7ee4fa-25db-420d-bfff-f590d740aeb2
Hindi Narrator Man7f423809-0011-4658-ba48-a411f5e516ba
Polish Narrator Man4ef93bb3-682a-46e6-b881-8e157b6b4388
Polish Young Man82a7fc13-2927-4e42-9b8a-bb1f9e506521
Alabama Male40104aff-a015-4da1-9912-af950fbec99e
Australian Male13524ffb-a918-499a-ae97-c98c7c4408c4
Anime Girl1001d611-b1a8-46bd-a5ca-551b23505334
Japanese Man Book97e7d7a9-dfaa-4758-a936-f5f844ac34cc
Sweet Ladye3827ec5-697a-4b7c-9704-1a23041bbc51
Commercial Ladyc2ac25f9-ecc4-4f56-9095-651354df60c0
Teacher Lady573e3144-a684-4e72-ac2b-9b2063a50b53
Princess8f091740-3df1-4795-8bd9-dc62d88e5131
Commercial Man7360f116-6306-4e9a-b487-1235f35a0f21
ASMR Lady03496517-369a-4db1-8236-3d3ae459ddf7
Professional Woman248be419-c632-4f23-adf1-5324ed7dbf1d
Tutorial Manbd9120b6-7761-47a6-a446-77ca49132781
Calm French Womana8a1eb38-5f15-4c1d-8722-7ac0f329727d
New York Woman34bde396-9fde-4ebf-ad03-e3a1d1155205
Spanish-speaking Lady846d6cb0-2301-48b6-9683-48f5618ea2f6
Midwestern Woman11af83e2-23eb-452f-956e-7fee218ccb5c
Sportsmaned81fd13-2016-4a49-8fe3-c0d2761695fc
Storyteller Lady996a8b96-4804-46f0-8e05-3fd4ef1a87cd
Spanish-speaking Man34dbb662-8e98-413c-a1ef-1a3407675fe7
Doctor Mischieffb26447f-308b-471e-8b00-8e9f04284eb5
Spanish-speaking Reporter Man2695b6b5-5543-4be1-96d9-3967fb5e7fec
Young Spanish-speaking Womandb832ebd-3cb6-42e7-9d47-912b425adbaa
The Merchant50d6beb4-80ea-4802-8387-6c948fe84208
Stern French Man0418348a-0ca2-4e90-9986-800fb8b3bbc0
Madame Mischiefe13cae5c-ec59-4f71-b0a6-266df3c9bb8e
German Storyteller Mandb229dfe-f5de-4be4-91fd-7b077c158578
Female Nurse5c42302c-194b-4d0c-ba1a-8cb485c84ab9
German Conversation Man384b625b-da5d-49e8-a76d-a2855d4f31eb
Friendly Brazilian Man6a16c1f4-462b-44de-998d-ccdaa4125a0a
German Womanb9de4a89-2257-424b-94c2-db18ba68c81a
Southern Womanf9836c6e-a0bd-460e-9d3c-f7299fa60f94
British Customer Support Ladya01c369f-6d2d-4185-bc20-b32c225eab70
Chinese Woman Narratord4d4b115-57a0-48ea-9a1a-9898966c2966

For more information, refer to Cartesia’s guide to Choosing a Voice.

Usage

Cartesia voice IDs conform to the following format:

cartesia.<voice_id>:<model>

Parameters:

  • voice_id (required): The UUID voice identifier from the Voices table
  • model (optional): One of the Sonic models listed above (default: sonic-3)

Examples:

cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab
cartesia.694f9389-aac1-45b6-b726-9d9369183238:sonic-3
cartesia.829ccd10-f8b3-43cd-b8a0-4aeaa81f3b30:sonic-turbo

Languages

Cartesia voices are fully multilingual when used with sonic-multilingual, sonic-2, sonic-3, or sonic-3 models. The multilingual models automatically adapt to the input text language.

Supported languages include: English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, Chinese, Japanese, Korean, Hindi, Turkish, Swedish, and many more.

For the complete list, refer to Cartesia’s Sonic 3 language support and Sonic 2 language support references.


Examples

See how to use Cartesia voices on the SignalWire platform.

SWML
RELAY Realtime SDK
Call Flow Builder

Use the languages SWML method to set one or more voices for an AI agent.

version: 1.0.0
sections:
  main:
  - ai:
      prompt:
        text: Have an open-ended conversation about flowers.
      languages:
        - name: English
          code: en-US
          voice: cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab

Alternatively, use the say_voice parameter of the play SWML method to select a voice for basic TTS.

version: 1.0.0
sections:
  main:
  - set:
      say_voice: "cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab"
  - play: "say:Greetings. This is the Customer Support Man voice from Cartesia's Sonic text-to-speech model."

\\\*

title: The Rime TTS engine subtitle: Text-to-speech

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

Rime offers uniquely realistic voices with a focus on natural expressiveness.

## Models

| Model | Description | | ------------------------------------------------------------ | --------------------------------------------------------------------------------- | | `mistv2` | **Default** - Updated version of mist | | `arcana` | Expressive model with natural intonation | | `mist`

Deprecated | Fast, precise model for business applications |

Mist is Rime's fastest model, built for high-volume, business-critical applications.

Arcana is Rime's latest and greatest model, offering a variety of ultra-realistic voices prioritizing authenticity and character.

## Voices

Mist v2 is the default Rime model on the SignalWire platform. To use this model, simply set the voice ID.

To use Arcana voices, set `model` to `arcana` with the [**`languages`**](/docs/swml/reference/ai/languages#use-voice-strings) SWML method:

```yaml languages: - name: English code: en-US voice: rime.luna model: arcana ```

## Languages

As of October 29th, 2025, Rime supports the following languages:

| Language | Code | | :------------------ | :---- | | English | `eng` | | Spanish | `spa` | | French | `fra` | | German | `ger` | | Hindi (Arcana only) | `hin` |

Refer to the \Rime docs
for the most up-to-date reference to supported languages.

## Usage

**Format**: `rime.:`

**Examples**:

``` rime.spore:arcana rime.speaker1:mistv2 rime.voice123:mist ```

For a full demonstration and sample script, see below.

Preview Rime voices on their dashboard

Refer to the Rime Docs for an up-to-date list of voice IDs.

\\\*

## Build with Rime 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\ 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 Rime 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 Luna, a voice from Rime's Arcana model! Introduce yourself, and have a conversation about programmable unified communications on the SignalWire platform. languages: - name: English code: en-US voice: rime.luna model: arcana ```

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

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

SignalWire Developer Documentation