@pinecall/skills 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/pinecall-reference/SKILL.md +1 -0
- package/skills/pinecall-reference/references/reference/llm-providers.md +85 -4
- package/skills/pinecall-reference/references/reference/managed-vs-byok.md +92 -0
- package/skills/pinecall-reference/references/reference/stt-providers.md +72 -0
- package/skills/pinecall-reference/references/reference/tts-providers.md +32 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pinecall/skills",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Agent Skills for the Pinecall SDK — installable into Claude Code, Antigravity, Cursor, Copilot and any agent that supports the open Skills format.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,6 +20,7 @@ table below indexes every page; open the `references/…` file for the full text
|
|
|
20
20
|
| **STT Providers** | Speech-to-text providers, models, and tuning parameters. | [`references/reference/stt-providers.md`](references/reference/stt-providers.md) · [docs](https://docs.pinecall.io/reference/stt-providers) |
|
|
21
21
|
| **TTS Providers** | Text-to-speech providers, voices, and tuning parameters. | [`references/reference/tts-providers.md`](references/reference/tts-providers.md) · [docs](https://docs.pinecall.io/reference/tts-providers) |
|
|
22
22
|
| **LLM Providers** | Server-side LLM providers and configuration. | [`references/reference/llm-providers.md`](references/reference/llm-providers.md) · [docs](https://docs.pinecall.io/reference/llm-providers) |
|
|
23
|
+
| **Managed vs Bring-Your-Own-Key** | Which STT/TTS/LLM models Pinecall serves with its own keys, and which require yours. | [`references/reference/managed-vs-byok.md`](references/reference/managed-vs-byok.md) · [docs](https://docs.pinecall.io/reference/managed-vs-byok) |
|
|
23
24
|
| **Session Limits** | Safety limits to prevent runaway sessions. | [`references/reference/session-limits.md`](references/reference/session-limits.md) · [docs](https://docs.pinecall.io/reference/session-limits) |
|
|
24
25
|
| **REST API** | Static helpers for the Pinecall management API. No WebSocket needed. | [`references/reference/rest-api.md`](references/reference/rest-api.md) · [docs](https://docs.pinecall.io/reference/rest-api) |
|
|
25
26
|
|
|
@@ -37,6 +37,28 @@ llm: "gpt-5-chat-latest"
|
|
|
37
37
|
|
|
38
38
|
> The legacy `provider:model` format (e.g. `"openai:gpt-5-chat-latest"`) still works but is not recommended.
|
|
39
39
|
|
|
40
|
+
## Managed vs bring-your-own-key (BYOK)
|
|
41
|
+
|
|
42
|
+
Data-driven from the rate table — see [Managed vs BYOK](/reference/managed-vs-byok)
|
|
43
|
+
for the full list and the live `GET /api/rates/models` query.
|
|
44
|
+
|
|
45
|
+
| LLM provider | Managed (no key needed) | Notes |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| `openai` | ✅ Yes | Default, recommended |
|
|
48
|
+
| `anthropic` (`claude`) | ✅ Yes | |
|
|
49
|
+
| `google` (`gemini`) | ✅ Yes | |
|
|
50
|
+
| `mistral` | ✅ Yes | |
|
|
51
|
+
| `xai` (`grok`) | ❌ BYOK only | Add an xAI key |
|
|
52
|
+
| `groq` | ❌ BYOK only | Add a Groq key |
|
|
53
|
+
| `cerebras` | ❌ BYOK only | Add a Cerebras key |
|
|
54
|
+
| `deepseek` | ❌ BYOK only | Add a DeepSeek key |
|
|
55
|
+
| `openrouter` | ❌ BYOK only | One key → many models; model = full slug, e.g. `x-ai/grok-4` |
|
|
56
|
+
|
|
57
|
+
> **BYOK enforcement:** configuring a BYOK-only LLM provider without a saved key for
|
|
58
|
+
> it rejects agent registration with `PROVIDER_KEY_REQUIRED` — Pinecall never falls
|
|
59
|
+
> back to its own key. With your own key, those tokens are billed by the provider
|
|
60
|
+
> directly and are **not** deducted from your Pinecall credits.
|
|
61
|
+
|
|
40
62
|
## Tuning with a full config object
|
|
41
63
|
|
|
42
64
|
For `temperature`, `max_tokens`, and other tuning parameters, use the full config object:
|
|
@@ -104,7 +126,7 @@ llm: {
|
|
|
104
126
|
## Google (Gemini)
|
|
105
127
|
|
|
106
128
|
```typescript
|
|
107
|
-
llm: "google/gemini-2.
|
|
129
|
+
llm: "google/gemini-2.5-flash"
|
|
108
130
|
```
|
|
109
131
|
|
|
110
132
|
Or with tuning:
|
|
@@ -112,7 +134,7 @@ Or with tuning:
|
|
|
112
134
|
```typescript
|
|
113
135
|
llm: {
|
|
114
136
|
provider: "google",
|
|
115
|
-
model: "gemini-2.
|
|
137
|
+
model: "gemini-2.5-flash",
|
|
116
138
|
enabled: true,
|
|
117
139
|
temperature: 0.7,
|
|
118
140
|
max_tokens: 512,
|
|
@@ -125,8 +147,7 @@ llm: {
|
|
|
125
147
|
|
|
126
148
|
| Model | Best for |
|
|
127
149
|
|---|---|
|
|
128
|
-
| `gemini-2.
|
|
129
|
-
| `gemini-2.5-flash` | Stronger reasoning at a modest cost bump |
|
|
150
|
+
| `gemini-2.5-flash` | Most voice agents — fast, low cost, strong reasoning (recommended default) |
|
|
130
151
|
|
|
131
152
|
## Anthropic
|
|
132
153
|
|
|
@@ -157,6 +178,66 @@ llm: {
|
|
|
157
178
|
|
|
158
179
|
> Opus is intentionally **not** offered for voice agents — it's the premium tier (too slow/costly for real-time). Sonnet 4.6 and Haiku 4.5 are the supported Anthropic models. Set your `ANTHROPIC_API_KEY` on the server (managed) or add an Anthropic credential to your org (BYOK).
|
|
159
180
|
|
|
181
|
+
## xAI Grok (BYOK)
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
llm: "xai/grok-4" // "grok" is accepted as an alias for "xai"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Or with tuning (same config shape as OpenAI — see [Temperature & max_tokens](#temperature--max_tokens)):
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
llm: {
|
|
191
|
+
provider: "xai",
|
|
192
|
+
model: "grok-4",
|
|
193
|
+
enabled: true,
|
|
194
|
+
temperature: 0.7,
|
|
195
|
+
max_tokens: 512,
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
OpenAI-compatible. Requires your own xAI key. Models: `grok-4`, `grok-4-fast`, `grok-3`.
|
|
200
|
+
|
|
201
|
+
> **All BYOK LLM providers below (Groq, Cerebras, DeepSeek, OpenRouter) are
|
|
202
|
+
> OpenAI-compatible** — they take the **identical config object** (`provider`,
|
|
203
|
+
> `model`, `temperature`, `max_tokens`, `enabled`) and support the same tools /
|
|
204
|
+
> tuning as OpenAI. Only the `provider` and `model` change.
|
|
205
|
+
|
|
206
|
+
## Groq (BYOK)
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
llm: "groq/llama-3.3-70b-versatile"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Fastest open-model inference. Requires your own Groq key.
|
|
213
|
+
|
|
214
|
+
## Cerebras (BYOK)
|
|
215
|
+
|
|
216
|
+
```typescript
|
|
217
|
+
llm: "cerebras/llama-3.3-70b"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Highest tokens/sec. Requires your own Cerebras key.
|
|
221
|
+
|
|
222
|
+
## DeepSeek (BYOK)
|
|
223
|
+
|
|
224
|
+
```typescript
|
|
225
|
+
llm: "deepseek/deepseek-chat" // or "deepseek/deepseek-reasoner" (no tools)
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Requires your own DeepSeek key.
|
|
229
|
+
|
|
230
|
+
## OpenRouter (BYOK)
|
|
231
|
+
|
|
232
|
+
One key unlocks hundreds of models (OpenAI, Anthropic, Google, xAI/Grok, Llama, …).
|
|
233
|
+
The `model` is the **full OpenRouter slug** — it keeps its own slash:
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
llm: { provider: "openrouter", model: "x-ai/grok-4" }
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Requires your own OpenRouter key.
|
|
240
|
+
|
|
160
241
|
## The `enabled` field
|
|
161
242
|
|
|
162
243
|
`enabled: false` disables server-side LLM for this agent. The server still does STT and TTS, but it won't generate responses — you handle every `turn.end` yourself with a client-side LLM.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Managed vs Bring-Your-Own-Key"
|
|
3
|
+
description: "Which STT/TTS/LLM models Pinecall serves with its own keys, and which require yours."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Managed vs Bring-Your-Own-Key (BYOK)
|
|
7
|
+
|
|
8
|
+
Every STT, TTS and LLM model on Pinecall is one of two kinds:
|
|
9
|
+
|
|
10
|
+
- **Managed** — Pinecall serves it with **its own provider key**. You don't add
|
|
11
|
+
anything; usage is deducted from your Pinecall **credits**.
|
|
12
|
+
- **BYOK (bring your own key)** — Pinecall does **not** host a key for it. You must
|
|
13
|
+
save your **own** API key under **Provider Keys**. That usage is billed by the
|
|
14
|
+
provider **directly** and is **not** deducted from your Pinecall credits.
|
|
15
|
+
|
|
16
|
+
> This split is **data-driven** — it comes from the Pinecall **rate table** in the
|
|
17
|
+
> database (each rate has a `managed` flag), not from a hardcoded list. The tables
|
|
18
|
+
> below are the current state; query the API (below) for the authoritative, live list.
|
|
19
|
+
|
|
20
|
+
## What Pinecall provides managed (no key needed)
|
|
21
|
+
|
|
22
|
+
| Service | Managed providers |
|
|
23
|
+
|---|---|
|
|
24
|
+
| **STT** | `deepgram` (flux, nova-3), `gladia`, `transcribe` (AWS) |
|
|
25
|
+
| **TTS** | `elevenlabs`, `cartesia` (sonic), `polly` (AWS) |
|
|
26
|
+
| **LLM** | `openai`, `anthropic`, `google` (gemini), `mistral` |
|
|
27
|
+
|
|
28
|
+
## What requires your own key (BYOK)
|
|
29
|
+
|
|
30
|
+
| Service | BYOK-only providers |
|
|
31
|
+
|---|---|
|
|
32
|
+
| **STT** | `cartesia` (ink-whisper), `elevenlabs` (scribe), `assemblyai` |
|
|
33
|
+
| **TTS** | `rime` |
|
|
34
|
+
| **LLM** | `xai` (grok), `groq`, `cerebras`, `deepseek`, `openrouter` |
|
|
35
|
+
|
|
36
|
+
> Note a provider can be **managed for one service and BYOK for another** — e.g.
|
|
37
|
+
> Cartesia **TTS** (sonic) is managed, but Cartesia **STT** (ink-whisper) is BYOK.
|
|
38
|
+
> ElevenLabs **TTS** is managed, ElevenLabs **STT** (scribe) is BYOK.
|
|
39
|
+
|
|
40
|
+
## Check it from the API (authoritative, live)
|
|
41
|
+
|
|
42
|
+
The rate table is the source of truth. Query it any time:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
curl https://playground.pinecall.io/api/rates/models
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```jsonc
|
|
49
|
+
{
|
|
50
|
+
"models": [
|
|
51
|
+
{ "service": "stt", "provider": "deepgram", "model": "nova-3", "managed": true },
|
|
52
|
+
{ "service": "stt", "provider": "assemblyai", "model": "universal", "managed": false },
|
|
53
|
+
{ "service": "llm", "provider": "xai", "model": "grok-4", "managed": false },
|
|
54
|
+
{ "service": "tts", "provider": "rime", "model": "mistv2", "managed": false }
|
|
55
|
+
// ...
|
|
56
|
+
],
|
|
57
|
+
"managedProviders": {
|
|
58
|
+
"stt": ["deepgram", "gladia", "transcribe"],
|
|
59
|
+
"tts": ["cartesia", "elevenlabs", "polly"],
|
|
60
|
+
"llm": ["anthropic", "google", "mistral", "openai"]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
`managed: true` → usable with no key. `managed: false` → add your own key.
|
|
66
|
+
|
|
67
|
+
## BYOK enforcement
|
|
68
|
+
|
|
69
|
+
If you configure a BYOK-only provider and your org has **not** saved a key for it,
|
|
70
|
+
**agent registration is rejected** with code `PROVIDER_KEY_REQUIRED`:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
LLM provider 'xai' requires your own API key. Pinecall does not provide a managed
|
|
74
|
+
key for 'xai' — add your key under Provider Keys in the dashboard, then reconnect.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Pinecall never silently falls back to its own key for a BYOK provider.
|
|
78
|
+
|
|
79
|
+
## Add your own key
|
|
80
|
+
|
|
81
|
+
- **Dashboard** → **Provider Keys** → pick the provider, paste the key.
|
|
82
|
+
- **API**: `PUT /api/credentials` with `{ "provider": "xai", "apiKey": "..." }`.
|
|
83
|
+
|
|
84
|
+
One key can cover multiple services where a provider shares it — e.g. an
|
|
85
|
+
**ElevenLabs** key enables both ElevenLabs TTS and ElevenLabs Scribe STT; a
|
|
86
|
+
**Cartesia** key enables Sonic TTS and Ink-Whisper STT.
|
|
87
|
+
|
|
88
|
+
## What's next
|
|
89
|
+
|
|
90
|
+
- [STT Providers](/reference/stt-providers)
|
|
91
|
+
- [TTS Providers](/reference/tts-providers)
|
|
92
|
+
- [LLM Providers](/reference/llm-providers)
|
|
@@ -24,8 +24,35 @@ Pinecall supports multiple STT providers. Use the `provider/model` format or a f
|
|
|
24
24
|
|
|
25
25
|
// AWS Transcribe
|
|
26
26
|
{ stt: "transcribe" }
|
|
27
|
+
|
|
28
|
+
// ── Bring-your-own-key only (add your key under Provider Keys first) ──
|
|
29
|
+
{ stt: "cartesia/ink-whisper" } // Cartesia Ink-Whisper
|
|
30
|
+
{ stt: "elevenlabs/scribe" } // ElevenLabs Scribe v2 (realtime)
|
|
31
|
+
{ stt: "assemblyai/universal" } // AssemblyAI Universal-3
|
|
27
32
|
```
|
|
28
33
|
|
|
34
|
+
## Managed vs bring-your-own-key (BYOK)
|
|
35
|
+
|
|
36
|
+
Some providers work out of the box on Pinecall's managed keys; the newer ones
|
|
37
|
+
require **your own API key** (saved under **Provider Keys** in the dashboard). This
|
|
38
|
+
split is data-driven from the rate table — see [Managed vs BYOK](/reference/managed-vs-byok)
|
|
39
|
+
for the full list and the live `GET /api/rates/models` query.
|
|
40
|
+
|
|
41
|
+
| STT provider | Managed (no key needed) | Notes |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `deepgram` (flux/nova) | ✅ Yes | Default, recommended |
|
|
44
|
+
| `gladia` | ✅ Yes | |
|
|
45
|
+
| `transcribe` (AWS) | ✅ Yes | |
|
|
46
|
+
| `cartesia` (ink-whisper) | ❌ BYOK only | Add a Cartesia key |
|
|
47
|
+
| `elevenlabs` (scribe) | ❌ BYOK only | Add an ElevenLabs key |
|
|
48
|
+
| `assemblyai` (universal) | ❌ BYOK only | Add an AssemblyAI key |
|
|
49
|
+
|
|
50
|
+
> **BYOK enforcement:** if you configure a BYOK-only STT provider and your org has
|
|
51
|
+
> not saved a key for it, **agent registration is rejected** with
|
|
52
|
+
> `PROVIDER_KEY_REQUIRED` — Pinecall never falls back to its own key for these.
|
|
53
|
+
> When you bring your own key, that usage is billed by the provider directly and is
|
|
54
|
+
> **not** deducted from your Pinecall credits.
|
|
55
|
+
|
|
29
56
|
## Naming convention
|
|
30
57
|
|
|
31
58
|
Configuration objects that pass through to providers keep **snake_case** to mirror what the receiving side expects (`endpointing_ms`, `interim_results`, etc.). This avoids an unnecessary translation layer and lets you copy-paste from provider docs directly.
|
|
@@ -108,6 +135,48 @@ stt: {
|
|
|
108
135
|
}
|
|
109
136
|
```
|
|
110
137
|
|
|
138
|
+
## Cartesia Ink-Whisper (BYOK)
|
|
139
|
+
|
|
140
|
+
Pairs naturally with Cartesia (Sonic) TTS for a single-vendor voice stack. Requires
|
|
141
|
+
your own Cartesia key.
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
stt: "cartesia/ink-whisper"
|
|
145
|
+
// or
|
|
146
|
+
stt: { provider: "cartesia", model: "ink-whisper", language: "en" }
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## ElevenLabs Scribe (BYOK)
|
|
150
|
+
|
|
151
|
+
Realtime `scribe_v2_realtime`. Uses the same ElevenLabs key as ElevenLabs TTS.
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
stt: "elevenlabs/scribe"
|
|
155
|
+
// or with tuning
|
|
156
|
+
stt: {
|
|
157
|
+
provider: "elevenlabs",
|
|
158
|
+
model: "scribe_v2_realtime",
|
|
159
|
+
language: "en",
|
|
160
|
+
commit_strategy: "vad", // "vad" (server segments turns) | "manual"
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## AssemblyAI (BYOK)
|
|
165
|
+
|
|
166
|
+
Universal-3 streaming (`u3-rt-pro`) — strong accuracy + diarization. Requires your
|
|
167
|
+
own AssemblyAI key.
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
stt: "assemblyai/universal"
|
|
171
|
+
// or with tuning
|
|
172
|
+
stt: {
|
|
173
|
+
provider: "assemblyai",
|
|
174
|
+
model: "u3-rt-pro",
|
|
175
|
+
language: "en",
|
|
176
|
+
format_turns: true, // punctuated/cased final transcripts
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
111
180
|
## Which to choose
|
|
112
181
|
|
|
113
182
|
| Provider | Best for | Trade-off |
|
|
@@ -116,6 +185,9 @@ stt: {
|
|
|
116
185
|
| `deepgram/nova-3` | Arabic, Hindi, Thai, CJK, and 60+ languages | Slightly higher latency; smart_turn + silero VAD |
|
|
117
186
|
| `gladia/solaria` | Code-switching, multilingual | Higher latency than Deepgram |
|
|
118
187
|
| `transcribe` | AWS-native deployments | AWS pricing model |
|
|
188
|
+
| `cartesia/ink-whisper` | Single-vendor with Cartesia TTS | BYOK only |
|
|
189
|
+
| `elevenlabs/scribe` | Single-vendor with ElevenLabs TTS | BYOK only |
|
|
190
|
+
| `assemblyai/universal` | Accuracy + diarization | BYOK only |
|
|
119
191
|
|
|
120
192
|
For most agents, start with `deepgram/flux`. Use `deepgram/nova-3` for languages Flux doesn't cover (Arabic, Hindi, Thai, Chinese, Japanese, Korean, etc.).
|
|
121
193
|
|
|
@@ -21,6 +21,22 @@ Pinecall supports multiple TTS providers. Use the `provider/friendly-id` format
|
|
|
21
21
|
|
|
22
22
|
> The legacy `provider:rawId` format (e.g. `"elevenlabs:EXAVITQu4vr4xnSDxMaL"`) still works but is not recommended.
|
|
23
23
|
|
|
24
|
+
## Managed vs bring-your-own-key (BYOK)
|
|
25
|
+
|
|
26
|
+
Data-driven from the rate table — see [Managed vs BYOK](/reference/managed-vs-byok)
|
|
27
|
+
for the full list and the live `GET /api/rates/models` query.
|
|
28
|
+
|
|
29
|
+
| TTS provider | Managed (no key needed) | Notes |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| `elevenlabs` | ✅ Yes | Default, recommended |
|
|
32
|
+
| `cartesia` (sonic) | ✅ Yes | |
|
|
33
|
+
| `polly` (AWS) | ✅ Yes | |
|
|
34
|
+
| `rime` | ❌ BYOK only | Add a Rime key under Provider Keys |
|
|
35
|
+
|
|
36
|
+
> **BYOK enforcement:** configuring `rime` without a saved Rime key rejects agent
|
|
37
|
+
> registration with `PROVIDER_KEY_REQUIRED`. With your own key, that usage is billed
|
|
38
|
+
> by the provider directly — **not** deducted from your Pinecall credits.
|
|
39
|
+
|
|
24
40
|
## Discovering voices
|
|
25
41
|
|
|
26
42
|
Use the CLI to browse voices. Without flags, you get a catalog overview:
|
|
@@ -173,6 +189,21 @@ Shortcut: `"polly/joanna"`
|
|
|
173
189
|
- `engine: "neural"` is required for natural-sounding output. The older `standard` engine is robotic.
|
|
174
190
|
- Polly is the cheapest option but the least natural — fine for IVR-style flows, not for engaging conversation.
|
|
175
191
|
|
|
192
|
+
## Rime (BYOK)
|
|
193
|
+
|
|
194
|
+
Ultra-natural, expressive English. Requires your own Rime key.
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
voice: {
|
|
198
|
+
provider: "rime",
|
|
199
|
+
voice_id: "cove", // Rime speaker id
|
|
200
|
+
model: "mistv2", // or "arcana" (most expressive)
|
|
201
|
+
speed: 1.0,
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Shortcut: `"rime/cove"`
|
|
206
|
+
|
|
176
207
|
## Which to choose
|
|
177
208
|
|
|
178
209
|
| Provider | Best for | Trade-off |
|
|
@@ -180,6 +211,7 @@ Shortcut: `"polly/joanna"`
|
|
|
180
211
|
| **ElevenLabs** | Most natural-sounding output | Higher cost per character |
|
|
181
212
|
| **Cartesia** | Real-time streaming, low latency | Smaller voice library |
|
|
182
213
|
| **Polly** | Cheap IVR, simple flows | Less natural |
|
|
214
|
+
| **Rime** | Ultra-natural expressive English | BYOK only; English-focused |
|
|
183
215
|
|
|
184
216
|
For most agents, start with ElevenLabs (`eleven_flash_v2_5`) or Cartesia (`sonic-3`). Use Polly only for high-volume, low-engagement flows.
|
|
185
217
|
|