Appearance
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| Identifier | Description |
|---|---|
enginerequired | The TTS provider (e.g., elevenlabs, rime, openai) |
voicerequired | The voice identifier (name or ID depending on engine) |
modeloptional | 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-AFor 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 |
| Azure | azure | en-US-AvaNeural | Reference |
| Cartesia | cartesia | cartesia.a167e0f3-df7e-4d52-a9c3-f949145efdab | Reference |
| Deepgram | deepgram | deepgram.aura-asteria-en | Reference |
| ElevenLabs | elevenlabs | elevenlabs.thomas | Reference |
| Google Cloud | gcloud | gcloud.en-US-Casual-K | Reference |
| OpenAI | openai | openai.alloy | Reference |
| Rime | rime | rime.luna:arcana | Reference |
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:
| Model | Description |
|---|---|
sonic-3 | Default. Latest model with enhanced naturalness |
sonic-2 | Second-generation model with improved quality |
sonic-turbo | Optimized for ultra-low latency |
sonic | The 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 name | Voice ID |
|---|---|
| German Conversational Woman | 3f4ade23-6eb4-4279-ab05-6a144947c4d5 |
| Nonfiction Man | 79f8b5fb-2cc8-479a-80df-29f7a7cf1a3e |
| Friendly Sidekick | e00d0e4c-a5c8-443f-a8a3-473eb9a62355 |
| French Conversational Lady | a249eaff-1e96-4d2c-b23b-12efa4f66f41 |
| French Narrator Lady | 8832a0b5-47b2-4751-bb22-6a8e2149303d |
| German Reporter Woman | 119e03e4-0705-43c9-b3ac-a658ce2b6639 |
| Indian Lady | 3b554273-4299-48b9-9aaf-eefd438e3941 |
| British Reading Lady | 71a7ad14-091c-4e8e-a314-022ece01c121 |
| British Narration Lady | 4d2fd738-3b3d-4368-957a-bb4805275bd9 |
| Japanese Children Book | 44863732-e415-4084-8ba1-deabe34ce3d2 |
| Japanese Woman Conversational | 2b568345-1d48-4047-b25f-7baccf842eb0 |
| Japanese Male Conversational | e8a863c6-22c7-4671-86ca-91cacffc038d |
| Reading Lady | 15a9cd88-84b0-4a8b-95f2-5d583b54c72e |
| Newsman | d46abd1d-2d02-43e8-819f-51fb652c1c61 |
| Child | 2ee87190-8f84-4925-97da-e52547f9462c |
| Meditation Lady | cd17ff2d-5ea4-4695-be8f-42193949b946 |
| Maria | 5345cf08-6f37-424d-a5d9-8ae1101b9377 |
| 1920’s Radioman | 41534e16-2966-4c6b-9670-111411def906 |
| Newslady | bf991597-6c13-47e4-8411-91ec2de5c466 |
| Calm Lady | 00a77add-48d5-4ef6-8157-71e5437b282d |
| Helpful Woman | 156fb8d2-335b-4950-9cb3-a2d33befec77 |
| Mexican Woman | 5c5ad5e7-1020-476b-8b91-fdcbe9cc313c |
| California Girl | b7d50908-b17c-442d-ad8d-810c63997ed9 |
| Korean Narrator Woman | 663afeec-d082-4ab5-827e-2e41bf73a25b |
| Russian Calm Lady | 779673f3-895f-4935-b6b5-b031dc78b319 |
| Russian Narrator Man 1 | 2b3bb17d-26b9-421f-b8ca-1dd92332279f |
| Russian Narrator Man 2 | da05e96d-ca10-4220-9042-d8acef654fa9 |
| Russian Narrator Woman | 642014de-c0e3-4133-adc0-36b5309c23e6 |
| Hinglish Speaking Lady | 95d51f79-c397-46f9-b49a-23763d3eaa2d |
| Italian Narrator Woman | 0e21713a-5e9a-428a-bed4-90d410b87f13 |
| Polish Narrator Woman | 575a5d29-1fdc-4d4e-9afa-5a9a71759864 |
| Chinese Female Conversational | e90c6678-f0d3-4767-9883-5d0ecf5894a8 |
| Pilot over Intercom | 36b42fcb-60c5-4bec-b077-cb1a00a92ec6 |
| Chinese Commercial Man | eda5bbff-1ff1-4886-8ef1-4e69a77640a0 |
| French Narrator Man | 5c3c89e5-535f-43ef-b14d-f8ffe148c1f0 |
| Spanish Narrator Man | a67e0421-22e0-4d5b-b586-bd4a64aee41d |
| Reading Man | f146dcec-e481-45be-8ad2-96e1e40e7f32 |
| New York Man | 34575e71-908f-4ab6-ab54-b08c95d6597d |
| Friendly French Man | ab7c61f5-3daa-47dd-a23b-4ac0aac5f5c3 |
| Barbershop Man | a0e99841-438c-4a64-b679-ae501e7d6091 |
| Indian Man | 638efaaa-4d0c-442e-b701-3fae16aad012 |
| Australian Customer Support Man | 41f3c367-e0a8-4a85-89e0-c27bae9c9b6d |
| Friendly Australian Man | 421b3369-f63f-4b03-8980-37a44df1d4e8 |
| Wise Man | b043dea0-a007-4bbe-a708-769dc0d0c569 |
| Friendly Reading Man | 69267136-1bdc-412f-ad78-0caad210fb40 |
| Customer Support Man | a167e0f3-df7e-4d52-a9c3-f949145efdab |
| Dutch Confident Man | 9e8db62d-056f-47f3-b3b6-1b05767f9176 |
| Dutch Man | 4aa74047-d005-4463-ba2e-a0d9b261fb87 |
| Hindi Reporter Man | bdab08ad-4137-4548-b9db-6142854c7525 |
| Italian Calm Man | 408daed0-c597-4c27-aae8-fa0497d644bf |
| Italian Narrator Man | 029c3c7a-b6d9-44f0-814b-200d849830ff |
| Swedish Narrator Man | 38a146c3-69d7-40ad-aada-76d5a2621758 |
| Polish Confident Man | 3d335974-4c4a-400a-84dc-ebf4b73aada6 |
| Spanish-speaking Storyteller Man | 846fa30b-6e1a-49b9-b7df-6be47092a09a |
| Kentucky Woman | 4f8651b0-bbbd-46ac-8b37-5168c5923303 |
| Chinese Commercial Woman | 0b904166-a29f-4d2e-bb20-41ca302f98e9 |
| Middle Eastern Woman | daf747c6-6bc2-4083-bd59-aa94dce23f5d |
| Hindi Narrator Woman | c1abd502-9231-4558-a054-10ac950c356d |
| Sarah | 694f9389-aac1-45b6-b726-9d9369183238 |
| Sarah Curious | 794f9389-aac1-45b6-b726-9d9369183238 |
| Laidback Woman | 21b81c14-f85b-436d-aff5-43f2e788ecf8 |
| Reflective Woman | a3520a8f-226a-428d-9fcd-b0a4711a6829 |
| Helpful French Lady | 65b25c5d-ff07-4687-a04c-da2f43ef6fa9 |
| Pleasant Brazilian Lady | 700d1ee3-a641-4018-ba6e-899dcadc9e2b |
| Customer Support Lady | 829ccd10-f8b3-43cd-b8a0-4aeaa81f3b30 |
| British Lady | 79a125e8-cd45-4c13-8a67-188112f4dd22 |
| Wise Lady | c8605446-247c-4d39-acd4-8f4c28aa363c |
| Australian Narrator Lady | 8985388c-1332-4ce7-8d55-789628aa3df4 |
| Indian Customer Support Lady | ff1bb1a9-c582-4570-9670-5f46169d0fc8 |
| Swedish Calm Lady | f852eb8d-a177-48cd-bf63-7e4dcab61a36 |
| Spanish Narrator Lady | 2deb3edf-b9d8-4d06-8db9-5742fb8a3cb2 |
| Salesman | 820a3788-2b37-4d21-847a-b65d8a68c99a |
| Yogaman | f114a467-c40a-4db8-964d-aaba89cd08fa |
| Movieman | c45bc5ec-dc68-4feb-8829-6e6b2748095d |
| Wizardman | 87748186-23bb-4158-a1eb-332911b0b708 |
| Australian Woman | 043cfc81-d69f-4bee-ae1e-7862cb358650 |
| Korean Calm Woman | 29e5f8b4-b953-4160-848f-40fae182235b |
| Friendly German Man | fb9fcab6-aba5-49ec-8d7e-3f1100296dde |
| Announcer Man | 5619d38c-cf51-4d8e-9575-48f61a280413 |
| Wise Guide Man | 42b39f37-515f-4eee-8546-73e841679c1d |
| Midwestern Man | 565510e8-6b45-45de-8758-13588fbaec73 |
| Kentucky Man | 726d5ae5-055f-4c3d-8355-d9677de68937 |
| Brazilian Young Man | 5063f45b-d9e0-4095-b056-8f3ee055d411 |
| Chinese Call Center Man | 3a63e2d1-1c1e-425d-8e79-5100bc910e90 |
| German Reporter Man | 3f6e78a8-5283-42aa-b5e7-af82e8bb310c |
| Confident British Man | 63ff761f-c1e8-414b-b969-d1833d1c870c |
| Southern Man | 98a34ef2-2140-4c28-9c71-663dc4dd7022 |
| Classy British Man | 95856005-0332-41b0-935f-352e296aa0df |
| Polite Man | ee7ea9f8-c0c1-498c-9279-764d6b56d189 |
| Mexican Man | 15d0c2e2-8d29-44c3-be23-d585d5f154a1 |
| Korean Narrator Man | 57dba6ff-fe3b-479d-836e-06f5a61cb5de |
| Turkish Narrator Man | 5a31e4fb-f823-4359-aa91-82c0ae9a991c |
| Turkish Calm Man | 39f753ef-b0eb-41cd-aa53-2f3c284f948f |
| Hindi Calm Man | ac7ee4fa-25db-420d-bfff-f590d740aeb2 |
| Hindi Narrator Man | 7f423809-0011-4658-ba48-a411f5e516ba |
| Polish Narrator Man | 4ef93bb3-682a-46e6-b881-8e157b6b4388 |
| Polish Young Man | 82a7fc13-2927-4e42-9b8a-bb1f9e506521 |
| Alabama Male | 40104aff-a015-4da1-9912-af950fbec99e |
| Australian Male | 13524ffb-a918-499a-ae97-c98c7c4408c4 |
| Anime Girl | 1001d611-b1a8-46bd-a5ca-551b23505334 |
| Japanese Man Book | 97e7d7a9-dfaa-4758-a936-f5f844ac34cc |
| Sweet Lady | e3827ec5-697a-4b7c-9704-1a23041bbc51 |
| Commercial Lady | c2ac25f9-ecc4-4f56-9095-651354df60c0 |
| Teacher Lady | 573e3144-a684-4e72-ac2b-9b2063a50b53 |
| Princess | 8f091740-3df1-4795-8bd9-dc62d88e5131 |
| Commercial Man | 7360f116-6306-4e9a-b487-1235f35a0f21 |
| ASMR Lady | 03496517-369a-4db1-8236-3d3ae459ddf7 |
| Professional Woman | 248be419-c632-4f23-adf1-5324ed7dbf1d |
| Tutorial Man | bd9120b6-7761-47a6-a446-77ca49132781 |
| Calm French Woman | a8a1eb38-5f15-4c1d-8722-7ac0f329727d |
| New York Woman | 34bde396-9fde-4ebf-ad03-e3a1d1155205 |
| Spanish-speaking Lady | 846d6cb0-2301-48b6-9683-48f5618ea2f6 |
| Midwestern Woman | 11af83e2-23eb-452f-956e-7fee218ccb5c |
| Sportsman | ed81fd13-2016-4a49-8fe3-c0d2761695fc |
| Storyteller Lady | 996a8b96-4804-46f0-8e05-3fd4ef1a87cd |
| Spanish-speaking Man | 34dbb662-8e98-413c-a1ef-1a3407675fe7 |
| Doctor Mischief | fb26447f-308b-471e-8b00-8e9f04284eb5 |
| Spanish-speaking Reporter Man | 2695b6b5-5543-4be1-96d9-3967fb5e7fec |
| Young Spanish-speaking Woman | db832ebd-3cb6-42e7-9d47-912b425adbaa |
| The Merchant | 50d6beb4-80ea-4802-8387-6c948fe84208 |
| Stern French Man | 0418348a-0ca2-4e90-9986-800fb8b3bbc0 |
| Madame Mischief | e13cae5c-ec59-4f71-b0a6-266df3c9bb8e |
| German Storyteller Man | db229dfe-f5de-4be4-91fd-7b077c158578 |
| Female Nurse | 5c42302c-194b-4d0c-ba1a-8cb485c84ab9 |
| German Conversation Man | 384b625b-da5d-49e8-a76d-a2855d4f31eb |
| Friendly Brazilian Man | 6a16c1f4-462b-44de-998d-ccdaa4125a0a |
| German Woman | b9de4a89-2257-424b-94c2-db18ba68c81a |
| Southern Woman | f9836c6e-a0bd-460e-9d3c-f7299fa60f94 |
| British Customer Support Lady | a01c369f-6d2d-4185-bc20-b32c225eab70 |
| Chinese Woman Narrator | d4d4b115-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 tablemodel(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-turboLanguages
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-f949145efdabAlternatively, 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
